##はじめに
S3のアクセス制御に「アクセスコントロールリスト(ACL)」と「バケットポリシー」がありますが
違いがさっぱり分からなかったので整理してみました。
※AWS初心者のため、信憑性に欠けている部分があるかもしれません
##ACL
AWSアカウントに対して、バケットとオブジェクトのそれぞれに「読み取り/書き込み」の「許可/拒否」を設定することができる。
※バケットにつけるACLをBucket-ACL、オブジェクトにつけるACLをObject-ACLと呼ぶ
##バケットポリシー
バケットごとに、IAMユーザやグループに対してアクセス許可を設定することができる。
条件付きアクセス許可やアクセス拒否の設定もできる。(ACLではできない)
##Bucket-ACLとObject-ACLとバケットポリシーの強さ
Bucket-ACLとObject-ACLとバケットポリシーの3つの強さランキングは以下になる。
- バケットポリシー
- Object-ACL
- Bucket-ACL
No | Bucket-ACL | Objcet-ACL | バケットポリシー | 結果 |
---|---|---|---|---|
1 | 許可 | 許可 | 拒否 | 失敗 |
2 | 許可 | 未設定 | 拒否 | 失敗 |
3 | 許可 | 許可 | 許可 | 成功 |
4 | 許可 | 未設定 | 許可 | 成功 |
5 | 許可 | 許可 | 未設定 | 成功 |
6 | 許可 | 未設定 | 未設定 | 失敗 |
7 | 未設定 | 許可 | 拒否 | 失敗 |
8 | 未設定 | 未設定 | 拒否 | 失敗 |
9 | 未設定 | 許可 | 許可 | 成功 |
10 | 未設定 | 未設定 | 許可 | 成功 |
11 | 未設定 | 許可 | 未設定 | 成功 |
12 | 未設定 | 未設定 | 未設定 | 失敗 |
※参考にしたサイトはこちら | ||||
http://dev.classmethod.jp/cloud/aws/s3-acl-wakewakame/ |
表の結果を見ると、バケットポリシーの設定によって成功か失敗か決まるのが分かる。
また、バケットポリシーが未設定の場合、ACLの設定によって成功か失敗か決まる。
ここで疑問に思ったのはNo6とNo11の結果の違いについて。
Bucket-ACLとObjcet-ACLの設定の違いによって結果が違っている。
この理由についてははっきりわかっていないので、後日追記します。