ソースプロバイダーとして GitHub アクションを使用して AWS CodeBuild プロジェクトを設定しました。しかし、ビルドが 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 コンソールを開きます。
- ナビゲーションペインで [ビルド] を選択し、次に [ビルドプロジェクト] を選択します。
- 対象のビルドプロジェクトを選択し、[編集] を選択します。
- [ソース] セクションで、[認証情報] メッセージを確認して、使用されている認証方法を特定します。
個人アクセストークンの場合
個人アクセストークンが存在し、有効であることを確認するには、次の操作を行います。
- GitHub 開発者設定を確認します。詳細については、GitHub Docs ウェブサイトの「個人用アクセストークンを管理する」を参照してください。
- アクセストークンの前提条件を満たした個人アクセストークンを正しく設定していることを確認します。
- 個人アクセストークンの有効期限が切れている場合は、認証トークンを再生成し、AWS Secrets Manager でトークンを更新してください。
Secrets Manager シークレットの場合
Secrets Manager シークレットが存在し、有効期限が切れていないことを確認するには、次の操作を行います。
- Secrets Manager シークレットを介して接続している場合は、シークレットが存在し、値が最新であることを確認します。
- CodeBuild プロジェクトのサービスロールに、シークレットを取得するための** secretsmanager:GetSecretValue** が設定されていることを確認します。
secretsmanager:GetSecretValue アクセス許可を持っているかどうかを確認するには、CodeBuild プロジェクトのサービスロールを取得します。次の手順を実行します。
- CodeBuild コンソールを開きます。
- プロジェクトを選択し、[プロジェクトの詳細] タブを選択します。
- [環境] 設定で、[サービスロール] 設定を選択します。
- サービスロールを選択します。
- ロールに次のアクセス許可があることを確認します。
"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 app (GitHub OAuth アプリ)
GitHub and GitHub Enterprise Server access in CodeBuild (CodeBuild での GitHub と GitHub Enterprise Server へのアクセス)
Change build project settings in AWS CodeBuild (AWS CodeBuild のビルドプロジェクト設定を変更する)