跳至內容

我該如何解決在 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 (憑證) 訊息,確認您所使用的驗證方法。

個人存取權杖

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

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

Secrets Manager 密碼

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

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

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

  1. 開啟 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 上的 Applications (應用程式) 清單中,包含 aws-codesuite 擁有的 AWS CodeBuild (區域) 應用程式。

CodeConnections

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

相關資訊

GitHub OAuth 應用程式

在 CodeBuild 中存取 GitHub 與 GitHub Enterprise Server

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

AWS 官方已更新 1 年前