Elementos de política JSON do IAM: NotResource
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.
{ "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 em 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 a ação também incluísse ações do Amazon EC2, a política não negaria acesso a nenhum recurso do EC2. 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.
NotResource com outros elementos
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.