アクセス管理
Amazon S3 には、さまざまなアクセス管理ツールが用意されています。以下は、これらの機能とツールのリストです。これらのアクセス管理ツールがすべて必要なわけではありませんが、Amazon S3 バケット、オブジェクト、および他の S3 リソース へのアクセスを付与するには、これらのツールを 1 つ以上使用する必要があります。これらのツールを適切に適用すると、データの整合性を維持し、目的のユーザーがリソースにアクセスできるようにするために役立ちます。
最も一般的に使用されるアクセス管理ツールは、アクセスポリシーです。アクセスポリシーは、バケットのバケットポリシーなど、AWS リソースにアタッチされたリソースベースのポリシーに指定できます。アクセスポリシーは、IAM ユーザー、グループ、ロールなどの AWS Identity and Access Management (IAM) アイデンティティにアタッチされたアイデンティティベースのポリシーに指定することもできます。アクセスポリシーでは、誰が何にアクセスできるかを記述します。アクセスポリシーを作成して、 AWS アカウントおよび IAM ユーザー、グループ、ロールにアクセス許可を付与し、リソースに対してオペレーションを実行します。例えば、他のアカウントがバケットにオブジェクトをアップロードできるように、別の AWS アカウントに PUT Object
アクセス許可を付与できます。
Amazon S3 で使用できるアクセス管理ツールを以下に示します。Amazon S3 アクセスコントロールに関するより包括的なガイドについては、「Amazon S3 でのアクセスコントロール」を参照してください。
バケットポリシー
Amazon S3 バケットポリシーは、特定のバケットにアタッチされた JSON 形式の AWS Identity and Access Management (IAM) リソースベースのポリシーです。バケットポリシーを使用すると、バケットおよびバケット内のオブジェクトに対するアクセス許可を、他の AWS アカウントまたは IAM アイデンティティに付与できます。S3 アクセス管理の多くのユースケースは、バケットポリシーを使用することで要件が満たされます。バケットポリシーを使用すると、承認されたアイデンティティのみがリソースにアクセスしてアクションを実行できるように、バケットアクセスをパーソナライズすることができます。詳細については、「Amazon S3 のバケットポリシー」を参照してください。
ID ベースのポリシー
アイデンティティベースのポリシーまたは IAM ユーザーポリシーは、AWS Identity and Access Management (IAM) ポリシーの一種です。アイデンティティベースのポリシーは、AWSアカウントの IAM ユーザー、グループ、またはロールにアタッチされる JSON 形式のポリシーです。アイデンティティベースのポリシーを使用すると、バケットまたはオブジェクトへのアクセス許可を IAM アイデンティティに付与できます。アカウント内に IAM ユーザー、グループ、およびロールを作成し、これらにアクセスポリシーをアタッチできます。次に、Amazon S3 リソースを含む AWS リソースへのアクセス許可を付与できます。詳細については、「Amazon S3 のアイデンティティベースのポリシー」を参照してください。
S3 Access Grants
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 は、アクセス許可の被付与者と付与されるアクセス許可を識別するリストです。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 は無効になっています。ACL が無効になっている場合、バケット所有者はバケット内のすべてのオブジェクトを所有し、データへのアクセスの管理のみを行います。アクセスを管理するために、バケット所有者は ACL を除くポリシーまたは別のアクセス管理ツールを使用します。詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。
Amazon S3 アクセスコントロールに関するより包括的なガイドとその他のベストプラクティスについては、「Amazon S3 でのアクセスコントロール」を参照してください。