翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3 バケットのセッションポリシーの作成
セッションポリシーは、Amazon S3 バケットの特定の部分にユーザーを制限する AWS Identity and Access Management (IAM) ポリシーです。 Amazon S3 そのために、リアルタイムでアクセスが評価されます。
注記
セッションポリシーは Amazon S3 でのみ使用されます。Amazon EFS では、POSIX ファイルパーミッションを使用してアクセスを制限します。
Amazon S3 バケットの特定の部分への同じアクセス権をユーザーのグループに付与する必要がある場合は、セッションポリシーを使用できます。たとえば、あるユーザーのグループが home
ディレクトリのみにアクセスする必要があるとします。そのユーザーのグループは同じ IAM ロールを共有します。
注記
セッションポリシーの最大長は 2048 文字です。詳細については、API リファレンスで CreateUser
アクションの「ポリシーリクエストパラメータ」を参照してください。
セッションポリシーを作成するには、以下の IAM ポリシーのポリシー変数を使用します。
-
${transfer:HomeBucket}
-
${transfer:HomeDirectory}
-
${transfer:HomeFolder}
-
${transfer:UserName}
重要
管理ポリシーで先に表示されている変数を先に表示することはできません。IAM ロールの定義のリストでこれらをポリシー変数として使用することもできません。このような変数は、IAM ポリシーで作成してから、ユーザーの設定時に直接指定します。また、セッションポリシーの ${aws:Username}
変数を使用することはできません。この変数は IAM ユーザー名を指し、 AWS Transfer Familyが要求するユーザー名ではありません。
次のコードは、セッションポリシーの例を示しています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::${transfer:HomeBucket}" ], "Condition": { "StringLike": { "s3:prefix": [ "${transfer:HomeFolder}/*", "${transfer:HomeFolder}" ] } } }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*" } ] }
注記
前述のポリシーの例では、ユーザーのホームディレクトリがディレクトリであることを示すために、末尾のスラッシュを含むように設定されていることを前提としています。一方、ユーザーの HomeDirectory
の末尾にスラッシュを付けない場合、それをポリシーの一部として含める必要があります。
前のポリシー例では、transfer:HomeFolder
、transfer:HomeBucket
、およびtransfer:HomeDirectory
ポリシーパラメータの使用に注目してください。これらのパラメータは、HomeDirectory「」および「」で説明HomeDirectory
されているように、ユーザー用に設定された に設定されますAPI Gateway メソッドを実装する。これらのパラメータには、次のような定義があります。
transfer:HomeBucket
パラメータはHomeDirectory
の 1 つ目のコンポーネントに置き換わります。transfer:HomeFolder
パラメータはHomeDirectory
パラメータの残り部分に置き換わります。transfer:HomeDirectory
パラメータの先頭に付いていた (/
) が削除され、Resource
ステートメントで S3 Amazon リソースネーム (ARN) の一部としてこのパラメータを使用できるようになりました。
注記
論理ディレクトリを使用する場合(つまり、ユーザーの homeDirectoryType
が LOGICAL
である場合)、これらのポリシーパラメータ(HomeBucket
、HomeDirectory
、および HomeFolder
)はサポートされません。
たとえば、Transfer Family ユーザー用に設定された HomeDirectory
パラメータは /home/bob/amazon/stuff/
です。
transfer:HomeBucket
は/home
に設定されます。transfer:HomeFolder
は/bob/amazon/stuff/
に設定されます。transfer:HomeDirectory
はhome/bob/amazon/stuff/
になります。
1 つ目の "Sid"
は、/home/bob/amazon/stuff/
から始まるすべてのディレクトリの一覧表示をユーザーに許可します。
2 つ目の "Sid"
は、ユーザーの put
およびその同じパス /home/bob/amazon/stuff/
への get
アクセスを制限します。
前述のポリシーが使用されている場合、ユーザーがログインすると、ユーザーはホームディレクトリにあるオブジェクトにのみアクセスできます。接続時に、 はこれらの変数をユーザーに適した値 AWS Transfer Family に置き換えます。これによって、同じポリシードキュメントを複数のユーザーに簡単に適用できます。この方法により、IAM ロールのオーバーヘッドおよび Amazon S3 バケットへのユーザーのアクセスを管理するためのポリシー管理が軽減されます。
セッションポリシーを使用すると、業務要件に基づいて、ユーザーごとにアクセス権をカスタマイズすることもできます。詳細については、IAM ユーザーガイドの AssumeRole「、 AssumeRoleWithSAML、および のアクセス許可 AssumeRoleWithWebIdentity」を参照してください。
注記
AWS Transfer Family は、ポリシーの Amazon リソースネーム (ARN) の代わりにポリシー JSON を保存します。したがって、IAM コンソールでポリシーを変更する場合、 AWS Transfer Family コンソールに戻り、最新のポリシーコンテンツでユーザーを更新する必要があります。[ユーザー設定] セクションの[ポリシー情報] タブでユーザーを更新できます。
を使用している場合は AWS CLI、次のコマンドを使用してポリシーを更新できます。
aws transfer update-user --server-id
server
--user-nameuser
--policy \ "$(aws iam get-policy-version --policy-arnpolicy
--version-idversion
--output json)"