GitHub Actionsでの「Permission artifactregistry.repositories.uploadArtifacts denied on resource」エラーの解決方法
エラーの概要・症状
「Permission artifactregistry.repositories.uploadArtifacts denied on resource using github actions」というエラーメッセージは、GitHub Actionsのワークフローを実行中に、アーティファクトレジストリに対するアップロード権限が不足していることを示しています。このエラーは、特にGoogle CloudのArtifact Registryを使用している際に発生することがあります。具体的には、GitHub Actionsがサービスアカウントの権限を持っていない場合や、必要な権限が適切に設定されていない場合に起こります。
このエラーが発生する原因
このエラーが発生する主な原因は以下の通りです。
- サービスアカウントの未作成: GitHub ActionsからGoogle Cloudリソースにアクセスするためのサービスアカウントが作成されていない場合。
- 権限の不足: サービスアカウントに必要な権限が付与されていない場合。
- 認証情報の不備: GitHub Actionsがサービスアカウントの認証情報を正しく取得できていない場合。
これらの原因により、GitHub Actionsはアーティファクトをアップロードするための適切なアクセス権を持たず、エラーが発生します。
解決方法
このエラーを解決するための方法を以下に示します。
解決方法 1: サービスアカウントの作成
- Google Cloud Consoleにログインします。
- 左側のメニューから「IAMと管理」を選択し、「サービス アカウント」をクリックします。
- 「サービス アカウントを作成」をクリックします。
- サービスアカウントの名称を入力し、「作成」をクリックします。
- 次の画面で、アーティファクトレジストリに必要な権限を選択します。
- 例:
Artifact Registry AdministratorやArtifact Registry Writer - 最後に、「完了」をクリックしてサービスアカウントを作成します。
解決方法 2: サービスアカウントに権限を付与
- 作成したサービスアカウントの詳細ページに移動します。
- 「権限」タブを選択します。
- 「権限を追加」をクリックし、必要な権限を追加します。
- 例:
artifactregistry.repositories.uploadArtifacts - 変更を保存します。
解決方法 3: Workload Identityの設定
- Google Cloud Consoleに戻り、「IAMと管理」を選択します。
- 「Workload Identityプール」を選択し、必要なプールを作成または選択します。
- プールに関連付けるリポジトリの情報を入力します。
- 例: `principalSet://iam.googleapis.com/$

コメント