by shigemk2

当面は技術的なことしか書かない

Amazon S3 バケットへのすべてのユーザーのアクセスを誤って拒否しましたのやつ

間違ってこんな感じのバケットポリシーを設定すると、あまねくアクションが拒否されるので、バケットポリシーを見ることもオブジェクト一覧を見ることもできないし、バケットを削除することもできない。こうなるとルートユーザーでバケットポリシーを削除するしかない。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "s3:*",
            "Effect": "Deny",
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ],
            "Principal": "*"
        }
    ]
}

なぜルートユーザーでバケットポリシーを削除できるのかというと、やっぱりルートユーザーはIAMユーザーなどと違って特別だかららしい。

重要:ルートユーザーを日常業務に使用しないでください。これらの認証情報の使用は、ルートユーザーとしてサインインする必要があるタスクのみに制限してください。ルート認証情報は、完全な管理者アクセス権を持つ AWS Identity Access Management (IAM) ユーザーまたはロールとは異なります。許可または拒否の権限を持つ IAM ポリシーをルートアカウントにアタッチすることはできません。

dev.classmethod.jp

repost.aws