このセクションでは、Amazon Simple Storage Service(S3)に対する基本的な IAM ポリシーについて紹介していきます。

許可ポリシーが適用されていない場合

Amazon S3 に対する許可ポリシーが適用されていない IAM ユーザーまたはロールで Amazon S3 サービスにアクセスすると、S3 バケットの参照やバケットの作成ができません。

S3 バケットの一覧を表示しようとするとエラーとなります。

S3 バケットを作成しようとするとエラーとなります。

AmazonS3ReadOnlyAccess が適用されている場合

Amazon マネージドポリシーである AmazonS3ReadOnlyAccess が適用されている IAM ユーザーまたはロールで Amazon S3 サービスにアクセスすると、Amazon S3 サービスの参照が可能となります。

S3 バケットの一覧が見れるようになります。

ただし、S3 バケットを作成しようとするとエラーとなります。読み込み権限だけで書き込みの権限がないためです。

S3 に保存されたデータ(オブジェクト)の参照も可能となります。

S3 に保存されたデータ(オブジェクト)の削除はエラーとなりできません。

AmazonS3FullAccess が適用されている場合

Amazon マネージドポリシーである AmazonS3FullAccess が適用されている IAM ユーザーまたはロールで Amazon S3 サービスにアクセスすると、Amazon S3 サービスの参照だけでなく変更も可能となります。

S3 バケットの削除も可能となります。

S3 に保存されたデータ(オブジェクト)の削除も可能となります。

非推奨とされている ALC 有効での S3 バケットの作成も可能となります。非推奨とされているため、この場合のS3 バケットの運用には注意が求められます。

非推奨のACL有効でのバケット作成をNGとしたい場合

非推奨とされている ACL 有効での Amazon S3 バケットの作成ができないようにするためには以下のポリシーを、IAM ユーザーまたはロールに追加で適用します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "RequireBucketOwnerFullControl",
            "Action": "s3:CreateBucket",
            "Effect": "Deny",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-object-ownership": "BucketOwnerEnforced"
                }
            }
        }
    ]
}

上記ポリシーを適用すれば、非推奨とされている ALC 有効での S3 バケットの作成はできなくなります。

AmazonS3FullAccess のポリシーを適用した IAM ユーザーまたはロールに対して、本ポリシーを適用しても制御は有効となりました。