S3 Access Grants でのアクセス管理
最小特権の原則に従うには、アプリケーション、ペルソナ、グループ、または組織単位に基づいて Amazon S3 データへのきめ細かなアクセスを定義します。アクセスパターンの規模と複雑さに応じて、さまざまなアプローチを使用して Amazon S3 のデータへのきめ細いアクセスを実現できます。
Amazon S3 内の少数から中程度の数のデータセットへのアクセスを AWS Identity and Access Management (IAM) プリンシパルで管理する最も簡単な方法は、IAM アクセス許可ポリシー と S3 バケットポリシー を定義することです。この戦略は、必要なポリシーが S3 バケットポリシー (20 KB) と IAM ポリシー (5 KB) のポリシーサイズ制限内に収まり、アカウントごとに許可されている IAM プリンシパルの数内である限り有効です。
データセットの数やユースケースの数が増えるにつれて、より多くのポリシースペースが必要になる場合があります。ポリシーステートメントの容量を大幅に増やすには、S3 バケットの追加エンドポイントとして S3 アクセスポイントを使用する方法があります。これは、各アクセスポイントに独自のポリシーを設定できるためです。アカウントにつき AWS リージョン ごとに数千のアクセス ポイントを設定でき、アクセスポイントごとに最大 20 KB のサイズのポリシーを設定できるため、非常にきめ細かいアクセスコントロール パターンを定義できます。S3 Access Points を使用すると、使用可能なポリシースペースの量が増えますが、クライアントが適切なデータセットに適したアクセスポイントを検出するためのメカニズムが必要になります。
3 番目の方法は、IAM セッションブローカーパターンの実装です。このパターンでは、アクセス決定ロジックを実装し、アクセスセッションごとに短期の IAM セッション認証情報を動的に生成します。IAM セッションブローカーの方法の場合、任意の動的なアクセス許可パターンをサポートして、効果的にスケールできる一方、アクセスパターンロジックを構築する必要があります。
このようなアプローチを使用する代わりに、S3 Access Grants を使用して、Amazon S3 データへのアクセスを管理できます。S3 Access Grants は、Amazon S3 内のデータへのアクセス許可をプレフィックス、バケット、またはオブジェクトごとに定義するための簡略化されたモデルを提供します。さらに、S3 Access Grants を使用して IAM プリンシパルにアクセスを付与することも、社内ディレクトリのユーザーまたはグループに直接アクセスを付与することもできます。
Amazon S3 のデータへのアクセス許可は、通常、ユーザーとグループをデータセットにマップすることで定義します。S3 Access Grants を使用して、Amazon S3 バケットとオブジェクト内のユーザーとロールへの S3 プレフィックスごとに直接アクセスマッピングを定義できます。S3 Access Grants のシンプルなアクセススキームを使用すると、読み取り専用、書き込み専用、または読み取り/書き込みのアクセス権限を S3 プレフィックスごとに IAM プリンシパルに付与することも、社内ディレクトリのユーザーまたはグループに直接付与することもできます。このような S3 Access Grants 機能を使用すると、アプリケーションはアプリケーションの現在の認証済みユーザーに代わって Amazon S3 にデータをリクエストできます。
S3 Access Grants を AWS IAM Identity Center の信頼されたアイデンティティプロパゲーション機能と統合すると、アプリケーションは、認証済みの社内ディレクトリユーザーに代わって (S3 Access Grants を含む) AWS のサービス に直接リクエストすることができます。アプリケーションは最初にユーザーを IAM プリンシパルにマッピングする必要がなくなります。さらに、エンドユーザーのアイデンティティが Amazon S3 にまでプロパゲートされるため、どのユーザーがどの S3 オブジェクトにアクセスしたかの監査が簡素化されます。さまざまなユーザーと IAM セッション間の関係性を再構築する必要がなくなりました。S3 Access Grants と IAM アイデンティティセンターの信頼されたアイデンティティプロパゲーションを連携すると、Amazon S3 の各 AWS CloudTrail データイベントにデータアクセスがどのエンドユーザーの代わりなのかについての直接のリファレンスが含まれます。
S3 Access Grants の詳細については、後続のトピックを参照してください。