Cloud Runにデプロイを試みた時に発生したPermission 'run.services.get' denied on resourceエラーの解決方法
GitHub Actionsからサービスアカウントを使ってCloud Runにデプロイを行なった時に次のようなエラーが発生した。
ERROR: (gcloud.run.deploy) PERMISSION_DENIED: Permission 'run.services.get' denied on resource
このエラーの内容からgcloud.run.deploy
の権限が付与されていないためエラーが発生しているように見えるが、このときサービスアカウントにはすでにCloud Run管理者
権限が付与されている状態だった。
この場合の解決方法としては、Cloud Buildのページから設定を開く。
Cloud Run 管理者のステータスを有効に切り替える。
すべてのサービスアカウントにアクセス権を付与をクリックする。
この状態で、GitHub Actionsからもう一度デプロイを試みると解決した。
ワークフローファイルの内容は次の通り。
name: Deploy on: push: branches: - main workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest timeout-minutes: 60 needs: [test] if: ${{ (github.ref == 'refs/heads/main') }} steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: 11 - name: Make gradlew executable run: chmod +x ./gradlew - name: Setup Gradle uses: gradle/gradle-build-action@v2 - id: 'auth' uses: 'google-github-actions/auth@v1' with: credentials_json: '${{ secrets.GCP_CREDENTIALS }}' - name: Set up gcloud CLI uses: google-github-actions/setup-gcloud@v1 - name: Configure Docker with Credentials run: | gcloud auth configure-docker - name: Build the Docker Image run: | gcloud config set project ${{ secrets.GCP_PROJECT_NAME }} gcloud builds submit --config ./cloudbuild.yaml
参考
Cloud Build を使用した継続的デプロイの手動設定 | Cloud Run のドキュメント | Google Cloud