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