

# A diferença entre negações explícitas e implícitas
<a name="reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay"></a>

Uma solicitação resultará em uma negação explícita aplicável se uma política aplicável incluir uma instrução `Deny`. Se as políticas aplicáveis a uma solicitação incluírem uma instrução `Allow` e uma instrução `Deny`, a instrução `Deny` superará a instrução `Allow`. A solicitação será negada explicitamente.

Uma negação implícita ocorre quando não há uma instrução `Deny` aplicável, mas também nenhuma instrução `Allow` aplicável. Como o acesso da entidade principal do IAM é negado por padrão, ela deve ter permissão explícita para executar uma ação. Caso contrário, o acesso será implicitamente negado.

Ao projetar sua estratégia de autorização, você deve criar políticas com instruções `Allow` para permitir que suas entidades principais façam solicitações com êxito. No entanto, você pode escolher qualquer combinação de negações implícitas e explícitas. 

Por exemplo, é possível criar a seguinte política que inclui ações permitidas, ações negadas implicitamente e ações negadas explicitamente. A declaração `AllowGetList` **permite** acesso do tipo somente leitura a ações do IAM que comecem com os prefixos `Get` e `List`. Todas as outras ações no IAM, como `iam:CreatePolicy`, são **negadas implicitamente**. A declaração `DenyReports` **nega explicitamente** o acesso a relatórios do IAM, negando acesso a ações que incluem o sufixo `Report`, como `iam:GetOrganizationsAccessReport`. Se alguém adicionar outra política a essa entidade principal para conceder acesso a relatórios do IAM, como `iam:GenerateCredentialReport`, solicitações relacionadas a relatórios ainda serão negadas por causa dessa negação explícita.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGetList",
            "Effect": "Allow",
            "Action": [
                "iam:Get*",
                "iam:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenyReports",
            "Effect": "Deny",
            "Action": "iam:*Report",
            "Resource": "*"
        }
    ]
}
```

------