Bitbucket 管道和 AWS Codeartifact 通过 OIDC 集成

问题描述 投票:0回答:0

我正在关注这篇文章,以使 Bitbucket 管道与 AWS Codeartifact 配合使用,但遇到了问题。

我已经

  1. 使用 Bitbucket 的 OIDC 设置中的 URL 和受众创建“身份提供商”。
  2. 创建了具有
    AWSCodeArtifactAdminAccess
    权限的 AWS 角色并将其与身份提供商关联
  3. 定义了2个Bitbucket的存储库变量:
    AWS_REGION
    &
    AWS_ROLE_ARN
    .
  4. 创建了
    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
是默认名称还是我应该输入其他名称,什么??

amazon-web-services bitbucket bitbucket-pipelines aws-codeartifact
© www.soinside.com 2019 - 2024. All rights reserved.