Amazon S3 でのアクセスコントロール - Amazon Simple Storage Service

Amazon S3 でのアクセスコントロール

AWS では、リソースはユーザーが操作できるエンティティです。Amazon Simple Storage Service (S3) では、バケットとオブジェクトが元の Amazon S3 リソースです。すべての S3 のお客様のバケットには、オブジェクトが含まれている可能性があります。新機能が S3 に追加され、リソースもさらに追加されましたが、すべてのお客様がこれらの機能固有のリソースを使用しているわけではありません。Amazon S3 リソースの詳細については、「S3 リソース」を参照してください。

デフォルトでは、すべての Amazon S3 リソースはプライベートです。さらにデフォルトでは、リソースを作成した AWS アカウントのルートユーザー (リソース所有者) と、必要なアクセス許可を持つそのアカウント内の IAM ユーザーは、作成したリソースにアクセスできます。リソース所有者は、リソースにアクセスできる他のユーザーと、他のユーザーがリソースに対して実行できるアクションを決定します。S3 には、S3 リソースへのアクセスを他のユーザーに許可するために使用できるさまざまなアクセス管理ツールがあります。

以下のセクションでは、S3 リソースの概要、使用可能な S3 アクセス管理ツール、各アクセス管理ツールの最適なユースケースについて説明します。これらのセクションのリストは、包括的な内容で、すべての S3 リソース、アクセス管理ツール、一般的なアクセス管理のユースケースが含まれることを意図しています。同時に、これらのセクションは、必要な技術的情報へと案内するディレクトリとなるように設計されています。以下のトピックの一部をよく理解している場合は、該当するセクションに進んでください。

S3 リソースタイプ別の S3 API オペレーションへのアクセス許可の詳細については、「Amazon S3 API オペレーションに必要なアクセス許可」を参照してください。

トピック

S3 リソース

元の Amazon S3 リソースとは、バケットとそれらに含まれるオブジェクトです。S3 に新しい機能が追加されると、新しいリソースも追加されます。以下は、S3 リソースとそれぞれの特徴の完全なリストです。

リソースタイプ Amazon S3 の特徴 説明

bucket

主要機能

バケット とは、オブジェクトのコンテナのことです。S3 にオブジェクトを保存するには、バケットを作成してから、1 つまたは複数のオブジェクトをバケットにアップロードします。詳細については、「Amazon S3 バケットの作成、設定、操作」を参照してください。

object

オブジェクトには、ファイルと、そのファイルを記述している任意のメタデータを指定できます。オブジェクトがバケットの中にあるときは、オブジェクトを開き、ダウンロードして、移動させます。詳細については、「Amazon S3 オブジェクトの使用」を参照してください。

accesspoint

アクセスポイント

Access Points は、バケットにアタッチされた名前付きのネットワークエンドポイントで、Amazon S3 オブジェクトのオペレーション (GetObjectPutObject など) を実行するために使用できます。各アクセスポイントには、個別の許可とネットワーク制御、および基になるバケットにアタッチされたバケットポリシーと連動して機能するカスタマイズされたアクセスポイントポリシーがあります。仮想プライベートクラウド (VPC) からのリクエストのみを受け入れるように任意のアクセスポイントを設定したり、アクセスポイントごとにカスタムブロックパブリックアクセスを設定したりできます。詳細については、「アクセスポイントを使用した共有データセットへのアクセスの管理」を参照してください。

objectlambdaaccesspoint

Object Lambda アクセスポイントは、Lambda 関数にも関連付けられているバケットのアクセスポイントです。Object Lambda アクセスポイントを使用すると、Amazon S3 GETLISTHEAD リクエストに独自のコードを追加して、データがアプリケーションに返されるときにそのデータを変更および処理できます。詳細については、「Object Lambda アクセスポイントの作成」を参照してください。

multiregionaccesspoint

マルチリージョン Access Points を使用すると、アプリケーションが複数の AWS リージョンにある Amazon S3 バケットからのリクエストを実行するために使用できるグローバルエンドポイントを作成できます。マルチリージョンアクセスポイントを使用して、単一のリージョンで使用するのと同じシンプルなアーキテクチャでマルチリージョンアプリケーションを構築し、世界中のどこでもこれらのアプリケーションを実行することができます。混雑したパブリックインターネット経由でリクエストを送信する代わりに、マルチリージョンアクセスポイントのグローバルエンドポイントに対して行われたアプリケーションリクエストは、AWS グローバルネットワークを介して最も近い Amazon S3 バケットに自動的にルーティングされます。詳細については、「マルチリージョンアクセスポイントを使用したマルチリージョントラフィックの管理」を参照してください。

job

S3 バッチオペレーション

ジョブは S3 バッチオペレーション機能のリソースです。S3 バッチオペレーションを使用すると、指定した Amazon S3 のオブジェクトのリストに対して大規模なバッチオペレーションを実行できます。Amazon S3 は、バッチオペレーションジョブの進捗状況の追跡、通知の送信、すべてのアクションの詳細な完了レポートの保存を行い、フルマネージド型の監査可能なサーバーレスエクスペリエンスを提供します。詳細については、「バッチオペレーションでオブジェクトオペレーションを一括で実行する」を参照してください。

storagelensconfiguration

S3 Storage Lens

S3 Storage Lens は、組織全体のストレージメトリクスとユーザーデータを収集します。S3 Storage Lens は、組織内の数百または数千のアカウントのオブジェクトストレージの使用状況とアクティビティを 1 つのビューで表示し、複数の集約レベルでインサイトを生成するための詳細情報を提供します。詳細については、「Amazon S3 ストレージレンズを使用してストレージのアクティビティと使用状況を評価する」を参照してください。

storagelensgroup

S3 Storage Lens グループは、オブジェクトメタデータに基づくカスタムフィルターを使用してメトリクスを集約します。S3 Storage Lens グループを使用すると、経過時間別のオブジェクトの分布や最も一般的なファイルタイプなど、データの特性を調べることができます。詳細については、「S3 ストレージレンズグループを使用したメトリクスのフィルタリングと集計」を参照してください。

accessgrantsinstance

S3 Access Grants

