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

Este exemplo mostra como é possível criar uma política baseada em identidade que negue acesso a todos os recursos na AWS que não pertençam à conta, exceto os recursos que o AWS Data Exchange exigir para as operações normais. Para usar esta política, substitua o texto do espaço reservado em itálico na política de exemplo por suas próprias informações. Em seguida, siga as instruções em criar uma política ou editar uma política.

Você pode criar uma política semelhante para restringir o acesso aos recursos dentro de uma organização ou unidade organizacional, levando em conta os recursos pertencentes ao AWS Data Exchange, usando as chaves de condição aws:ResourceOrgPaths e aws:ResourceOrgID.

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, o uso de aws:ResourceAccount, aws:ResourceOrgPaths ou aws:ResourceOrgID em uma política, sem levar em conta os recursos pertencentes ao AWS Data Exchange, negará acesso aos buckets pertencentes à conta do serviço.

  • 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" ] } } } ] }