AWS: denegar el acceso a los recursos de Amazon S3 fuera de su cuenta, excepto AWS Data Exchange - AWS Identity and Access Management

AWS: denegar el acceso a los recursos de Amazon S3 fuera de su cuenta, excepto AWS Data Exchange

El siguiente ejemplo muestra cómo crear una política basada en identidad que deniegue el acceso a todos los recursos de AWS que no pertenezcan a su cuenta, excepto los recursos que AWS Data Exchange requiere para un funcionamiento normal. Para utilizar esta política, sustituya el texto en cursiva de la política de ejemplo por su propia información. A continuación, siga las instrucciones en Crear una política o Editar una política.

Puede crear una política similar para restringir el acceso a los recursos dentro de una organización o una unidad organizativa y, al mismo tiempo, contabilizar los recursos propios de AWS Data Exchange mediante las claves de condición aws:ResourceOrgPaths y aws:ResourceOrgID.

Si usa AWS Data Exchange en su entorno, el servicio crea recursos como los buckets de Amazon S3 que son propiedad de la cuenta de servicio e interactúa con ellos. Por ejemplo, AWS Data Exchange envía solicitudes a los buckets de Amazon S3 propiedad del servicio AWS Data Exchange en nombre de la entidad principal de IAM (usuario o rol) que invoca las API de AWS Data Exchange. En ese caso, el uso de aws:ResourceAccount, aws:ResourceOrgPaths o aws:ResourceOrgID en una política, sin tener en cuenta los recursos propiedad de AWS Data Exchange, deniega el acceso a los buckets propiedad de la cuenta de servicio.

  • La declaración, DenyAllAwsResourcesOutsideAccountExceptS3, utiliza el elemento NotAction con el efecto Deny (Denegar) que deniega explícitamente el acceso a todas las acciones que no figuren en la declaración y que tampoco pertenezcan a la cuenta incluida en la lista. El elemento NotAction indica las excepciones a esta declaración. Estas acciones son la excepción a esta declaración porque, si las acciones se llevan a cabo en los recursos creados por AWS Data Exchange, la política las deniega.

  • La declaración, DenyAllS3ResoucesOutsideAccountExceptDataExchange, utiliza una combinación de las condiciones ResourceAccount y CalledVia para denegar el acceso a las tres acciones de Amazon S3 excluidas en la declaración anterior. La declaración deniega las acciones si los recursos no pertenecen a la cuenta enumerada y si el servicio de llamadas no es AWS Data Exchange. La declaración no deniega las acciones si el recurso pertenece a la cuenta enumerada o si la entidad principal de servicio enumerada, dataexchange.amazonaws.com, lleva a cabo las operaciones.

importante

Esta política no permite ninguna acción. Utiliza el efecto Deny que deniega el acceso a todos los recursos enumerados en la declaración que no pertenecen a la cuenta que se indica. Utilice esta política en combinación con otras políticas que permiten acceder a acciones específicas.

El siguiente ejemplo muestra cómo puede configurar la política para permitir el acceso a los buckets de Amazon S3 necesarios.

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