【初心者向け】IAM権限エラーの見方と対処方法

記事タイトルとURLをコピーする

こんにちは。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権限エラーの見方と対処方法をブログに記載いたしました。 どなたかのお役に立てれれば幸いです。

福島 和弥 (記事一覧)

SRE3課

2019/10 入社

AWS CLIが好きです。