Permission artifactregistry.repositories.uploadArtifacts …

スポンサーリンク

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がサービスアカウントの権限を持っていない場合や、必要な権限が適切に設定されていない場合に起こります。

このエラーが発生する原因

このエラーが発生する主な原因は以下の通りです。

  1. サービスアカウントの未作成: GitHub ActionsからGoogle Cloudリソースにアクセスするためのサービスアカウントが作成されていない場合。
  2. 権限の不足: サービスアカウントに必要な権限が付与されていない場合。
  3. 認証情報の不備: GitHub Actionsがサービスアカウントの認証情報を正しく取得できていない場合。

これらの原因により、GitHub Actionsはアーティファクトをアップロードするための適切なアクセス権を持たず、エラーが発生します。

解決方法

このエラーを解決するための方法を以下に示します。

解決方法 1: サービスアカウントの作成

  1. Google Cloud Consoleにログインします。
  2. 左側のメニューから「IAMと管理」を選択し、「サービス アカウント」をクリックします。
  3. 「サービス アカウントを作成」をクリックします。
  4. サービスアカウントの名称を入力し、「作成」をクリックします。
  5. 次の画面で、アーティファクトレジストリに必要な権限を選択します。
  6. 例: Artifact Registry AdministratorArtifact Registry Writer
  7. 最後に、「完了」をクリックしてサービスアカウントを作成します。

解決方法 2: サービスアカウントに権限を付与

  1. 作成したサービスアカウントの詳細ページに移動します。
  2. 「権限」タブを選択します。
  3. 「権限を追加」をクリックし、必要な権限を追加します。
  4. 例: artifactregistry.repositories.uploadArtifacts
  5. 変更を保存します。

解決方法 3: Workload Identityの設定

  1. Google Cloud Consoleに戻り、「IAMと管理」を選択します。
  2. 「Workload Identityプール」を選択し、必要なプールを作成または選択します。
  3. プールに関連付けるリポジトリの情報を入力します。
  4. 例: `principalSet://iam.googleapis.com/$

コメント

タイトルとURLをコピーしました