概要
S3バケットとバケットポリシーを記載したCloudformationテンプレートをアップロードしたら、以下のエラーになりました。
Resource handler returned message: "Invalid principal in policy (Service: S3, Status Code: 400, Request ID: xxxxxxxxxx, Extended Request ID: xxxxxxxxxxxxxxxxxxxx) (SDK Attempt Count: 1)" (RequestToken: xxxxxxxxxxxxxxxxxxxx, HandlerErrorCode: GeneralServiceException)
原因と解決方法
エラーメッセージは、Principal
の指定が間違っていると言っていますね。
ということで私が書いたコードを見てみると、以下のようにしていました。
Principal:
AWS: "arn:aws:iam::{AWS accountのID}:user/*"
自分のAWS環境のユーザであれば誰でも触れていいよ、と思いワイルドカードを使ったのですが、どうやらこれがNGだったらしい。
Principal
には実在するIAMユーザーやロールのARNを指定する必要があるとのこと。
もしくは代わりに
"arn:aws:iam::582318560864:root"
を入れてもOKです。"arn:aws:iam::582318560864:root"
は「そのAWSアカウントの全権限」を意味しています。
東京リージョン以外だと別の値になります。詳細は公式ドキュメントをご参照ください。