跳至内容

如何解决在 CodeBuild 与 GitHub Actions 集成过程中出现的身份验证错误?

2 分钟阅读
0

我将 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,请完成以下步骤:

  1. 打开 CodeBuild 控制台
  2. 在导航窗格中,展开 Build(构建),然后选择 Build projects(构建项目)。
  3. 选择您的构建项目,然后选择 Edit(编辑)。
  4. Source(来源)部分中,查看 Credential(凭证)消息以确定所使用的身份验证方法。

对于个人访问令牌

要验证您的个人访问令牌是否存在且有效,请执行以下操作:

对于 Secrets Manager 密钥

要验证您的 Secrets Manager 密钥是否存在且未过期,请执行以下操作:

  • 如果您通过 Secrets Manager 密钥连接,请检查该密钥是否存在且值是最新的。
  • 确认您的 CodeBuild 项目服务角色具有 secretsmanager:GetSecretValue 来获取密钥。

要检查您是否拥有 secretsmanager:GetSecretValue 权限,请获取 CodeBuild 项目的服务角色。完成以下步骤:

  1. 打开 CodeBuild 控制台
  2. 选择项目,然后选择 Project details(项目详细信息)选项卡。
  3. Environment(环境)配置中,选择 Service role(服务角色)设置。
  4. 选择服务角色。
  5. 确认 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 中更改构建项目设置

AWS 官方已更新 1 个月前