Amazon S3: フェデレーションユーザーが Amazon S3 にある自分のホームディレクトリにプログラムを使用してコンソール内でアクセスできるようにします - AWS Identity and Access Management

Amazon S3: フェデレーションユーザーが Amazon 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 バケットにアクセスを許可します。

JSON
{ "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}/*" ] } ] }