我正在关注这篇文章,以使 Bitbucket 管道与 AWS Codeartifact 配合使用,但遇到了问题。
我已经
AWSCodeArtifactAdminAccess
权限的 AWS 角色并将其与身份提供商关联AWS_REGION
& AWS_ROLE_ARN
.bitbucket-pipelines.yml
文件,如下所示:image:
name: XXXXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/bitbucket-docker:1.0.0
aws:
oidc-role: arn:aws:iam::XXXXXXXXXX:role/bitbucket-pipelines
options:
max-time: 30 # per-step timeout in minutes
pipelines:
branches:
default:
- step:
oidc: true
script:
- export AWS_WEB_IDENTITY_TOKEN_FILE=$(pwd)/web-identity-token
- echo $BITBUCKET_STEP_OIDC_TOKEN > $(pwd)/web-identity-token
- aws sts assume-role-with-web-identity --role-arn arn:aws:iam::XXXXXXXXXX:role/bitbucket-pipelines --role-session-name build-session --web-identity-token "$BITBUCKET_STEP_OIDC_TOKEN" --duration-seconds 1000
develop:
- step:
name: Verify after merge to 'develop' Branch
oidc: true
caches:
- maven
script:
- mvn verify -DskipTests
custom:
release:
- step:
name: Release
oidc: true
caches:
- maven
script:
- mvn verify deploy -e -DskipTests
当我运行部署到 Codeartifact 的
custom release
目标时,我可以看到我能够访问 ECR docker 映像,但在尝试部署 Maven 工件(jar 文件)时出现 401 身份验证错误。
我的印象是我不需要打电话
aws codeartifact get-authorization-token
,因为我通过 OIDC 进行身份验证。
知道我在这里错过了什么吗?
编辑1: 请注意,在我遵循的示例中,他们调用以下命令:
aws sts assume-role-with-web-identity --role-arn arn:aws:iam::XXXXXXXXXX:role/bitbucket-pipelines --role-session-name build-session --web-identity-token "$BITBUCKET_STEP_OIDC_TOKEN" --duration-seconds 1000
与
--role-session-name build-session
我想知道
build-session
是默认名称还是我应该输入其他名称,什么??