跳至內容

我該如何解決在 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 console (CodeBuild 主控台)。
  2. 在導覽窗格中,展開 Build (建置),然後選擇 Build projects (建置專案)。
  3. 選取您的建置專案,然後選擇 Edit (編輯)。
  4. Source (來源) 區段中,查看 Credential (憑證) 訊息,以識別您所使用的驗證方法。

對於個人存取權杖

若要確認您的個人存取權杖存在且有效,請執行以下操作:

  • 檢查您的 GitHub 開發人員設定。如需更多資訊,請參閱 GitHub Docs 網站上的管理您的個人存取權杖
  • 確保您已正確設定個人存取權杖及存取權杖先決條件
  • 如果您的個人存取權杖已過期,請重新生成驗證權杖,並在 AWS Secrets Manager 中更新權杖。

對於 Secrets Manager 密碼

若要確認您的 Secrets Manager 密碼存在且未過期,請執行以下操作:

  • 如果您是透過 Secrets Manager 密碼連線,請檢查該密碼存在且值為最新。
  • 確認您的 CodeBuild 專案服務角色具有 secretsmanager:GetSecretValue 權限,以取得密碼。

若要檢查您是否擁有 secretsmanager:GetSecretValue 權限,請取得 CodeBuild 專案的服務角色。請完成下列步驟:

  1. 開啟 CodeBuild console (CodeBuild 主控台)。
  2. 選取專案,然後選擇 Project details (專案詳細資料) 索引標籤。
  3. Environment (環境) 組態中,選擇 Service role (服務角色) 設定。
  4. 選取服務角色。
  5. 確認該角色擁有以下權限:
    "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 上的應用程式清單中,包含 aws-codesuite 擁有的 AWS CodeBuild (區域) 應用程式。

對於 CodeConnections

若要確認 CodeConnections 存在且有效,請執行以下操作:

相關資訊

GitHub OAuth 應用程式

在 CodeBuild 中存取 GitHub 與 GitHub Enterprise Server

變更 AWS CodeBuild 中的建置專案設定

AWS 官方已更新 1 個月前