Amazon S3:允许联合身份用户以编程方式和在控制台中访问其 S3 主目录
此示例说明了如何创建基于身份的策略以允许联合用户访问其位于 S3 中的主目录存储桶对象。主目录是一个包含 home
文件夹和个人联合用户文件夹的存储桶。此策略定义了程序访问和控制台访问的权限。要使用此策略,请将示例策略中的斜体占位符文本
替换为您自己的信息。然后,按照创建策略或编辑策略中的说明操作。
此策略中的 ${aws:userid}
变量解析为 role-id:specified-name
。联合身份用户 ID 的 role-id
部分是创建过程中分配给联合身份用户的唯一标识符。有关更多信息,请参阅 唯一标识符。specified-name
是当联合身份用户担任其角色时传递给 AssumeRoleWithWebIdentity
请求的 RoleSessionName 参数。
您可使用 AWS CLI 命令 aws iam get-role --role-name
查看此角色 ID。例如,假设您指定友好名称 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}/*" ] } ] }