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

AWS: negar acesso aos recursos do Amazon S3 fora da sua conta, exceto o AWS Data Exchange

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 exigem interação com recursos em contas de propriedade de um serviço.

Se você usar AWS Data Exchange no ambiente, o serviço cria e interage com recursos como buckets do Amazon S3 pertencentes à conta de serviço. Por exemplo, o AWS Data Exchange envia solicitações aos buckets do Amazon S3 de propriedade do serviço AWS Data Exchange em nome da entidade principal do IAM (usuário ou perfil) que invoca as APIs do AWS Data Exchange. Nesse caso, usar aws:ResourceAccount em uma política, sem levar em conta os recursos de propriedade do AWS Data Exchange, nega acesso aos buckets pertencentes à conta do 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 à conta, exceto os recursos que o AWS Data Exchange exige para as operações normais.

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

  • A instrução DenyAllAwsResourcesOutsideAccountExceptS3 usa o elemento NotAction com o efeito Deny (Negar) que nega explicitamente o acesso a todas as ações não listadas na instrução e que também não pertencem à conta listada. O elemento NotAction indica as exceções a essa instrução. Essas ações são a exceção à essa instrução porque se as ações forem realizadas em recursos criados pelo AWS Data Exchange, a política as negará.

  • A instrução DenyAllS3ResoucesOutsideAccountExceptDataExchange usa uma combinação das chaves de condições ResourceAccount e CalledVia para negar acesso às três ações do Amazon S3 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 AWS Data Exchange. Essa instrução não nega as ações se o recurso pertencer à conta listada ou se a entidade principal do serviço listado, dataexchange.amazonaws.com, realizar as operações.

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.

O exemplo a seguir mostra como você pode configurar a política para permitir acesso aos buckets do Amazon S3 necessários.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllAwsReourcesOutsideAccountExceptAmazonS3", "Effect": "Deny", "NotAction": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "111122223333" ] } } }, { "Sid": "DenyAllS3ResourcesOutsideAccountExceptDataExchange", "Effect": "Deny", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "111122223333" ] }, "ForAllValues:StringNotEquals": { "aws:CalledVia": [ "dataexchange.amazonaws.com" ] } } } ] }