

# Avaliação de políticas para solicitações em uma única conta
<a name="reference_policies_evaluation-logic_policy-eval-basics"></a>

## Avaliação de política para um perfil do IAM
<a name="policy-eval-basics-single-account-role"></a>

O fluxograma a seguir fornece detalhes sobre como uma decisão de avaliação de política é tomada para um perfil do IAM em uma única conta.

![Fluxograma de avaliação para um perfil do IAM em uma única conta](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/PolicyEvaluationSingleAccountRole.png)


## Avaliação de política para um usuário do IAM
<a name="policy-eval-basics-single-account-user"></a>

O fluxograma a seguir fornece detalhes de como uma decisão de avaliação de política é tomada para um usuário do IAM em uma única conta.

![Fluxograma de avaliação para um usuário do IAM em uma única conta](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/PolicyevaluationSingleAccountUser.png)


## Exemplo de avaliação das políticas baseadas em identidade e políticas baseadas em recurso
<a name="reference_policies_evaluation-logic_policies_evaluation_example"></a>

Os tipos de políticas mais comuns são políticas baseadas em identidade e políticas baseadas em recurso. Quando o acesso a um recurso é solicitado, a AWS avalia todas as permissões concedidas pelas políticas para **pelo menos uma permissão** na mesma conta. Uma negação explícita em qualquer uma das políticas substitui a permissão.

**Importante**  
Se a política baseada em identidade ou a política baseada em recursos na mesma conta permitir a solicitação, mas a outra política não, a solicitação ainda será permitida.

Suponha que Carlos tem o nome de usuário `carlossalazar` e tente salvar um arquivo no bucket `amzn-s3-demo-bucket-carlossalazar-logs` do Amazon S3. 

Suponha também que a política a seguir esteja anexada ao usuário do IAM `carlossalazar`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowS3Self",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::*log*"
        }
    ]
}
```

------

A instrução `AllowS3ListRead` nessa política permite que Carlos visualize uma lista de todos os buckets da conta. A instrução `AllowS3Self` permite a Carlos acesso total ao bucket com o mesmo nome que seu nome de usuário. A instrução `DenyS3Logs` nega a Carlos acesso a qualquer bucket do S3 com `log` em seu nome. 

Além disso, a seguinte política baseada em recurso (chamada de política de bucket) está anexada ao bucket `amzn-s3-demo-bucket-carlossalazar`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{123456789012}}:user/carlossalazar"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        }
    ]
}
```

------

Essa política especifica que apenas o usuário `carlossalazar` pode acessar o bucket `amzn-s3-demo-bucket-carlossalazar`.

Quando Carlos faz sua solicitação para salvar um arquivo no bucket `amzn-s3-demo-bucket-carlossalazar-logs`, a AWS determina quais políticas são aplicáveis à solicitação. Nesse caso, somente a política baseada em identidade e a política baseada em recurso são aplicáveis. Essas são duas políticas de permissões. Como nenhum limite de permissões se aplica, a lógica de avaliação é reduzida à lógica a seguir.

![Fluxograma de avaliação](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/EffectivePermissionsShort.png)


A AWS primeiro verifica se há uma instrução `Deny` aplicável ao contexto da solicitação. Ele encontra uma, pois a política baseada em identidade nega explicitamente a Carlos o acesso a qualquer bucket do S3 usado para log. O acesso é negado a Carlos. 

Suponha que ele perceba seu erro e tente salvar o arquivo no bucket `amzn-s3-demo-bucket-carlossalazar`. A AWS verifica se há uma instrução `Deny` e não encontra uma. Em seguida, ela verifica a políticas de permissões. Tanto a política baseada em identidade quanto a política baseada em recursos permitem a solicitação. Portanto, a AWS permite a solicitação. Se qualquer uma delas tivesse negado explicitamente a instrução, a solicitação teria sido negada. Se um dos tipos de política permitir a solicitação e o outro não, a solicitação ainda será permitida.