S3 Access Control

アクセスコントロールのタイプ特徴名前
ACLバケット、もしくはオブジェクト単位で設定する事が出来るBucketACL, ObjcetACL
BucketPolicyバケットに対する設定BucketPolicy
IAMユーザ名に応じたアクセスのコントロールが可能IAMRole

BucketACL VS. ObjcetACL VS. BucketPolicy

BucketPolicy > BucketACL & ObjcetACLとなっている

BucketACLObjcetACLBucketPolicy結果
許可許可拒否失敗
許可未設定拒否失敗
許可許可許可成功
許可未設定許可成功
許可許可未設定成功
許可未設定未設定失敗
未設定許可拒否失敗
未設定未設定拒否失敗
未設定許可許可成功
未設定未設定許可成功
未設定許可未設定成功
未設定未設定未設定失敗

BucketPolicy vs. IAMRole

IAMで許可されていないと確実に失敗する

BucketPolicyIAM結果
拒否拒否失敗
拒否許可失敗
許可拒否失敗
許可許可成功
未設定拒否失敗
未設定許可成功

用途

ユースケース[Bucket|Object]ACLBucketPolicyIAM
一個のObjectを公開したい
バケット全体を公開したい
特定のユーザにだけ公開したい
IPアドレス制限をかけたい
Bucketの中のPrefixを指定して公開したい
prefixがユーザ毎に可変

REFERENCES:

  • https://dev.classmethod.jp/articles/s3-acl-wakewakame/