You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbucket Pipelines与AWS CodeArtifact OIDC集成遇401认证问题

问题解答

CodeArtifact 401认证错误排查与解决

你对OIDC集成的理解存在偏差:通过OIDC获取AWS临时凭证后,访问CodeArtifact的包管理客户端(如Maven)仍需单独生成授权令牌。两者的作用层级不同:

  • OIDC认证是让Bitbucket Pipelines进程获得调用AWS API的权限
  • CodeArtifact的Maven客户端需要的是专属仓库授权令牌,必须用已获取的AWS凭证调用aws codeartifact get-authorization-token生成

你需要在部署Maven构件的Pipeline步骤中补充以下操作:

  1. 确保已通过OIDC完成AWS身份 Assume(Bitbucket Pipelines中可通过aws sts assume-role-with-web-identity实现,或遵循官方OIDC集成流程配置)
  2. 生成CodeArtifact授权令牌:
    export CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token --domain <你的CodeArtifact域名> --domain-owner <AWS账户ID> --region $AWS_REGION --query authorizationToken --output text)
    
  3. 在Maven部署命令中注入令牌作为仓库密码,示例:
    mvn deploy -DaltRepository.codeartifact.url=https://<域名>-<账户ID>.d.codeartifact.$AWS_REGION.amazonaws.com/maven/<仓库名称>/ -DaltRepository.codeartifact.username=aws -DaltRepository.codeartifact.password=$CODEARTIFACT_AUTH_TOKEN
    

额外检查项:确认IAM角色的信任策略是否精准匹配Bitbucket OIDC的受众(aud)和仓库标识(sub),避免因权限范围限制导致令牌生成失败。

--role-session-name参数说明

build-session并非默认值,它是自定义的会话名称,用于在AWS CloudTrail日志中标识临时凭证的来源。你可以根据需求修改(比如改为bitbucket-release-pipeline),只要符合AWS命名规则(1-64字符,支持字母、数字、连字符、下划线、点号、@)即可;不修改也不影响功能,仅日志中的会话标识会沿用示例值。

内容的提问来源于stack exchange,提问作者Shvalb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:05:06