Control del acceso a Amazon S3 desde Athena
Puede conceder acceso a las ubicaciones de Amazon S3 mediante políticas basadas en identidad, políticas de recursos de bucket, políticas de puntos de acceso o cualquier combinación de las anteriores. Cuando los actores interactúan con Athena, sus permisos pasan por Athena para determinar a qué puede acceder Athena. Esto significa que los usuarios deben tener permiso para acceder a los buckets de Amazon S3 para poder consultarlos con Athena.
Siempre que utilice políticas de IAM, compruebe que sigue las mejores prácticas IAM. Para más información, consulte Prácticas recomendadas de seguridad en IAM en la Guía del usuario de IAM.
Tenga en cuenta que las solicitudes a Amazon S3 provienen de una dirección IPv4 privada para Athena, no de la IP de origen especificada en aws:SourceIp
. Por este motivo, no puede utilizar la condición aws:SourceIp
para denegar el acceso a las acciones de Amazon S3 en una política de IAM determinada. Tampoco puede restringir o permitir el acceso a los recursos de Amazon S3 basándose en las claves de condición aws:SourceVpc
o aws:SourceVpce
.
nota
Los grupos de trabajo de Athena que utilizan la autenticación de IAM Identity Center requieren que S3 Access Grants esté configurado para utilizar identidades de propagación fiables. Para obtener más información, consulte S3 Access Grants e identidades de directorio en la Guía del usuario de Amazon Simple Storage Service.
Temas
Uso de políticas basadas en identidad para el control de acceso a los buckets de Amazon S3
Las políticas basadas en identidad se asocian a un rol, grupo o usuario de IAM. Estas políticas le permiten especificar lo que esa identidad puede hacer (sus permisos). Puede utilizar políticas basadas en identidades para controlar el acceso a los buckets de Amazon S3.
La siguiente política basada en identidad permite a acceso de Read
y Write
a los objetos de un bucket específico de Amazon S3. Para utilizar esta política, sustituya el texto en cursiva del marcador de posición
por sus propios valores.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"] } ] }
Uso de políticas de recursos de bucket para el control de acceso a los buckets de Amazon S3
Puede utilizar políticas de buckets de Amazon S3 para proteger el acceso a los objetos de los buckets, de modo que solo los usuarios con los permisos adecuados puedan acceder a estos. Para obtener orientación sobre cómo crear la política de Amazon S3, consulte Agregar una política de bucket mediante la Consola de Amazon S3 en la Guía del usuario de Amazon S3.
El siguiente ejemplo de política de permisos limita a un usuario a leer objetos que tengan la clave y el valor de la etiqueta environment: production
. Esta política usa la clave de condición s3:ExistingObjectTag
para especificar la clave y el valor de la etiqueta.
{ "Version":"2012-10-17", "Statement": [ { "Principal":{"AWS":"arn:aws:iam::
111122223333
:role/JohnDoe
" }, "Effect":"Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals":{"s3:ExistingObjectTag/environment":"production" } ] }
Para obtener más ejemplos de políticas de bucket, consulte Ejemplos de políticas de bucket de Amazon S3 en la Guía del usuario de Amazon S3.
Uso de los puntos de acceso de Amazon S3 para un control más preciso del acceso al bucket
Si tiene un conjunto de datos compartido en un bucket de Amazon S3, puede resultar difícil mantener una política de bucket única que administre el acceso para cientos de casos de uso.
Los puntos de acceso, las políticas y los alias del bucket de Amazon S3 pueden ayudar a resolver este problema. Un bucket puede tener varios puntos de acceso, cada uno con una política que controla el acceso al bucket de forma diferente.
Para cada punto de acceso que cree, Amazon S3 genera un alias que representa el punto de acceso. Debido a que el alias está en formato de nombre de bucket de Amazon S3, puede utilizar el alias de la cláusula LOCATION
de sus instrucciones CREATE TABLE
en Athena. La política para el punto de acceso que representa el alias controla entonces el acceso de Athena al bucket.
Para obtener más información, consulte Especificación de la ubicación de una tabla en Amazon S3 y Cómo utilizar los puntos de acceso en la Guía del usuario de Amazon S3.
Uso de las claves contextuales de CalledVia para permitir únicamente las llamadas de Athena a otro servicio
Para mayor seguridad, puede utilizar la clave de contexto de condición global aws:CalledVia. La clave de condición aws:CalledVia
contiene una lista de servicios que se permiten llamar a otro servicio. Por ejemplo, puedes permitir llamadas de InvokeFunction
a AWS Lambda solo si provienen de Athena y debe especificar el nombre de la entidad principal del servicio de Athena, athena.amazonaws.com
, para la clave de contexto aws:CalledVia
. Para obtener más información, consulte Uso de las claves de contexto CalledVia para Athena.
Recursos adicionales
Para obtener información detallada y ejemplos acerca de cómo conceder acceso a Amazon S3, consulte los siguientes recursos:
-
Ejemplos de explicaciones: Administración de acceso en la Guía del usuario de Simple Storage Service (Amazon S3).
-
¿Cómo puedo proporcionar acceso entre cuentas a objetos que se encuentran en buckets de Amazon S3?
en el Centro de conocimientos de AWS. -
Configuración del acceso entre cuentas en Athena a los buckets de Amazon S3.