S3 Files での IAM の機能
このページでは、AWS Identity and Access Management (IAM) が S3 Files と連携する方法と、IAM ポリシーを使用してファイルシステムへのアクセスを制御する方法について説明します。
S3 Files は、2 つの異なるタイプのアクセスコントロールに IAM を使用します。
API アクセス - ファイルシステム、マウントターゲット、アクセスポイントなどの S3 Files リソースを作成、管理、削除できるユーザーを制御します。このアクセスは、IAM ユーザー、グループ、またはロールにアタッチされたアイデンティティベースのポリシーを使用して制御します。
クライアントアクセス - ルートユーザーとしてのファイルの読み取り、書き込み、アクセスなど、接続後にクライアント (マウントされたコンピューティングリソース) がファイルシステムで実行できる操作を制御します。このアクセスは、リソースベースのポリシー、アイデンティティベースのポリシー、アクセスポイント、POSIX アクセス許可を組み合わせて制御します。
IAM を使用すると、読み取り専用アクセス、書き込みアクセス、ルートアクセスなどの特定のアクションをファイルシステムに実行することをクライアントに許可できます。IAM アイデンティティポリシーまたはファイルシステムリソースポリシーのいずれかで、アクションに 「許可」権限を付与すると、そのアクションへのアクセスが許可されます。ID ポリシーとリソースポリシーの両方で権限を付与する必要はありません。
リンクされた S3 バケットの S3 バケットポリシーは、コンピューティングリソースとファイルシステムから S3 バケットへのアクセスも管理します。また、ソースバケットのバケットポリシーがコンピューティングリソースまたはファイルシステムからのアクセスを拒否しないようにする必要があります。詳細については、「Amazon S3 のバケットポリシー」を参照してください。
アイデンティティベースのポリシー
ID ベースのポリシーは、IAM ユーザー、グループ、ロールにアタッチする JSON ポリシーです。これらのアクセス許可を提供するには、カスタムポリシーを記述するか、AWS マネージドポリシーをアタッチします。API アクセスとクライアントアクセスの両方で使用可能なマネージドポリシーの詳細については、「Amazon S3 Files の AWS マネージドポリシー」を参照してください。
S3 Files は、クライアントがソース S3 バケットから直接ファイルデータを読み取れるようにすることで、読み取りパフォーマンスを最適化します。コンピューティングリソースに S3 ファイルシステムをマウントするときは、指定された S3 バケットからオブジェクトを読み取るアクセス許可を付与するインラインポリシーをコンピューティングリソースの IAM ロールに追加する必要があります。マウントヘルパーは、これらのアクセス許可を使用して S3 データを読み取ります。このポリシーの詳細については、「ファイルシステムを AWS コンピューティングリソースにアタッチするための IAM ロール」を参照してください。
リソースベースのポリシー
ファイルシステムポリシーは、クライアントのアクセスを制御するためにファイルシステムに直接適用する、IAM リソースベースのポリシーです。ファイルシステムポリシーを使用して、マウント、書き込み、ルートアクセスなどのオペレーションを実行するアクセス許可をクライアントに付与または拒否できます。
ファイルシステムには、空の (デフォルト) ファイルシステムポリシーまたは 1 つの明示的なポリシーがあります。S3 ファイルシステムポリシーには 20,000 文字の制限があります。ファイルシステムポリシーの作成および管理の詳細については、「ファイルシステムポリシーの作成」を参照してください。
クライアントの S3 Files アクション
ファイルシステムポリシーでは、次のアクションを指定して、クライアントアクセスを制御できます。
| [アクション] | 説明 |
|---|---|
s3files:ClientMount |
ファイルシステムへの読み取り専用アクセス許可を付与します。 |
s3files:ClientWrite |
ファイルシステムへの書き込みアクセス許可を付与します。 |
s3files:ClientRootAccess |
ファイルシステムへのアクセス時にルートユーザーの使用を許可します。 |
クライアントの S3 Files 条件キー
ファイルシステムポリシーの Condition 要素で次の条件キーを使用して、アクセスコントロールをさらに絞り込むことができます。
| 条件キー | 説明 | オペレーター |
|---|---|---|
s3files:AccessPointArn |
クライアントが接続している S3 Files アクセスポイントの ARN。 | String |
ファイルシステムポリシーの例
例: 読み取り専用アクセスの付与
次のファイルシステムポリシーでは、ClientMount (読み取り専用) アクセス許可のみを ReadOnly IAM ロールに付与します。111122223333 を自分の AWS アカウント ID に置き換えます。
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ReadOnly" }, "Action": [ "s3files:ClientMount" ] } ] }
例: S3 Files アクセスポイントにアクセスを許可する
次のファイルシステムポリシーは、条件要素を使用して、指定されたアクセスポイントを介してマウントするときに、特定のアクセスポイントにファイルシステムへのフルアクセスを付与します。アクセスポイント ARN とアカウント ID を独自の値に置き換えます。詳細については、「S3 ファイルシステムのアクセスポイントの作成」を参照してください。
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::555555555555:role/S3FilesAccessPointFullAccess" }, "Action": [ "s3files:Client*" ], "Condition": { "StringEquals": { "s3files:AccessPointArn": "arn:partition:s3files:region:account-id:file-system/fs-1234567890/access-point/fsap-0987654321" } } } ] }
POSIX のアクセス許可
IAM 認可が成功すると、S3 Files はファイルおよびディレクトリレベルで標準の POSIX (Unix スタイル) アクセス許可を適用します。POSIX アクセス許可は、各ファイルとディレクトリに関連付けられたユーザー ID (UID)、グループ ID (GID)、およびアクセス許可ビット (読み取り、書き込み、実行) に基づいてアクセスを制御します。アクセスポイントは、すべてのリクエストに特定の POSIX ユーザー ID を適用できるため、共有データセットのアクセス管理を簡素化できます。詳細については、「S3 ファイルシステムのアクセスポイントの作成」を参照してください。
セキュリティグループ
セキュリティグループは、コンピューティングリソースとファイルシステムのマウントターゲット間のトラフィックを制御するネットワークレベルのファイアウォールとして機能します。S3 Files を使い始めるためのセキュリティグループの設定方法の詳細については、「セキュリティグループ」を参照してください。