S3 Access Grants インスタンスは、ユーザーが作成した S3 アクセス許可のコンテナです。S3 Access Grants を使用すると、 アカウント内の IAM アイデンティティ、他の アカウントの IAM アイデンティティ (クロスアカウント)、および社内ディレクトリから AWS IAM Identity Center に追加されたディレクトリアイデンティティの Amazon S3 データへのアクセス許可を作成できます。S3 Access Grants の詳細については、「S3 Access Grants でのアクセス管理」を参照してください。

accessgrantslocation

Access Grants Location は、S3 Access Grants インスタンスに登録するバケット、バケット内のプレフィックス、またはオブジェクトです。S3 Access Grants インスタンス内にロケーションを登録してから、そのロケーションへのアクセス許可を作成する必要があります。次に、S3 Access Grants を使用して、 アカウント内の IAM アイデンティティ、他のアカウントの IAM アイデンティティ (クロスアカウント)、および社内ディレクトリから AWS IAM Identity Center に追加されたディレクトリアイデンティティのバケット、プレフィックス、またはオブジェクトへのアクセス許可を作成できます。S3 Access Grants の詳細については、「S3 Access Grants でのアクセス管理」を参照してください。

accessgrant

Access Grant は、Amazon S3 データに対する個別のアクセス許可です。S3 Access Grants を使用すると、 アカウント内の IAM アイデンティティ、他の アカウントの IAM アイデンティティ (クロスアカウント)、および社内ディレクトリから AWS IAM Identity Center に追加されたディレクトリアイデンティティの Amazon S3 データへのアクセス許可を作成できます。S3 Access Grants の詳細については、「S3 Access Grants でのアクセス管理」を参照してください。

バケット

Amazon S3 バケットには、汎用バケットとディレクトリバケットの 2 種類があります。

S3 リソースの分類

Amazon S3 には、S3 リソースを分類および整理する機能が備えられています。リソースの分類は、リソースの整理に役立つだけでなく、これにより、リソースカテゴリに基づいてアクセス管理ルールを設定することもできます。特に、プレフィックスとタグ付けは、アクセス管理のアクセス許可を設定するときに使用する 2 つのストレージ組織機能です。

注記

以下の情報は、汎用バケットに適用されます。ディレクトリバケットはタグ付けをサポートしておらず、プレフィックスの誓約があります。詳細については、「IAM を使用したリージョンエンドポイント API の承認」を参照してください。

  • プレフィックス — Amazon S3 のプレフィックスは、S3 バケットに保存されたオブジェクトを整理するために使用されるオブジェクトキー名の先頭にある文字列です。スラッシュ (/) などの区切り文字を使用して、オブジェクトキー名内のプレフィックスの末尾を指定できます。例えば、engineering/ プレフィックスで始まるオブジェクトキー名や、marketing/campaigns/ プレフィックスで始まるオブジェクトキー名があるとします。スラッシュ文字 (/) など、プレフィックスの末尾に区切り記号を使用すると、フォルダとファイルの命名規則がエミュレートされます。ただし、S3 では、プレフィックスはオブジェクトキー名の一部です。汎用 S3 バケットでは、実際のフォルダ階層は存在しません。

    Amazon S3 では、プレフィックスを使用してオブジェクトを整理およびグループ化できます。オブジェクトへのアクセスをプレフィックスで管理することもできます。例えば、特定のプレフィックスで始まる名前のオブジェクトへのアクセスのみを制限できます。

    詳細については、「プレフィックスを使用してオブジェクトを整理する」を参照してください。S3 コンソールは、フォルダの概念を使用します。これは、汎用バケットでは、基本的にオブジェクトキー名の前に付加されるプレフィックスです。詳細については、「フォルダを使用して Amazon S3 コンソールのオブジェクトを整理する」を参照してください。

  • タグ — 各タグは、リソースに割り当てることができるキーと値のペアです。例えば、一部のリソースにタグ topicCategory=engineering を付けることができます。タグ付けを使用すると、コスト配分、分類と整理、アクセスコントロールに役立ちます。バケットのタグ付けはコスト配分にのみ使用されます。オブジェクト、S3 Storage Lens、ジョブ、および S3 Access Grants には、整理またはアクセスコントロールの目的でタグ付けできます。S3 Access Grants では、コスト配分にもタグ付けを使用できます。タグを使用してリソースへのアクセスを制御する例として、特定のタグまたはタグの組み合わせを持つオブジェクトのみを共有できます。

    詳細については、IAM ユーザーガイドの「リソースタグを使用した AWS リソースへのアクセスの制御」を参照してください。

ID

Amazon S3 では、リソース所有者は、バケットやオブジェクトなどのリソースを作成した ID です。デフォルトでは、必要なアクセス許可を持つアカウント内でリソースと IAM アイデンティティを作成したアカウントのルートユーザーのみが S3 リソースにアクセスできます。リソース所有者は、他のアイデンティティに S3 リソースへのアクセスを許可できます。

リソースを所有していないアイデンティティは、そのリソースへのアクセスをリクエストできます。リソースに対するリクエストは、認証済みまたは未認証です。認証リクエストには、リクエストの送信元を認証する署名値を含める必要がありますが、未認証のリクエストでは署名は不要です。認証されたユーザーのみにアクセスを許可することをお勧めします。リクエスト認証の詳細については、「Amazon S3 API リファレンス」の「Making requests」を参照してください。

重要

認証されたリクエストの実行に AWS アカウントのルートユーザー認証情報を使用しないことをお勧めします。代わりに、IAM ロールを作成し、このロールにフルアクセスを許可します。このロールを持つユーザーを管理者ユーザーと呼びます。AWS アカウントのルートユーザー認証情報ではなく、管理者ユーザーに割り当てられた認証情報を使用して AWS とやり取りし、バケットの作成、ユーザーの作成、アクセス許可の付与などのタスクを実行できます。詳細については、AWS 全般のリファレンスの「AWS アカウント ルートユーザーの認証情報と IAM ユーザーの認証情報」および 「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。

Amazon S3 のデータにアクセスするアイデンティティは、次のいずれかになります。

AWS アカウント所有者

リソースを作成した AWS アカウントです。例えば、バケットを作成したアカウントです。このアカウントは リソースを所有しています。詳細については、「AWS アカウントのルートユーザー」を参照してください。

AWS アカウント所有者の同じアカウントの IAM アイデンティティ

S3 アクセスを必要とする新しいチームメンバーのアカウントを設定する場合、AWS アカウント所有者は AWS Identity and Access Management (IAM) を使用してユーザーグループロールを作成できます。その後、AWS アカウント所有者はこれらの IAM アイデンティティとリソースを共有できます。アカウント所有者は、IAM アイデンティティに付与するアクセス許可を指定することもできます。これにより、共有リソースで実行できるアクションを許可または拒否できます。

IAM アイデンティティを使用すると、共有リソースにアクセスする前にログイン認証情報の入力を要求するなど、機能を強化できます。IAM アイデンティティを使用すると、強力なアイデンティティ基盤をサポートするために、IAM の多要素認証 (MFA) 形式を実装することもできます。IAM のベストプラクティスは、個々のユーザーにアクセス許可を付与するのではなく、アクセス管理用のロールを作成することです。個々のユーザーを適切なロールに割り当てます。詳細については、「IAM のセキュリティのベストプラクティス」を参照してください。

他の AWS アカウント所有者とその IAM アイデンティティ (クロスアカウントアクセス)

AWS アカウント所有者は、他の AWS アカウント所有者、または別の AWS アカウントに属する IAM アイデンティティにリソースへのアクセスを許可することもできます。

注記

アクセス許可の委任 — AWS アカウントがリソースを所有している場合、そのアカウントは別の AWS アカウントにこれらの許可を付与できます。そのアカウントは、それらのアクセス許可またはそのサブセットを、同じアカウント内のユーザーに委任できます。これはアクセス許可の委任と呼ばれます。ただし、他のアカウントから許可を受け取るアカウントは、別の AWS アカウントに「クロスアカウント」でこれらの許可を委任することはできません。

匿名ユーザー (パブリックアクセス)

AWS アカウント 所有者はリソースを公開できます。リソースを公開すると、リソースが匿名ユーザーと技術的に共有されます。2023 年 4 月以降に作成されたバケットは、この設定を変更しない限り、デフォルトですべてのパブリックアクセスをブロックします。パブリックアクセスをブロックするようにバケットを設定し、認証されたユーザーにのみアクセスを許可することをお勧めします。ブロックパブリックアクセスの詳細については、Amazon S3 ストレージへのパブリックアクセスのブロック を参照してください。

AWS のサービス

リソース所有者は、Amazon S3 リソースへの別の AWS サービスアクセスを許可できます。例えば、ログファイルをバケットに書き込む s3:PutObject アクセス許可を AWS CloudTrail サービスに付与できます。詳細については、「AWS サービスへのアクセスの提供」を参照してください。

社内ディレクトリのアイデンティティ

リソース所有者は、S3 Access Grants を使用して、社内ディレクトリのユーザーまたはロールに S3 リソースへのアクセス権を付与できます。AWS IAM Identity Center への社内ディレクトリの追加に関する詳細は、「IAM Identity Center とは何ですか?」を参照してください。

バケットまたはリソース所有者

このようなリソースの所有者は、バケットの作成とオブジェクトのアップロードに使用する AWS アカウントです。バケット所有者は、別の AWS アカウント (または別のアカウントのユーザー) に対して、オブジェクトをアップロードするためのクロスアカウントアクセス許可を付与できます。

バケット所有者が別のアカウントにバケットへのオブジェクトのアップロードを許可すると、バケット所有者はデフォルトで、バケットにアップロードされたすべてのオブジェクトを所有します。ただし、バケット所有者の強制バケット設定とバケット所有者の優先バケット設定の両方がオフになっている場合、オブジェクトをアップロードする AWS アカウントがこれらのオブジェクトを所有し、バケット所有者には別のアカウントが所有するオブジェクトに対するアクセス許可は付与されません。ただし、以下の例外があります。

  • バケット所有者が請求の支払いを行う場合、バケット所有者は、オブジェクトの所有者に関係なく、オブジェクトへのアクセスを拒否したり、バケット内のオブジェクトを削除したりすることができます。

  • バケット所有者は、オブジェクトの所有者に関係なく、オブジェクトをアーカイブしたり、アーカイブされたオブジェクトを復元したりすることができます。アーカイブはオブジェクトの格納に使用されるストレージクラスを指します。詳細については、「オブジェクトのライフサイクルの管理」を参照してください。

アクセス管理ツール

Amazon S3 には、さまざまなセキュリティ機能とツールが用意されています。以下は、これらの機能とツールの包括的なリストです。これらのアクセス管理ツールがすべて必要なわけではありませんが、Amazon S3 リソースへのアクセスを付与するには、これらのツールを 1 つ以上使用する必要があります。これらのツールを適切に適用すると、データの整合性を維持し、目的のユーザーがリソースにアクセスできるようにするために役立ちます。

最も一般的に使用されるアクセス管理ツールは、アクセスポリシーです。アクセスポリシーは、バケットのバケットポリシーなど、AWS リソースにアタッチされたリソースベースのポリシーに指定できます。アクセスポリシーは、IAM ユーザー、グループ、ロールなどの AWS Identity and Access Management (IAM) アイデンティティにアタッチされたアイデンティティベースのポリシーに指定することもできます。アクセスポリシーを作成して、 AWS アカウントおよび IAM ユーザー、グループ、ロールにアクセス許可を付与し、リソースに対してオペレーションを実行します。例えば、他のアカウントがバケットにオブジェクトをアップロードできるように、別の AWS アカウントに PUT Object アクセス許可を付与できます。

アクセスポリシーでは、誰が何にアクセスできるかを記述します。Amazon S3 は、リクエストを受け取ったときにすべてのアクセスポリシーを評価して、リクエストを許可するか拒否するかを判断する必要があります。Amazon S3 がこれらのポリシーを評価する方法の詳細については、Amazon S3 がリクエストを許可する仕組み を参照してください。

Amazon S3 で使用できるアクセス管理ツールを以下に示します。

