Acceso a Amazon S3 desde Athena - Amazon Athena

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.

Controlar el acceso a los buckets de Amazon S3 con políticas basadas en identidades

Las políticas basadas en identidad se asocian a un usuario, grupo o rol 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/*"] } ] }

Controlar el acceso a los buckets de Amazon S3 con políticas de recursos de buckets

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.

Puntos de acceso de Amazon S3, alias de puntos de acceso y políticas de puntos de acceso

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 de bucket de Amazon S3 ayudan 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 claves de contexto CalledVia

Para mayor seguridad, puede utilizar la clave de contexto de condición global aws:CalledVia. La clave aws:CalledVia contiene una lista ordenada de cada servicio de la cadena que realizó solicitudes en nombre de la entidad principal. Al especificar el nombre de la entidad principal del servicio de Athena athena.amazonaws.com para clave de contexto aws:CalledVia, puede limitar las solicitudes a solo las hechas desde Athena. Para obtener más información, consulte Uso de Athena con claves de contexto CalledVia.

Recursos adicionales

Para obtener información detallada y ejemplos acerca de cómo conceder acceso a Amazon S3, consulte los siguientes recursos: