前回の続きです。
実際にTemplateを作成したので、スタックを作成します。
ただ、ポリシーを設定していなかったのでその時の対処方法についてまとめます。
websandbag.hatenablog.com
この記事で得られる事
- CloudFormationでロール作成(iam:CreateRole)を追加する時に必要なポリシーがわかる。
イントロダクション
今回作成したソースについて
https://github.com/websandbag/image_uploader
事象
v0.1で作成したポリシーでスタックを作成しようとすると、AWS CLIでCloudFormatioのスタックを作成したが、ロールバックしてしまう。
02:07:40 UTC+0900 CREATE_FAILED AWS::IAM::Role ExecRole API: iam:CreateRole User: arn:aws:iam::<アカウントID>:user/<IAMのユーザー> is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::<アカウントID>:role/<ロール>
原因
リソースで「AWS::IAM::Role」を指定しているにも関わらず、AWS CLIを実行したユーザーに「CreateRole」の権限が付与されていない。
cloudformation.json
"Resources": { "ExecRole": { "Type": "AWS::IAM::Role" } }
対応方法
AWS CLIを使うユーザーにRole関連の権限を付与する必要があります。 そのため、下記のポリシーをAWS CLIで設定しているIAMのユーザーに割り当てました。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OperationRole", "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:DeleteRole", "iam:PutRolePolicy" ], "Resource": "*" } ] }