Upgrade to Pro — share decks privately, control downloads, hide ads and more …

何が嬉しい?S3 Object ACL無効化 - 聞いた後、速攻で忘れていい知識をお届けします -

takashi
December 09, 2021

何が嬉しい?S3 Object ACL無効化 - 聞いた後、速攻で忘れていい知識をお届けします -

2021/12/7に開催されたre:Growth ONLINE 2021で
re:Invent 2021で発表されたAmazon S3 Object ACLの無効化について
登壇しました。

takashi

December 09, 2021
Tweet

More Decks by takashi

Other Decks in Technology

Transcript

  1. 10 1つ目の前提 S3には歴史的背景から複数の制御方法が存在します。 • Object ACL • Bucket ACL •

    User Policy(IAM) • Bucket Policy • Trust Policy アクセスコントロールリスト ポリシー
  2. 11 1つ目の前提 S3には歴史的背景から複数の制御方法が存在します。 • Object ACL • Bucket ACL •

    User Policy(IAM) • Bucket Policy • Trust Policy アクセスコントロールリスト ポリシー ここが無効化できるようにな りました!
  3. 12 2つ目の前提 S3には所有者という考え方が存在 • バケット所有者 = AWSアカウントA • オブジェクト所有者 =

    AWSアカウントB Amazon Simple Storage Service (Amazon S3) Object AWSアカウント A AWSアカウント B
  4. 13 具体的な例 アカウントB配下のオブジェクトをAのS3にPutしても • バケット所有者 • オブジェクト所有者 Amazon Simple Storage

    Service (Amazon S3) Object AWSアカウント A AWSアカウント B アカウントBの許可がないと アカウントAはオブジェクトへ アクセスできません
  5. 14 具体的な例 Amazon Simple Storage Service (Amazon S3) Object AWSアカウント

    A AWSアカウント B バケット所有者への フルアクセス権を オブジェクトに付与する Object ACL バケット所有者(=A)にフルア クセス許可を付与しないとBか らバケットを使わせない Bucket Policy
  6. 15 まだ所有者はこのまま • バケット所有者 = AWSアカウントA • オブジェクト所有者 = AWSアカウントB

    Amazon Simple Storage Service (Amazon S3) Object AWSアカウント A AWSアカウント B バケット所有者(=A)にフルア クセス許可を付与しないとBから バケットを使わせない Bucket Policy バケット所有者への フルアクセス権を オブジェクトに付与する Object ACL
  7. 16 2020年Update オブジェクトオーナーシップ設定 オブジェクトが既定ACLの bucket-owner-full-control を指定してアップロ ードされた場合、バケット所有者がオブジェクトを所有する Amazon Simple Storage

    Service (Amazon S3) Object AWSアカウント A AWSアカウント B バケット所有者(=A)にフルア クセス許可を付与しないとBから バケットを使わせない Bucket Policy バケット所有者への フルアクセス権を オブジェクトに付与する Object ACL
  8. 17 オブジェクト所有者が変わった! • バケット所有者 = AWSアカウントA • オブジェクト所有者 = AWSアカウントA

    Amazon Simple Storage Service (Amazon S3) Object AWSアカウント A AWSアカウント B バケット所有者(=A)にフルア クセス許可を付与しないとBから バケットを使わせない Bucket Policy バケット所有者への フルアクセス権を オブジェクトに付与する Object ACL
  9. 18 でもまだややこしい Amazon Simple Storage Service (Amazon S3) Object AWSアカウント

    A AWSアカウント B バケット所有者(=A)にフルア クセス許可を付与しないとBから バケットを使わせない Bucket Policy バケット所有者への フルアクセス権を オブジェクトに付与する Object ACL
  10. 20 シンプル! S3 Object ACLを無効化(BacketOwnerEnforced)すること でバケットに入れたオブジェクトは強制的にバケット所 有者のものとする!!となりました Amazon Simple Storage

    Service (Amazon S3) Object AWSアカウント A AWSアカウント B Amazon S3 Object Ownership = BucketOwnerEnforced 設定不要! ACLの設定してたとしても BOEに負ける!