【AWS】S3のBucket-ACLとObject-ACLとバケットポリシーどれが強いのか?

  • 0
    いいね
  • 0
    コメント

    はじめに

    S3のアクセス制御に「アクセスコントロールリスト(ACL)」と「バケットポリシー」がありますが
    違いがさっぱり分からなかったので整理してみました。
    ※AWS初心者のため、信憑性に欠けている部分があるかもしれません

    ACL

    AWSアカウントに対して、バケットとオブジェクトのそれぞれに「読み取り/書き込み」の「許可/拒否」を設定することができる。
    ※バケットにつけるACLをBucket-ACL、オブジェクトにつけるACLをObject-ACLと呼ぶ

    バケットポリシー

    バケットごとに、IAMユーザやグループに対してアクセス許可を設定することができる。
    条件付きアクセス許可やアクセス拒否の設定もできる。(ACLではできない)

    Bucket-ACLとObject-ACLとバケットポリシーの強さ

    Bucket-ACLとObject-ACLとバケットポリシーの3つの強さランキングは以下になる。
    1. バケットポリシー
    2. Object-ACL
    3. 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の設定によって成功か失敗か決まる。

    ここで疑問に思ったのはNo6No11の結果の違いについて。
    Bucket-ACLとObjcet-ACLの設定の違いによって結果が違っている。

    この理由についてははっきりわかっていないので、後日追記します。