GCP: PERMISSION_DENIED
GCPでIAMによりアクセスが拒否された場合のエラー
概要
Google Cloud Platformでリソースへのアクセス時に、IAMポリシーによって必要な権限が付与されていない場合に発生するエラーです。
エラーメッセージ
ERROR: (gcloud.storage.cp) HTTPError 403: user@example.com does not have storage.objects.get access to the Google Cloud Storage object.
または
google.api_core.exceptions.PermissionDenied: 403 Permission denied on resource project myproject
原因
- IAMロール不足: 必要なロールが付与されていない
- サービスアカウントキー: 権限のないサービスアカウント
- 組織ポリシー: 組織レベルでの制限
- APIの有効化: 必要なAPIが有効化されていない
解決策
1. 現在の権限を確認
| |
2. ロールを付与
| |
3. 必要なロールを特定
| |
4. サービスアカウントの確認
| |
5. リソースレベルのIAM
| |
6. APIの有効化
| |
7. Terraformでの設定
| |
8. Workload Identity(GKE)
| |
9. 組織ポリシーの確認
| |
10. IAM Troubleshooter
| |
よくある間違い
- プロジェクトIDとプロジェクト番号の混同
- サービスアカウントキーの期限切れ
- 条件付きロールバインディングの条件不一致
- 均一なバケットレベルアクセスとオブジェクトACLの混在
GCP の他のエラー
この記事は役に立ちましたか?