🪣

[小ネタ]S3の全アクションを許可してるのにバケットポリシーが編集できなかった件

2023/03/04に公開

こんにちは深緑です。

今回は小ネタです。
AWSのS3にバケットを作成してユーザーにS3の全アクションを許可したのですが、
バケットポリシーは編集できないという現象にぶつかりました。

バケットポリシーが編集できない

ユーザーに付与したポリシーはこちらです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:ListStorageLensConfigurations",
                "s3:ListAccessPointsForObjectLambda",
                "s3:ListBucketMultipartUploads",
                "s3:ListAllMyBuckets",
                "s3:ListAccessPoints",
                "s3:ListJobs",
                "s3:ListBucketVersions",
                "s3:ListBucket",
                "s3:ListMultiRegionAccessPoints",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::fukamidori-bucket/*"
        }
    ]
}

"Action": "s3:*",があるのでResourceに書いてあるバケットに対して何でもできると思ったのですが、
"Resource": "arn:aws:s3:::fukamidori-bucket/*"とあるので、
fukamidori-bucket配下のオブジェクトに対して何でもできるという意味になってました。
バケットポリシーはバケットそのものの設定なのでResourceにバケットの配下のオブジェクトだけでなく、バケットそのものも書く必要がありました。
なので、以下のように直したらバケットポリシーが編集できるようになりました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:ListStorageLensConfigurations",
                "s3:ListAccessPointsForObjectLambda",
                "s3:ListBucketMultipartUploads",
                "s3:ListAllMyBuckets",
                "s3:ListAccessPoints",
                "s3:ListJobs",
                "s3:ListBucketVersions",
                "s3:ListBucket",
                "s3:ListMultiRegionAccessPoints",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::fukamidori-bucket",
                "arn:aws:s3:::fukamidori-bucket/*"
            ]
        }
    ]
}

バケットポリシーが編集できるようになりました

ちょっとした記述の違いですが、解決まで小一時間かかってしまいました。
何かを指定する際、スラッシュって重要な意味があるんですね。

Discussion