Amazon S3: フェデレーティッドユーザーが自分の S3 ホームディレクトリにプログラムおよびコンソールでアクセスすることを許可する
この例では、フェデレーティッドユーザーに S3 の自分のホームディレクトリバケットオブジェクトへのアクセスを許可する ID ベースのポリシーを作成する方法を示します。ホームディレクトリは、home
フォルダや個々のフェデレーティッドユーザーのフォルダを含むバケットです。このポリシーは、プログラムおよびコンソールアクセスのアクセス許可を定義します。このポリシーを使用するには、サンプルポリシーのイタリック体のプレースホルダーテキスト
を独自の情報に置き換えます。次に、ポリシーの作成またはポリシーの編集の手順に従います。
このポリシーの ${aws:userid}
変数は、role-id:specified-name
に解決されます。フェデレーティッドユーザー ID の role-id
の部分は、作成時にこのフェデレーティッドユーザーに割り当てられた一意の識別子です。詳細については、「一意の識別子」を参照してください。specified-name
は、フェデレーションユーザーがロールを引き受けたときに AssumeRoleWithWebIdentity
リクエストに渡される RoleSessionName パラメータです。
ロール ID を表示するには、AWS CLI コマンド aws iam get-role --role-name
を使用します。たとえば、フレンドリ名を specified-name
John
と指定すると、CLI はロール ID として AROAXXT2NJT7D3SIQN7Z6
を返します。この場合、フェデレーティッドユーザー ID は AROAXXT2NJT7D3SIQN7Z6:John
です。このポリシーは、フェデレーティッドユーザー John がプレフィックス AROAXXT2NJT7D3SIQN7Z6:John
を使用して Amazon S3 バケットにアクセスすることを許可します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ConsoleAccess", "Effect": "Allow", "Action": [ "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
", "Condition": { "StringLike": { "s3:prefix": [ "", "home/", "home/${aws:userid}/*" ] } } }, { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
/home/${aws:userid}", "arn:aws:s3:::amzn-s3-demo-bucket
/home/${aws:userid}/*" ] } ] }