こんにちは。AWS CLIが好きな福島です。
はじめに
突然ですが、AWSを触っている時に、以下のようなエラーに遭遇したことは、ないでしょうか。 ※見やすいようにいくつか、改行を入れています。
An error occurred (AccessDenied) when calling the DescribeDBInstances operation: User: arn:aws:iam::123456789123:user/iam-check-user is not authorized to perform: rds:DescribeDBInstances on resource: arn:aws:rds:ap-northeast-1:123456789123:db:*
今回は、上記エラーの見方が分からない方向けエラーの見方と対処方法をブログに記載いたします。
エラーの見方
IAMの権限エラーは親切なので、深く考える必要はあまりありません。
冒頭のエラーが意味していることは、以下の通りです。
User: arn:aws:iam::123456789123:user/iam-check-user
「iam-check-user」というIAMユーザが
is not authorized to perform: rds:DescribeDBInstances
「rds:DescribeDBInstances」という権限(アクション)を
on resource: arn:aws:rds:ap-northeast-1:123456789123:db:*
「arn:aws:rds:ap-northeast-1:123456789123:db:*」というリソースに対して、 持っていないことを意味します。
この意味が分かれば、後は簡単です。
対処方法の前に
IAMポリシーのJSONの見方が不明な方は、以下を参照ください。
【初心者向け】IAMポリシー(JSON)の見方 - サーバーワークスエンジニアブログ
対処方法
エラーの対処方法は、「iam-check-user」というIAMユーザにIAM権限を割り当てるだけです。 そして、どういったポリシーを与えればいいのかというと今回の場合、以下のポリシーを割り当てます。 ※リソースを絞りたい場合と絞らない場合のポリシーを記載しています。
リソースを絞りたい場合
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RDSDescribe", "Effect": "Allow", "Action": "rds:DescribeDBInstances", "Resource": "arn:aws:rds:ap-northeast-1:123456789123:db:*" } ] }
リソースを絞らない場合
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RDSDescribe", "Effect": "Allow", "Action": "rds:DescribeDBInstances", "Resource": "*" } ] }
終わりに
今回は、IAM権限エラーの見方と対処方法をブログに記載いたしました。 どなたかのお役に立てれれば幸いです。
福島 和弥 (記事一覧)
2019/10 入社
AWS CLIが好きです。
AWS資格12冠。2023 Japan AWS Partner Ambassador/APN ALL AWS Certifications Engineer。