

# Amazon S3: permite que usuários federados acessem seus respectivos diretórios iniciais do Amazon S3 de forma programática e no console
<a name="reference_policies_examples_s3_federated-home-directory-console"></a>

Este exemplo mostra como é possível criar uma política baseada em identidade que permita que entidades principais federadas acessem seu próprio objeto de bucket do diretório inicial no S3. O diretório inicial é um bucket que inclui uma pasta `home` e pastas para entidades principais federadas individuais. Esta política define permissões para acesso programático e do console. Para usar esta política, substitua o *texto do espaço reservado em itálico* na política de exemplo por suas próprias informações. Em seguida, siga as instruções em [criar uma política](access_policies_create.md) ou [editar uma política](access_policies_manage-edit.md).

A variável `${aws:userid}` nessa política resulta em `role-id:specified-name`. A parte `role-id` do ID da entidade principal federada é um identificador exclusivo atribuído ao perfil do usuário federado durante a criação. Para obter mais informações, consulte [Identificadores exclusivos](reference_identifiers.md#identifiers-unique-ids). O `specified-name` é o parâmetro [RoleSessionName](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html#API_AssumeRoleWithWebIdentity_RequestParameters) passado para a solicitação `AssumeRoleWithWebIdentity` quando a entidade principal federada assumiu seu perfil.

Você pode visualizar o ID da função usando o comando da AWS CLI `aws iam get-role --role-name specified-name`. Por exemplo, imagine que você especifique o nome amigável `John`, e a CLI retorne o ID da função `AROAXXT2NJT7D3SIQN7Z6`. Nesse caso, o ID da entidade principal federada é `AROAXXT2NJT7D3SIQN7Z6:John`. Esta política permite que a entidade principal federada John acesse o bucket do Amazon S3 com o prefixo `AROAXXT2NJT7D3SIQN7Z6:John`.

------
#### [ 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}/*"
            ]
        }
    ]
}
```

------