我将 AWS CodeBuild 项目配置为使用 GitHub Action 作为源提供程序。但是,当构建启动 Download_Source 阶段时,它会失败。
简短描述
必须包含 CodeBuild 项目名称,才能使用正确的项目设置调用作业。当您没有身份验证并且您的 CodeBuild 项目在 Download_Source 阶段失败时,就会出现以下错误:
“CLIENT_ERROR: authentication required for primary source”
“CLIENT_ERROR: authorization failed for primary source and source version:”
要解决这些错误,请确定所使用的身份验证方法,然后配置所需的设置和权限。
解决方法
要确定使用哪种方法将 CodeBuild 连接到 GitHub,请完成以下步骤:
- 打开 CodeBuild 控制台。
- 在导航窗格中,展开 Build(构建),然后选择 Build projects(构建项目)。
- 选择您的构建项目,然后选择 Edit(编辑)。
- 在 Source(来源)部分中,查看 Credential(凭证)消息以确定所使用的身份验证方法。
对于个人访问令牌
要验证您的个人访问令牌是否存在且有效,请执行以下操作:
对于 Secrets Manager 密钥
要验证您的 Secrets Manager 密钥是否存在且未过期,请执行以下操作:
- 如果您通过 Secrets Manager 密钥连接,请检查该密钥是否存在且值是最新的。
- 确认您的 CodeBuild 项目服务角色具有 secretsmanager:GetSecretValue 来获取密钥。
要检查您是否拥有 secretsmanager:GetSecretValue 权限,请获取 CodeBuild 项目的服务角色。完成以下步骤:
- 打开 CodeBuild 控制台。
- 选择项目,然后选择 Project details(项目详细信息)选项卡。
- 在 Environment(环境)配置中,选择 Service role(服务角色)设置。
- 选择服务角色。
- 确认 IAM 角色拥有以下权限:
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": [
"arn:aws:secretsmanager:region:account-id:secret:secretName"
]
**注意:**将 region 替换为您的 AWS 区域,将 account-ID 替换为您的 AWS 账户 ID,将 secretName 替换为您的密钥名称。
对于 OAuth 应用程序
您的 OAuth 令牌与 GitHub 用户相关联。如果将 GitHub 用户从组织中移除,则该令牌将不再有效。要查看您的授权 OAuth 应用程序,请确认 GitHub 上的 Applications(应用程序)列表中包含 aws-codesuite 拥有的 **AWS CodeBuild(区域)**应用程序。
对于 CodeConnections
要验证 CodeConnections 是否存在且有效,请执行以下操作:
相关信息
GitHub OAuth 应用程序
CodeBuild 中的 GitHub 和 GitHub Enterprise Server 访问权限
在 AWS CodeBuild 中更改构建项目设置