

# Amazon S3：允许联合用户以编程方式和在控制台中访问其 Amazon S3 主目录
<a name="reference_policies_examples_s3_federated-home-directory-console"></a>

此示例说明了如何创建基于身份的策略以允许联合主体访问其位于 S3 中的主目录存储桶对象。主目录是一个包含 `home` 文件夹和个人联合主体文件夹的存储桶。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

此策略中的 `${aws:userid}` 变量解析为 `role-id:specified-name`。联合主体 ID 的 `role-id` 部分是创建过程中分配给联合主体角色的唯一标识符。有关更多信息，请参阅 [唯一标识符](reference_identifiers.md#identifiers-unique-ids)。`specified-name` 是当联合主体担任其角色时传递给 `AssumeRoleWithWebIdentity` 请求的 [RoleSessionName 参数](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html#API_AssumeRoleWithWebIdentity_RequestParameters)。

您可使用 AWS 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}/*"
            ]
        }
    ]
}
```

------