Amazon S3: フェデレーティッドユーザーが自分の S3 ホームディレクトリにプログラムによりコンソールでアクセスすることを許可する - AWS Identity and Access Management

Amazon S3: フェデレーティッドユーザーが自分の S3 ホームディレクトリにプログラムによりコンソールでアクセスすることを許可する

この例では、次のような IAM ポリシーを作成する方法を示します。 は、フェデレーティッドユーザーに S3 の自分のホームディレクトリバケットオブジェクトへのアクセスを許可します。ホームディレクトリは、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": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::bucket-name", "Condition": { "StringLike": { "s3:prefix": [ "", "home/", "home/${aws:userid}/*" ] } } }, { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::bucket-name/home/${aws:userid}", "arn:aws:s3:::bucket-name/home/${aws:userid}/*" ] } ] }