【トラブル】【AWS】S3権限周りのトラブルシュート

■ はじめに

Amazon S3 の権限エラーが多いので、それらをまとめておく。

目次

【1】EC2 から 「aws s3 ls」したらエラー「ListBuckets operation: Access Denied」

【1】EC2 から 「aws s3 ls」したらエラー「ListBuckets operation: Access Denied」

EC2 から 「aws s3 ls」したら、以下「エラー内容」が表示された。
なお、EC2に付与されている権限は、以下「IAM権限」の通り。

IAM権限

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetBucketLocation",
                "s3:ListBuckets",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3::::your-s3-bucket",
            "Resource": "arn:aws:s3::::your-s3-bucket/*"
        }
    ]
}

エラー内容

An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied

原因

ActionのResource適用が「"arn:aws:s3:::your-s3-bucket"」のみになっていたため

解決案

* "s3:GetBucketLocation", "s3:ListAllMyBuckets" に関して、外出しして
 提要範囲を「arn:aws:s3:::*」とした

修正後

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:ListBuckets"
            ],
            "Resource": "arn:aws:s3:::your-s3-bucket",
            "Resource": "arn:aws:s3:::your-s3-bucket/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        }
    ]
}

関連記事

Amazon S3AWS CLI
https://dk521123.hatenablog.com/entry/2017/04/01/235355