AWS: negar acesso aos recursos do Amazon SNS fora da sua conta, exceto o CloudFormation - AWS Identity and Access Management

AWS: negar acesso aos recursos do Amazon SNS fora da sua conta, exceto o CloudFormation

Usar a chave de condição aws:ResourceAccount em suas políticas baseadas em identidade pode afetar o usuário ou a capacidade do perfil utilizar alguns serviços da AWS que exijam interação com recursos em contas de propriedade de um serviço.

Este exemplo mostra como é possível criar uma política do IAM que negue acesso a todos os recursos na AWS que não pertençam à sua conta, exceto os recursos que o CloudFormation exige para as operações normais. Se você usar Stack Sets do CloudFormation no ambiente, Stack Sets enviará solicitações para tópicos do Amazon SNS pertencentes ao CloudFormation em nome da entidade principal do IAM (usuário ou perfil) que invocar as APIs Stack Sets. Nesse caso, a política usando a chave de condição aws:ResourceAccount, sem levar em conta os recursos de propriedade do CloudFormation, nega acesso aos tópicos do Amazon SNS pertencentes à conta de serviço.

Para usar esta política, substitua o texto do espaço reservado em itálico por suas próprias informações.

Para permitir que as APIs Stack Sets do AWS CloudFormation acessem recursos da conta, use as instruções a seguir na política de recursos:

  • A instrução DenyAllAwsResourcesOutsideAccountExceptSNS usa o elemento NotAction com o efeito Deny que nega explicitamente o acesso a todas as ações não listadas na instrução e que não pertencem à conta listada.

    O elemento NotAction indica as exceções para as ações nesta instrução porque se as ações forem realizadas em recursos criados pelo CloudFormation, a política negará as ações.

  • A instrução DenyAllSNSResourcesOutsideAccountExceptCloudFormation usa as chaves de condições aws:ResourceAccount e CalledVia para negar acesso às ações do Amazon SNS excluídas na instrução anterior. A instrução nega as ações se os recursos não pertencerem à conta listada E se o serviço que está chamando não for o CloudFormation. Essa instrução permite as ações se o recurso pertencer à conta listada ou se a entidade principal do serviço listado realizar a operação.

Importante

Esta política não permite qualquer ação. Ela usa o efeito Deny, que nega explicitamente o acesso a todas as ações não listadas na instrução que não pertencerem à conta listada. Use essa política em combinação com outras políticas que permitem acesso a recursos específicos.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllAwsResourcesOutsideAccountExceptSNS", "Effect": "Deny", "NotAction": [ "sns:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "111122223333" ] } } }, { "Sid": "DenyAllSNSResourcesOutsideAccountExceptCloudFormation", "Effect": "Deny", "Action": [ "sns:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "111122223333" ] }, "ForAllValues:StringNotEquals": { "aws:CalledVia": [ "cloudformation.amazonaws.com" ] } } } ] }