

# Elementos de política JSON do IAM: NotResource
<a name="reference_policies_elements_notresource"></a>

`NotResource` é um elemento de política avançado que corresponde explicitamente a cada recurso, exceto aqueles especificados. O uso de `NotResource` pode resultar em uma política mais curta ao listar somente alguns recursos que não devem corresponder, em vez de incluir uma longa lista de recursos para correspondência. Isso é especialmente útil para políticas aplicáveis em um único serviço da AWS. 

Por exemplo, imagine que você tenha um grupo chamado `HRPayroll`. Os membros de `HRPayroll` não devem ter permissão para acessar os recursos do Amazon S3, exceto a pasta `Payroll` no bucket `HRBucket`. A seguinte política nega explicitamente o acesso a todos os recursos do Amazon S3, exceto os recursos listados. Observe, no entanto, que essa política não concede ao usuário acesso a qualquer recurso.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "s3:*",
    "NotResource": [
      "arn:aws:s3:::HRBucket/Payroll",
      "arn:aws:s3:::HRBucket/Payroll/*"
    ]
  }
}
```

------

Normalmente, para negar explicitamente o acesso a um recurso, você deve escrever uma política que utilize `"Effect":"Deny"` e que inclua um elemento `Resource` listando cada pasta individualmente. Entretanto, nesse caso, cada vez que você adiciona uma pasta ao `HRBucket`, ou adiciona um recurso ao Amazon S3 que não deve ser acessado, você deve adicionar o nome desses itens à lista no elemento `Resource`. Se você usar um elemento `NotResource` em vez disso, os usuários terão o acesso a novas pastas automaticamente negado, a menos que você adicione os nomes das pastas no elemento `NotResource`. 

Ao usar `NotResource`, você deve ter em mente que os recursos especificados neste elemento são os *únicos* recursos que não são limitados. Isso, por sua vez, limita todos os recursos que seriam aplicáveis à ação. No exemplo acima, a política afeta apenas as ações do Amazon S3 e, portanto, apenas os recursos do Amazon S3. Se o elemento `Action` também incluísse ações do Amazon EC2, a política negaria acesso a nenhum recurso do EC2 não especificados no elemento `NotResource`. Para saber quais ações em um serviço permitem especificar o ARN de um recurso, consulte [Ações, recursos e chaves de condição de serviços da AWS](reference_policies_actions-resources-contextkeys.html).

## NotResource com outros elementos
<a name="notresource-element-combinations"></a>

**Nunca** use os elementos `"Effect": "Allow"`, `"Action": "*"` e `"NotResource": "arn:aws:s3:::HRBucket"` juntos. Essa instrução é muito perigosa porque permite todas as ações na AWS em todos os recursos, exceto no bucket `HRBucket` do S3. Isso permitiria até mesmo que o usuário adicionasse uma política para si mesmo que permitisse o acesso ao `HRBucket`. Não faça isso. 

Tenha cuidado ao usar o elemento `NotResource` e `"Effect": "Allow"` na mesma instrução ou em outra instrução em uma política. O `NotResource` permite todos os serviços e recursos que não são explicitamente listados e pode resultar na concessão de mais permissões aos usuários do que o desejado. O uso do elemento `NotResource` e `"Effect": "Deny"` na mesma instrução nega os serviços e recursos que não são explicitamente listados.