Amazon S3のアクセス制御について

Amazon S3 は AWS の代表的なオブジェクトストレージサービスです。
シンプルな構造ながら強力なアクセス制御機能を持っており、正しく理解することが重要です。

本記事では、S3のアクセス制御について基本的な部分を整理します。


目次

バケットとオブジェクト

Amazon S3 はオブジェクトストレージであり、以下のような構造になっています。

  • バケット:オブジェクト(ファイル)を格納する入れ物
  • オブジェクト:実際に保存されるファイル

👉 バケットの中にオブジェクトが格納される、シンプルな構成です。


バケットとオブジェクトの所有権

S3では、バケットとオブジェクトそれぞれに「所有者」が存在します。

  • 所有者とは、各リソース(バケット・オブジェクト)を作成したAWSアカウント
  • IAMユーザーやロールでアップロードした場合でも、
    → 所属するAWSアカウントが所有者となる

IAMユーザーやロールを使用してオブジェクトをアップロードした場合、
そのオブジェクトの所有者は「そのIAMが属するAWSアカウント」になります。


所有権のポイント

  • バケット所有者は、別のAWSアカウントに対して
    オブジェクトアップロードのクロスアカウント許可を設定できる
  • バケット所有者は、他アカウントが所有するオブジェクトに対して
    自動的なアクセス権限は持たない

ただしバケット所有者ができること

所有権に関係なく、以下の操作は可能です。

  • オブジェクトへのアクセス拒否
  • オブジェクト削除
  • オブジェクトのアーカイブおよび復元

👉
完全なアクセス権がなくても、コントロールは可能という点が重要です。


アクセスの制御方式

S3のアクセス制御は大きく以下の2つに分類されます。


アクセス制御方式の一覧

カテゴリ制御方式概要設定内容設定オプション対象
リソースベースのポリシーバケットポリシーバケットに対してアクセス制御を設定許可 / 拒否IP制御、VPCエンドポイント、クロスアカウントバケット
リソースベースのポリシーACL(アクセスコントロールリスト)バケット・オブジェクトのアクセス許可を設定許可のみクロスアカウントバケット・オブジェクト
ユーザーポリシーIAMポリシーIAMユーザー・ロールに対してアクセス制御を設定許可 / 拒否IP制御、VPCエンドポイント、クロスアカウントバケット・オブジェクト

ポイントまとめ

  • バケットポリシー → リソース側からアクセスを制御
  • IAMポリシー → ユーザー側からアクセスを制御
  • ACL → シンプルなアクセス許可(現在は非推奨傾向)

👉
最終的なアクセス可否は、これらの組み合わせで決まります。


引用

  • バケットの概要(AWS公式)
    https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/UsingBucket.html
  • Amazon S3 オブジェクトの概要(AWS公式)
    https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/UsingObjects.html
  • アクセス管理の概要(AWS公式)
    https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/access-control-overview.html
  • アクセスポリシーのガイドライン(AWS公式)
    https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/access-policy-alternatives-guidelines.html

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次