Amazon S3 バケットポリシーは、特定のバケットにアタッチされた JSON 形式の AWS Identity and Access Management (IAM) リソースベースのポリシーです。バケットポリシーを使用すると、バケットおよびバケット内のオブジェクトに対するアクセス許可を、他の AWS アカウントまたは IAM アイデンティティに付与できます。S3 アクセス管理の多くのユースケースは、バケットポリシーを使用することで要件が満たされます。バケットポリシーを使用すると、承認されたアイデンティティのみがリソースにアクセスしてアクションを実行できるように、バケットアクセスをパーソナライズすることができます。詳細については、「Amazon S3 のバケットポリシー」を参照してください。

以下は、バケットポリシーの例です。JSON ファイルを使用してバケットポリシーを表現します。このポリシーの例では、バケット内のすべてのオブジェクトに IAM ロールの読み取りアクセス許可を付与します。このポリシーには、amzn-s3-demo-bucket1 という名前のバケット内のオブジェクトに対して、s3:GetObject アクション (読み取りアクセス許可) を許可する BucketLevelReadPermissions という名前の 1 個のステートメントがあります。IAM ロールを Principal として指定することで、このポリシーは、このロールを持つすべての IAM ユーザーにアクセス権を付与します。このポリシーの例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。

{ "Version":"2012-10-17", "Statement": [ { "Sid":"BucketLevelReadPermissions", "Effect":"Allow", "Principal": { "AWS": "arn:aws:iam::123456789101:role/s3-role" }, "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::amzn-s3-demo-bucket1/*"] }] }
注記

ポリシーを作成するときは、Principal 要素にワイルドカード文字 (*) を使用しないでください。ワイルドカードを使用すると、すべてのユーザーが Amazon S3 リソースにアクセスできるようになります。代わりに、バケットへのアクセスが許可されているユーザーまたはグループを明示的にリストするか、ポリシーで条件句を使用して満たす必要がある条件をリストします。ユーザーまたはグループのアクションにワイルドカード文字を含めるのではなく、該当する場合に特定のアクセス許可を付与します。

アイデンティティベースのポリシーまたは IAM ユーザーポリシーは、AWS Identity and Access Management (IAM) ポリシーの一種です。アイデンティティベースのポリシーは、AWSアカウントの IAM ユーザー、グループ、またはロールにアタッチされる JSON 形式のポリシーです。アイデンティティベースのポリシーを使用すると、バケットまたはオブジェクトへのアクセス許可を IAM アイデンティティに付与できます。アカウント内に IAM ユーザー、グループ、およびロールを作成し、これらにアクセスポリシーをアタッチできます。次に、Amazon S3 リソースを含む AWS リソースへのアクセス許可を付与できます。詳細については、「Amazon S3 のアイデンティティベースのポリシー」を参照してください。

