CodeBuild で ビルドエラー “authentication required for primary source” になるときの対処方法

2020.09.14

困っていた内容

CodeBuild のソースに GitHub の個人用アクセストークンを指定しています。ビルドを実行すると DOWNLOAD_SOURCE フェーズで以下のエラーが出ます。エラーの対処方法を教えてください。

[Container] YYYY/MM/DD HH:MM:SS Waiting for agent ping
[Container] YYYY/MM/DD HH:MM:SS Waiting for DOWNLOAD_SOURCE
authentication required for primary source

どう対応すればいいの?

"authentication required for primary source" はトークンが無効な場合に出るエラーです。

  1. GitHub 側で個人用アクセストークンを削除していないか確認してください。
  2. 他の CodeBuild プロジェクトの設定で個人用アクセストークンを上書きした可能性があります。再度 CodeBuild に個人用アクセストークンを登録し直してください。マネジメントコンソールから対象ビルドプロジェクトのソースを編集で開き、「GitHub からの接続を切断」してから再度トークンを保存すれば OK です。

2 については 公式ドキュメント に以下の記載があります。

同じサーバータイプと認証タイプを持つ import-source-credentials コマンドを 2 回目に実行した場合、保存されたアクセストークンが更新されます。

CLI で list-source-credentials を実行すると、ARN はリージョンかつサーバータイプごとに固定となっている様子が分かります。プロジェクトごとに保存されるわけではないため、ご注意ください。

$ aws codebuild list-source-credentials --region ap-northeast-1
{
    "sourceCredentialsInfos": [
        {
            "authType": "PERSONAL_ACCESS_TOKEN", 
            "serverType": "GITHUB", 
            "arn": "arn:aws:codebuild:ap-northeast-1:<アカウントID>:token/github"
        }
    ]
}

参考情報

テクニカルサポートノートとは?

クラスメソッドのカルチャー(CLP) の「情報発信を通じて、全ての人々の創造活動に貢献し続ける」という考えから、クラスメソッド メンバーズをご利用のお客様よりいただいたお問い合わせより、他の AWS ユーザーにとっても 有益な情報を一般的な TIPS としてご紹介しています。