以下は、アイデンティティベースポリシーの例です。このポリシーの例では、関連 IAM ロールに、バケットとバケット内のオブジェクトに対して Amazon S3 の 6 つの異なるアクション (アクセス許可) の実行を許可します。このポリシーをアカウントの IAM ロールにアタッチし、そのロールを一部の IAM ユーザーに割り当てると、このロールを持つユーザーは、ポリシーで指定されたリソース (バケット) に対してこれらのアクションを実行できます。このポリシーの例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AssignARoleActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ] }, { "Sid": "AssignARoleActions2", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" } ] }

S3 Access Grants を使用して、Active Directory などの企業 ID ディレクトリ内のアイデンティティと AWS Identity and Access Management (IAM) アイデンティティの両方の Amazon S3 データへのアクセス許可を作成します。S3 Access Grants は、大規模なデータのアクセス許可の管理に役立ちます。さらに、S3 Access Grants は、エンドユーザーアイデンティティと、AWS CloudTrail での S3 データへのアクセスに使用されるアプリケーションをログに記録します。これにより、S3 バケット内のデータへのすべてのアクセスについて、エンドユーザーアイデンティティまで詳細な監査履歴が提供されます。詳細については、「S3 Access Grants でのアクセス管理」を参照してください。

Amazon S3 Access Points は、S3 の共有データセットを使用するアプリケーションの大規模なデータアクセスの管理を簡素化します。Access Points は名前付きのネットワークエンドポイントで、バケットにアタッチされます。アクセスポイントを使用すると、オブジェクトのアップロードや取得などの S3 オブジェクトオペレーションを大規模に実行できます。バケットには最大 10,000 個のアクセスポイントをアタッチできます。各アクセスポイントでは、個別のアクセス許可やネットワークコントロールを適用することで、S3 オブジェクトへのアクセスをきめ細かく制御できます。S3 Access Points は、同じアカウントまたは別の信頼されたアカウントのバケットに関連付けることができます。Access Points ポリシーは、基になるバケットポリシーと組み合わせて評価されるリソースベースのポリシーです。詳細については、「アクセスポイントを使用した共有データセットへのアクセスの管理」を参照してください。

ACL は、アクセス許可の被付与者と付与されるアクセス許可を識別するリストです。ACL は、基本的な読み取り/書き込み許可を他の AWS アカウントに付与します。ACL では、Amazon S3 固有の XML スキーマが使用されます。ACL は、AWS Identity and Access Management (IAM) ポリシーの一種です。オブジェクト ACL は、オブジェクトへのアクセスを管理するために使用され、バケット ACL はバケットへのアクセスを管理するために使用されます。バケットポリシーはバケット全体に対して 1 つですが、オブジェクト ACL は各オブジェクトに対して指定されます。オブジェクトごとに個別にアクセスを制御する必要がある通常ではない状況を除き、ACL は無効にしておくことをお勧めします。ACL の使用方法の詳細については、オブジェクトの所有権の制御とバケットの ACL の無効化。 を参照してください。

警告

Amazon S3 の最新のユースケースの大部分では ACL を使用する必要がなくなっています。

以下に、バケット ACL の例を示します。この ACL アクセス権限は、フルコントロールのアクセス許可を持つバケット所有者を示します。

<?xml version="1.0" encoding="UTF-8"?> <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>Owner-Canonical-User-ID</ID> <DisplayName>owner-display-name</DisplayName> </Owner> <AccessControlList> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Canonical User"> <ID>Owner-Canonical-User-ID</ID> <DisplayName>display-name</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> </AccessControlList> </AccessControlPolicy>

オブジェクトへのアクセスを管理するには、オブジェクトの所有者である必要があります。オブジェクト所有権のバケットレベルの設定を使用すると、バケットにアップロードされたオブジェクトの所有権を制御できます。また、オブジェクト所有権を使用して、ACL を有効にします。デフォルトでは、オブジェクト所有権は [バケット所有者の強制] に設定され、すべての ACL は無効になっています。ACL が無効になっている場合、バケット所有者はバケット内のすべてのオブジェクトを所有し、データへのアクセスの管理のみを行います。アクセスを管理するために、バケット所有者は ACL を除くポリシーまたは別のアクセス管理ツールを使用します。詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。

オブジェクト所有権には、バケットにアップロードされるオブジェクトの所有権を制御し、ACL を無効化または有効化するために使用できる 3 つの設定があります。

ACL を無効化する
  • バケット所有者強制 (デフォルト) – ACL は無効になり、バケット所有者はバケット内のすべてのオブジェクトを自動的に所有し、完全に制御します。ACL は、S3 バケット内のデータに対するアクセス許可に対して影響を与えません。このバケットはアクセスコントロールを定義するためだけにポリシーを使用します。

ACL を有効化する
  • 希望するバケット所有者 — バケット所有者は、他のアカウントが bucket-owner-full-control 既定 ACL でバケットに書き込む新しいオブジェクトを所有し、完全にコントロールできます。

  • オブジェクトライター — オブジェクトをアップロードする AWS アカウント は、そのオブジェクトを所有し、そのオブジェクトを完全にコントロールし、ACL を介して他のユーザーにそのオブジェクトへのアクセス権を付与できます。

その他のベストプラクティス

転送中および保管時のデータを保護するために、次のバケット設定とツールを使用することを検討してください。どちらも、データの完全性とアクセシビリティを維持するために重要です。

  • パブリックアクセスをブロック — デフォルトのバケットレベルの設定の [パブリックアクセスをブロック] をオフにしないでください。この設定は、デフォルトでデータへのパブリックアクセスをブロックします。ブロックパブリックアクセスの詳細については、Amazon S3 ストレージへのパブリックアクセスのブロック を参照してください。

  • S3 バージョニング — データ整合性のために、S3 バージョニングバケット設定を実装できます。この設定では、オブジェクトを上書きするのではなく、更新時にオブジェクトに複数のバージョンを持たせます。S3 バージョニングを使用すると、必要に応じて以前のバージョンを保存、取得、復元できます。S3 バージョニングの詳細については、「S3 バージョニングによる複数のバージョンのオブジェクトの保持」を参照してください。

  • S3 Object Lock — S3 Object Lock は、データの整合性を実現するために実装できるもう 1 つの設定です。この機能により、オブジェクトを不変的に保存するための Write-Once-Read-Many (WORM) モデルを実装できます。Object Lock の詳細については、「S3 Object Lock を使用したオブジェクトのロック」を参照してください。

  • オブジェクト暗号化 — Amazon S3 には、転送中および保管時のデータを保護するために使用できる、複数のオブジェクト暗号化オプションがあります。サーバー側の暗号化では、オブジェクトをデータセンター内のディスクに保存する前に暗号化し、オブジェクトをダウンロードするときに復号します。リクエストが認証され、お客様がアクセス許可を持っていれば、オブジェクトが暗号化されているかどうかに関係なく同じ方法でアクセスできます。詳細については、「サーバー側の暗号化によるデータの保護」を参照してください。S3 は、新しくアップロードされたオブジェクトをデフォルトで暗号化します。詳細については、「Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定」を参照してください。クライアント側の暗号化では、Amazon S3 に送信する前にデータを暗号化します。詳細については、「クライアント側の暗号化を使用したデータの保護」を参照してください。

  • 署名方法 — 署名バージョン 4 は、HTTP で送信される AWS リクエストに認証情報を追加するプロセスです。セキュリティ対策として、AWS へのほとんどのリクエストは、アクセスキーを使用して署名する必要があります。アクセスキーは、アクセスキー ID とシークレットアクセスキーで構成されます。これらの 2 つのキーは、一般的にセキュリティ認証情報と呼ばれます。詳細については、「リクエストの認証 (AWS 署名バージョン 4)」および「署名バージョン 4 の署名プロセス」を参照してください。

アクション

S3 のアクセス許可および条件キーの完全なリストについては、「サービス認可リファレンス」の「Actions, resources, and condition keys for Amazon S3」を参照してください。

S3 リソースタイプ別の S3 API オペレーションへのアクセス許可の詳細については、「Amazon S3 API オペレーションに必要なアクセス許可」を参照してください。

アクション

Amazon S3 の AWS Identity and Access Management (IAM) アクションは、S3 バケットまたはオブジェクトで実行できるアクションです。これらのアクションをアイデンティティに付与して、S3 リソースに対してアクションを実行できるようにします。S3 アクションの例は、バケット内のオブジェクトを読み取る s3:GetObject と、バケットにオブジェクトを書き込む s3:PutObject です。

条件キー

アクション以外に、条件が満たされた場合のみのアクセスを許可するように IAM 条件キーが制限されます。条件キーはオプションです。

注記

バケットポリシーなどのリソースベースのアクセスポリシー、またはアイデンティティベースのポリシーでは、以下を指定できます。

  • ポリシーステートメントの Action 要素内のアクションまたはアクションの配列。

  • ポリシーステートメントの Effect 要素で、Allow を指定してリストされたアクションを付与するか、Deny を指定してリストされたアクションをブロックできます。最小特権の使用をさらに維持するために、アクセスポリシーの Effect 要素の Deny のステートメントはできるだけ広義に、Allow ステートメントはできるだけ狭義にする必要があります。ポリシー条件ステートメントに含まれるアイデンティティに対して、オプトインに関するベストプラクティスを実装するための別の効果的な手段として、「s3:*」アクションとペアになった Deny 効果があります。

  • ポリシーステートメントの Condition 要素の条件キー。

アクセス管理のユースケース

Amazon S3 では、リソース所有者にアクセス権を付与するためのさまざまなツールを提供します。使用する S3 アクセス管理ツールは、共有する S3 リソース、アクセスを許可するアイデンティティ、許可または拒否するアクションによって異なります。S3 アクセス管理ツールの 1 つまたは組み合わせを使用して、S3 リソースへのアクセスを管理できます。

ほとんどの場合、アクセスポリシーを使用すると、アクセス許可を管理できます。アクセスポリシーは、バケットなどのリソース、または別の Amazon S3 リソース (S3 リソース) にアタッチされたリソースベースのポリシーに指定できます。アクセスポリシーは、アカウントの AWS Identity and Access Management (IAM) ユーザー、グループ、ロールにアタッチされたアイデンティティベースのポリシーに指定することもできます。バケットポリシーがユースケースにより適している場合もあります。詳細については、「Amazon S3 のバケットポリシー」を参照してください。または、 AWS Identity and Access Management (IAM) を使用して、AWS アカウント 内に IAM ユーザー、グループ、ロールを作成し、アイデンティティベースのポリシーを介してバケットとオブジェクトへのアクセスを管理できます。詳細については、「Amazon S3 のアイデンティティベースのポリシー」を参照してください。

これらのアクセス管理オプションをナビゲートしやすくするために、Amazon S3 カスタマーの一般的なユースケースと各 S3 アクセス管理ツールの推奨事項を以下に示します。

すべてのアクセス管理ツールで、この基本的なユースケースを満たすことができます。このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • バケットポリシー – 1 つのバケットまたは少数のバケットへのアクセスを許可する場合、またはバケットのアクセス許可がバケット間で類似している場合は、バケットポリシーを使用します。バケットポリシーでは、バケットごとに 1 つのポリシーを管理します。詳細については、「Amazon S3 のバケットポリシー」を参照してください。

  • アイデンティティベースのポリシー – バケットごとにアクセス許可が異なるバケットが多数あり、管理するユーザーロールはわずかの場合は、ユーザー、グループ、またはロールに IAM ポリシーを使用できます。IAM ポリシーは、他の AWS リソースや Amazon S3 リソースへのユーザーアクセスを管理する場合にも適しています。詳細については、「例 1: バケット所有者がユーザーにバケットのアクセス許可を付与する」を参照してください。

  • S3 Access Grants – S3 Access Grants を使用すると、S3 バケット、プレフィックス、またはオブジェクトへのアクセスを許可できます。S3 Access Grants では、さまざまなオブジェクトレベルのアクセス許可を大規模に指定できますが、バケットポリシーのサイズは 20 KB に制限されています。詳細については、「S3 Access Grants の開始方法」を参照してください。

  • Access Points - バケットにアタッチされる名前付きのネットワークエンドポイントである Access Points を使用できます。バケットには最大 10,000 個のアクセスポイントをアタッチできます。各アクセスポイントでは、個別のアクセス許可やネットワークコントロールを適用することで、S3 オブジェクトへのアクセスをきめ細かく制御できます。詳細については、「アクセスポイントを使用した共有データセットへのアクセスの管理」を参照してください。

別の AWS アカウントにアクセス許可を付与するには、バケットポリシーまたは次のいずれかの推奨アクセス管理ツールを使用する必要があります。このユースケースでは、アイデンティティベースのアクセスポリシーを使用できません。クロスアカウントアクセスの付与に関する詳細は、「Amazon S3 バケット内のオブジェクトへのクロスアカウントアクセスを提供するには、どうしたらいいですか?」を参照してください。

このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • バケットポリシー - バケットポリシーでは、バケットごとに 1 つのポリシーを管理します。詳細については、「Amazon S3 のバケットポリシー」を参照してください。

  • S3 Access Grants – S3 Access Grants を使用すると、S3 バケット、プレフィックス、またはオブジェクトへのクロスアカウントアクセスを許可できます。S3 Access Grants を使用すると、さまざまなオブジェクトレベルのアクセス許可を大規模に指定できますが、バケットポリシーのサイズは 20 KB に制限されています。詳細については、「S3 Access Grants の開始方法」を参照してください。

  • Access Points - バケットにアタッチされる名前付きのネットワークエンドポイントである Access Points を使用できます。バケットには最大 10,000 個のアクセスポイントをアタッチできます。各アクセスポイントでは、個別のアクセス許可やネットワークコントロールを適用することで、S3 オブジェクトへのアクセスをきめ細かく制御できます。詳細については、「アクセスポイントを使用した共有データセットへのアクセスの管理」を参照してください。

バケットポリシーでは、例えば、特定のキー名のプレフィックスを共有するバケット内のオブジェクト、または特定のタグを持つオブジェクトへのアクセスを許可できます。例えば、キー名プレフィックス logs/ で始まるオブジェクトの読み取り権限を付与できます。ただし、アクセス許可がオブジェクトごとに異なる場合、特にバケットポリシーのサイズが 20 KB に制限されているため、バケットポリシーを使用して個々のオブジェクトへのアクセス許可を付与することは実用的でない可能性があります。

このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • S3 Access Grants – S3 Access Grants を使用すると、オブジェクトレベルまたはプレフィックスレベルのアクセス許可を管理できます。バケットポリシーとは異なり、S3 Access Grants を使用すると、さまざまなオブジェクトレベルのアクセス許可を大規模に指定できます。バケットポリシーのサイズは 20 KB に制限されています。詳細については、「S3 Access Grants の開始方法」を参照してください。

  • Access Points – アクセスポイントを使用すると、オブジェクトレベルまたはプレフィックスレベルのアクセス許可を管理できます。Access Points は名前付きのネットワークエンドポイントで、バケットにアタッチされます。バケットには最大 10,000 個のアクセスポイントをアタッチできます。各アクセスポイントでは、個別のアクセス許可やネットワークコントロールを適用することで、S3 オブジェクトへのアクセスをきめ細かく制御できます。詳細については、「アクセスポイントを使用した共有データセットへのアクセスの管理」を参照してください。

  • ACL – 特に ACL はオブジェクトごと負荷できる許可数が 100 個に制限されているため、アクセスコントロールリスト (ACL) の使用はお勧めしません。ただし、ACL を有効にした場合、バケット設定で [オブジェクト所有者][希望するバケット所有者][ACL 有効] に設定します。この設定では、新しいオブジェクトが bucket-owner-full-control 既定 ACL はオブジェクトライターではなく、バケット所有者によって自動的に所有されます。次に、XML 形式のアクセスポリシーであるオブジェクト ACL を使用して、他のユーザーにオブジェクトへのアクセスを許可できます。詳細については、「アクセスコントロールリスト (ACL) の概要」を参照してください。

このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • バケットポリシー - バケットポリシーでは、バケットごとに 1 つのポリシーを管理します。詳細については、「Amazon S3 のバケットポリシー」を参照してください。

  • Access Points – Access Points は名前付きのネットワークエンドポイントで、バケットにアタッチされます。バケットには最大 10,000 個のアクセスポイントをアタッチできます。各アクセスポイントでは、個別のアクセス許可やネットワークコントロールを適用することで、S3 オブジェクトへのアクセスをきめ細かく制御できます。詳細については、「アクセスポイントを使用した共有データセットへのアクセスの管理」を参照してください。

このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • Access Points – Access Points は名前付きのネットワークエンドポイントで、バケットにアタッチされます。バケットには最大 10,000 個のアクセスポイントをアタッチできます。各アクセスポイントでは、個別のアクセス許可やネットワークコントロールを適用することで、S3 オブジェクトへのアクセスをきめ細かく制御できます。各アクセスポイントは、基になるバケットにアタッチされたバケットポリシーと連動して機能するカスタマイズされたアクセスポイントポリシーを適用します。詳細については、「アクセスポイントを使用した共有データセットへのアクセスの管理」を参照してください。

Amazon S3 の仮想プライベートクラウド (VPC) エンドポイントは、S3 への接続のみを許可する VPC 内の論理エンティティです。このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • VPC 設定のバケット – バケットポリシーを使用して、バケットへのアクセスを許可されているユーザーと、バケットがアクセスできる VPC エンドポイントを制御できます。詳細については、「バケットポリシーを使用した VPC エンドポイントからのアクセスコントロール」を参照してください。

  • アクセスポイント – アクセスポイントを設定する場合、アクセスポイントポリシーを使用できます。仮想プライベートクラウド (VPC) からのリクエストのみを受け付けるようにアクセスポイントを設定することで、プライベートネットワークへの Amazon S3 データアクセスを制限できます。また、アクセスポイントごとにカスタムのブロックパブリックアクセスを設定することもできます。詳細については、「アクセスポイントを使用した共有データセットへのアクセスの管理」を参照してください。

S3 を使用すると、静的ウェブサイトをホストし、S3 バケットからホストされているウェブサイトのコンテンツを誰でも閲覧できるようになります。

このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • Amazon CloudFront – このソリューションでは、バケットのコンテンツへのすべてのパブリックアクセスを継続的にブロックしながら、Amazon S3 静的ウェブサイトをパブリックにホストできます。4 つすべての S3 の [パブリックアクセスをブロック] 設定を有効にしたまま、S3 静的ウェブサイトをホストする場合は、Amazon CloudFront のオリジンアクセスコントロール (OAC) を使用できます。Amazon CloudFront は、セキュアな静的ウェブサイトをセットアップするために必要な機能を提供します。また、このソリューションを使用しない Amazon S3 静的ウェブサイトは、HTTP エンドポイントのみをサポートします。CloudFront は、耐久性に優れた Amazon S3 のあるストレージを使用し、HTTPS などの追加のセキュリティヘッダーを提供します。HTTPS では、通常の HTTP リクエストを暗号化し、一般的なサイバー攻撃から保護することで、セキュリティが強化されます。

    詳細については、「Amazon CloudFront デベロッパーガイド」の「安全な静的ウェブサイトの使用開始」を参照してください。

  • Amazon S3 バケットをパブリックにアクセス可能にする – パブリックにアクセス可能な静的ウェブサイトとして使用できるようにバケットを設定できます。

    警告

    この方法はお勧めしていません。代わりに、Amazon CloudFront の一部として Amazon S3 静的ウェブサイトを使用することをお勧めします。詳細については、前のオプションを参照するか、「安全な静的ウェブサイトの使用開始」を参照してください。

    Amazon CloudFront を使用せずに Amazon S3 静的ウェブサイトを作成するには、まずすべてのパブリックアクセスブロック設定をオフにする必要があります。静的ウェブサイトのバケットポリシーを記述するときは、ListObject または PutObject アクセス許可ではなく、s3:GetObject アクションのみを指定してください。これにより、ユーザーがバケット内のすべてのオブジェクトを表示したり、独自のコンテンツを追加したりできなくなります。詳細については、「ウェブサイトアクセスのアクセス許可の設定」を参照してください。

新しい Amazon S3 バケットを作成する場合、パブリックアクセスブロック設定はデフォルトで有効になっています。ブロックパブリックアクセスの詳細については、Amazon S3 ストレージへのパブリックアクセスのブロック を参照してください。

バケットへのすべてのパブリックアクセスを許可することはお勧めしません。ただし、特定のユースケースで設定する必要がある場合は、このユースケースで次のアクセス管理ツールを使用することをお勧めします。

  • ブロックパブリックアクセス設定を無効にする – バケット所有者は、バケットへの認証されていないリクエストを許可できます。例えば、認証されていない Put Object リクエストは、バケットにパブリックバケットポリシーが適用されている場合や、バケットの ACL でパブリックアクセス許可が付与されている場合は許可されます。認証されていないリクエストはすべて、他の任意の AWS ユーザー、または認証されていない匿名ユーザーによって行われます。このユーザーは、特定の正規ユーザー ID 65a011a29cdf8ec533ec3d1ccaae921c によって、ACL で表されます。オブジェクトが WRITE または FULL_CONTROL にアップロードされた場合、特にすべてのユーザーグループまたは匿名ユーザーへのアクセスが許可されます。パブリックバケットポリシーとパブリックアクセスコントロールリスト (ACL) の詳細については、「パブリック」の意味 を参照してください。

バケットポリシーとアイデンティティベースのポリシーには、どちらも 20 KB のサイズ制限があります。アクセス許可の要件が複雑な場合、このサイズ制限を超える可能性があります。

このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • Access Points — ユースケースで機能する場合、アクセスポイントを使用します。アクセスポイントでは、各バケットには複数の名前付きネットワークエンドポイントがあり、それぞれに基盤となるバケットポリシーで動作する独自のアクセスポイントポリシーがあります。ただし、アクセスポイントはバケットではなくオブジェクトに対してのみ動作し、クロスリージョンレプリケーションはサポートされていません。詳細については、「アクセスポイントを使用した共有データセットへのアクセスの管理」を参照してください。

  • S3 Access Grants – S3 Access Grants を使用します。S3 Access Grants は、バケット、プレフィックス、またはオブジェクトへのアクセス権限を付与する非常に多数の許可をサポートしています。詳細については、「S3 Access Grants の開始方法」を参照してください。

AWS Identity and Access Management (IAM) を介してユーザー、グループ、ロールを管理する代わりに、社内ディレクトリを AWS IAM Identity Center に追加できます。詳細については、「IAM Identity Center とは」を参照してください。

AWS IAM Identity Center に社内ディレクトリを追加したら、以下のアクセス管理ツールを使用して、社内ディレクトリアイデンティティに S3 リソースへのアクセス権を付与することをお勧めします。

  • S3 Access Grants – S3 Access Grants を使用します。S3 Access Grants は、社内ディレクトリ内のユーザーまたはロールへのアクセスの付与をサポートしています。詳細については、「S3 Access Grants の開始方法」を参照してください。

このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • バケット ACL – バケット ACL の唯一の推奨されるユースケースは、 Amazon CloudFront awslogsdelivery アカウントなどの特定の AWS のサービスに許可を付与することです。ディストリビューションを作成または更新して、CloudFront ロギングを有効にすると、CloudFront はバケット ACL を更新して、バケットにログを書き込むための awslogsdelivery 許可を FULL_CONTROL アカウントに付与します。詳細については、「Amazon CloudFront デベロッパーガイド」の「標準ログ記録の設定とログファイルへのアクセスに必要なアクセス許可」を参照してください。ログを保存するバケットが S3 オブジェクト所有権のバケット所有者の強制設定を使用して ACL を無効にすると、CloudFront はバケットにログを書き込むことができません。詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。

バケットポリシー、アクセスポイント、または S3 Access Grants を使用して、バケットにオブジェクトをアップロードするためのアクセス権を他のアカウントに付与できます。バケットへのクロスアカウントアクセスが許可されている場合、バケットにアップロードされたオブジェクトに対して完全なコントロールを維持していることを確認できます。

このユースケースでは、以下のアクセス管理ツールをお勧めします。

  • オブジェクト所有者 – バケットレベルの設定 [オブジェクト所有者] をデフォルトの [バケット所有者の強制] 設定のままにします。

アクセス管理のトラブルシューティング

以下のリソースは、S3 アクセス管理に関する問題のトラブルシューティングに役立ちます。

アクセス拒否 (403 Forbidden) エラーのトラブルシューティング

アクセス拒否の問題が発生した場合は、アカウントレベルとバケットレベルの設定を確認してください。また、アクセス権利を付与するために使用するアクセス管理機能をチェックして、ポリシー、設定、または構成が正しいことを確認します。Amazon S3 のアクセス拒否 (403 禁止) エラーの一般的な原因の詳細については、「Amazon S3 でのアクセス拒否 (403 Forbidden) エラーのトラブルシューティング」を参照してください。

IAM Access Analyzer for S3

どのリソースも公開しない場合、またはリソースへのパブリックアクセスを制限する場合は、IAM Access Analyzer for S3 を使用します。Amazon S3 コンソールで、IAM Access Analyzer for S3 を使用して、パブリックアクセスまたは共有アクセスを許可するバケットアクセスコントロールリスト (ACL)、バケットポリシー、アクセスポイントポリシーを持つすべてのバケットを確認します。IAM Access Analyzer for S3 は、インターネットの任意のユーザーや他の AWS アカウント (組織外の AWS アカウント を含む) にアクセスを許可するように設定されているバケットに関して警告します。パブリックバケットまたは共有バケットごとに、パブリックアクセスや共有アクセスのソースとレベルを報告する結果が送信されます。

IAM Access Analyzer for S3 では、バケットへのすべてのパブリックアクセスを 1 つのアクションでブロックできます。特定のユースケースをサポートするためにパブリックアクセスが必要な場合を除き、バケットへのすべてのパブリックアクセスをブロックすることをお勧めします。すべてのパブリックアクセスをブロックする前に、アプリケーションがパブリックアクセスなしで正常に動作することを確認してください。詳細については、「Amazon S3 ストレージへのパブリックアクセスのブロック」を参照してください。

また、バケットレベルのアクセス許可の設定を参照して、詳細なアクセスレベルを設定することもできます。パブリックアクセスまたは共有アクセスを必要とする特定の検証済みユースケースについては、バケットの調査結果をアーカイブすることで、バケットをパブリックまたは共有とすることを確定して記録できます。これらのバケット設定はいつでも再確認および変更できます。結果は、監査目的で CSV レポートとしてダウンロードすることもできます。

IAM Access Analyzer for S3 は、Amazon S3 コンソールで追加料金なしで使用できます。IAM Access Analyzer for S3 は、AWS Identity and Access Management (IAM) IAM Access Analyzer を利用しています。Amazon S3 コンソールで IAM Access Analyzer for S3 を使用するには、IAM コンソールにアクセスして、IAM Access Analyzer で個別のリージョンごとにアカウントレベルのアナライザーを作成する必要があります。

IAM Access Analyzer for S3 の詳細については、IAM Access Analyzer for S3 を使用したバケットアクセスの確認 を参照してください。

ログ記録とモニタリング

モニタリングは、アクセス障害を簡単にデバッグできるように、Amazon S3 ソリューションの信頼性、可用性、パフォーマンスを維持するうえで重要な部分です。ログ記録により、ユーザーが受け取ったエラーや、いつどのようなリクエストが行われたかを把握できます。AWS には、Amazon S3 リソースをモニタリングするための以下のようなツールがいくつかあります。

  • AWS CloudTrail

  • Amazon S3 アクセスログ

  • AWS Trusted Advisor

  • Amazon CloudWatch

詳細については、「Amazon S3 でのログ記録とモニタリング」を参照してください。