Políticas basadas en identidad (políticas de IAM) para el control de acceso - AWS Glue

Políticas basadas en identidad (políticas de IAM) para el control de acceso

Las políticas basadas en identidad están asociadas a una identidad de IAM (usuario, grupo, rol o servicio). Este tipo de política concede permisos para que dicha identidad de IAM acceda a recursos especificados.

AWS Glue admite políticas basadas en identidad (políticas de IAM) para todas las operaciones de AWS Glue. Al asociar una política a un usuario o un grupo de su cuenta, puede concederles permisos para crear o modificar un recurso de AWS Glue como, por ejemplo, una tabla en AWS Glue Data Catalog, o para acceder a él.

Al asociar una política a un rol de IAM, puede conceder permisos de acceso entre cuentas a identidades de IAM en otras cuentas de AWS. Para obtener más información, consulte Concesión de acceso entre cuentas .

Ejemplos de políticas basadas en identidad

A continuación, se muestra un ejemplo de política basada en identidad que concede permisos para acciones de AWS Glue (glue:GetTable, GetTables, GetDatabase y GetDatabases). El carácter comodín (*) en el valor Resource significa que se conceden los permisos a estas acciones para obtener los nombres y detalles de todas las tablas y bases de datos en Data Catalog. Si el usuario también tiene acceso a otros catálogos a través de una política de recursos, entonces también se le da acceso a estos recursos.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetTables", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDataBases" ], "Resource": "*" } ] }

Este es otro ejemplo, dirigido a la región de us-west-2 y que usa un marcador de posición para el número de cuenta de AWS específico.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetTablesActionOnBooks", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTables" ], "Resource": [ "arn:aws:glue:us-west-2:123456789012:catalog", "arn:aws:glue:us-west-2:123456789012:database/db1", "arn:aws:glue:us-west-2:123456789012:table/db1/books" ] } ] }

Esta política concede permisos de solo lectura a una tabla denominada books en la base de datos denominada db1. Tenga en cuenta que para conceder un permiso Get a una tabla, también se requiere ese permiso para el catálogo y los recursos de la base de datos.

Para denegar el acceso a una tabla, es necesario crear una política para denegar a un usuario el acceso a la tabla o a su base de datos o catálogo principal. Esto permite denegar fácilmente el acceso a un recurso específico que no se puede evadir con un permiso posterior. Por ejemplo, si deniega el acceso a tabla books en la base de datos db1, entonces, si concede acceso a la base de datos db1, el acceso a la tabla books seguirá denegado. A continuación, se muestra un ejemplo de política basada en identidad que deniega los permisos para las acciones de AWS Glue (glue:GetTables y GetTable) para la base de datos db1 y todas las tablas que contenga.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyGetTablesToDb1", "Effect": "Deny", "Action": [ "glue:GetTables", "glue:GetTable" ], "Resource": [ "arn:aws:glue:us-west-2:123456789012:database/db1" ] } ] }

Para ver más ejemplos de política, consulte Ejemplos de políticas basadas en identidad.

Políticas basadas en identidades (políticas de IAM) con etiquetas

También puede controlar el acceso a determinados tipos de recursos de AWS Glue mediante etiquetas de AWS. Para obtener más información sobre las etiquetas de AWS Glue, consulte AWS etiquetas.

Puede utilizar el elemento Condition junto con la clave de contexto glue:resourceTag en una política de usuarios de IAM para permitir o denegar el acceso en función de las claves asociada a los rastreadores, los trabajos, los desencadenadores y los puntos de enlace de desarrollo. Por ejemplo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:*", "Resource": "*", "Condition": { "StringEquals": { "glue:resourceTag/Name": "Tom" } } } ] }
importante

Las claves de contexto de condición se aplican únicamente a las acciones de API de AWS Glue que se realizan en los trabajos, los desencadenadores y los puntos de enlace de desarrollo. Para obtener más información sobre las API afectadas, consulte Permisos de la API de AWS Glue (): AWS Gluereferencia de recursos y acciones.

Para obtener más información acerca de cómo controlar el acceso con etiquetas, consulte Ejemplos de políticas de control de acceso basadas en identidades (IAM) de AWS Glue con etiquetas.

Políticas basadas en identidad (políticas de IAM) que controlan la configuración mediante claves de condición o claves de contexto

Puede utilizar claves de condición o claves de contexto al conceder permisos para crear y actualizar trabajos. En estas secciones, se analizan las claves:

Políticas de IAM que controlan la configuración mediante claves de condición

AWS Glue proporciona tres claves de condición de IAM: glue:VpcIds, glue:SubnetIds y glue:SecurityGroupIds. Puede utilizar claves de condición en políticas de IAM al conceder permisos para crear y actualizar trabajos. Puede utilizar esta configuración para asegurarse de que no se creen trabajos (ni se actualicen) para ejecutarse fuera del entorno de VPC deseado. La información de configuración de la VPC no es una entrada directa de la solicitud CreateJob, sino que se infiere del campo “conexiones” del trabajo que apunta a una conexión de AWS Glue.

Ejemplo de uso

Cree una conexión de tipo de red de AWS Glue denominada “traffic-monitored-connection” con el ID de la VPC deseado: “vpc-id1234”, SubnetIds y SecurityGroupIds.

Especifique la condición de las claves de condición para las acciones CreateJob y UpdateJob en la política de IAM.

{ "Effect": "Allow", "Action": [ "glue:CreateJob", "glue:UpdateJob" ], "Resource": [ "*" ], "Condition": { "ForAnyValue:StringLike": { "glue:VpcIds": [ "vpc-id1234" ] } } }

Puede establecer una política de IAM similar para prohibir la creación de un trabajo de AWS Glue sin especificar información de conexión.

Políticas de IAM que controlan la configuración mediante claves de contexto

AWS Glue proporciona una clave de contexto (glue:CredentialIssuingService= glue.amazonaws.com) a cada sesión de rol que AWS Glue pone a disposición del punto de conexión del trabajo y del desarrollador. Esto le permite implementar controles de seguridad para las acciones llevadas a cabo por scripts de AWS Glue. AWS Glue proporciona otra clave de contexto (glue:RoleAssumedBy=glue.amazonaws.com) a cada sesión de rol en la que AWS Glue realice una llamada a otro servicio de AWS en nombre del cliente (no mediante un punto de conexión del trabajo o el desarrollador, sino directamente mediante el servicio de AWS Glue).

Ejemplo de uso

Especifique el permiso condicional en la política de IAM y adjúntelo al rol que utilizará un trabajo de AWS Glue. Esto garantiza que se permitan o denieguen determinadas acciones en función de si la sesión de rol se utiliza para un entorno de ejecución de un trabajo de AWS Glue.

{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::confidential-bucket/*", "Condition": { "StringEquals": { "glue:CredentialIssuingService": "glue.amazonaws.com" } } }

Los permisos de nivel de recursos solo se aplican a objetos específicos de AWS Glue.

Solo puede definir un control detallado para los objetos específicos de AWS Glue. Por lo tanto, debe escribir la política de IAM de sus clientes de modo que las operaciones API que permiten utilizar nombres de recursos de Amazon (Amazon Resource Names, ARN) con la instrucción Resource no se mezclen con las operaciones API que no permiten el uso de ARN. Por ejemplo, la siguiente política de IAM permite operaciones de la API para GetClassifier y GetJobRun. Define el Resource como * porque AWS Glue no permite ARN para clasificadores y ejecuciones de trabajo. Dado que se permite utilizar ARN con determinadas operaciones API, como GetDatabase y GetTable, se pueden especificar ARN en la segunda mitad de la política.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetClassifier*", "glue:GetJobRun*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:Get*" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/default", "arn:aws:glue:us-east-1:123456789012:table/default/e*1*", "arn:aws:glue:us-east-1:123456789012:connection/connection2" ] } ] }

Para ver una lista de objetos de AWS Glue que permiten el uso de ARN, consulte ARN del recurso.

Permisos necesarios para usar la consola de AWS Glue

Para que un usuario pueda trabajar con la consola de AWS Glue, debe tener un conjunto mínimo de permisos que le permitan trabajar con los recursos de AWS Glue en su cuenta de AWS. Además de estos permisos de AWS Glue, la consola requiere permisos de los servicios a continuación:

  • Permisos de Amazon CloudWatch Logs para mostrar registros.

  • Permisos de AWS Identity and Access Management (IAM) para enumerar y transferir roles.

  • Permisos AWS CloudFormation para trabajar con pilas.

  • Permisos de Amazon Elastic Compute Cloud (Amazon EC2) para enumerar VPC, subredes, grupos de seguridad, instancias y otros objetos.

  • Permisos de Amazon Simple Storage Service (Amazon S3) para enumerar buckets y objetos, y recuperar y guardar scripts.

  • Permisos necesarios de Amazon Redshift para trabajar con clústeres.

  • Permisos de Amazon Relational Database Service (Amazon RDS) para enumerar instancias.

Para obtener más información sobre los permisos que necesitan los usuarios para ver y trabajar con la consola de AWS Glue, consulte Paso 3: asociar una política a usuarios de IAM que obtienen acceso a AWS Glue (AWS Glue).

Si crea una política de IAM que sea más restrictiva que el mínimo de permisos necesarios, la consola de no funcionará del modo esperado para los usuarios con esa política de IAM. Para asegurarse de que esos usuarios puedan seguir usando la consola de AWS Glue, asocie también la política administrada AWSGlueConsoleFullAccess al usuario, según se explica en Políticas administradas (predefinidas) por AWS para AWS Glue.

No es necesario que conceda permisos mínimos para la consola a los usuarios que solo realizan llamadas a la AWS CLI o a la API de AWS Glue.

Políticas administradas (predefinidas) por AWS para AWS Glue

AWS aborda muchos casos de uso comunes proporcionando políticas de IAM independientes creadas y administradas por AWS. Estas políticas administradas por AWS conceden los permisos necesarios para casos de uso comunes, lo que le evita tener que investigar los permisos necesarios. Para más información, consulte Políticas administradas de AWS en la Guía del usuario de IAM.

Las siguientes políticas administradas de AWS, que puede asociar a los usuarios de su cuenta, son específicas de AWS Glue y se agrupan según los escenarios de caso de uso:

  • AWSGlueConsoleFullAccess: concede acceso pleno a los recursos de AWS Glue cuando se usa la AWS Management Console. Si aplica la convención de nomenclatura para los recursos especificados en esta política, los usuarios tendrán acceso a la funcionalidad íntegra de la consola. Esta política se asocia generalmente a los usuarios de la consola de AWS Glue.

  • AWSGlueServiceRole: concede acceso a recursos que precisan diversos procesos de AWS Glue para ejecutarse en su nombre. Entre estos recursos se incluyen AWS Glue, Amazon S3, IAM, CloudWatch Logs y Amazon EC2. Si aplica la convención de nomenclatura en los recursos especificados en esta política, los procesos de AWS Glue tendrán los permisos necesarios. Esta política se asocia generalmente a los roles que se especifican a la hora de definir rastreadores, trabajos y puntos de enlace de desarrollo.

  • AwsGlueSessionUserRestrictedServiceRole: proporciona acceso completo a todos los recursos de AWS Glue, salvo las sesiones. Permite a los usuarios crear y utilizar solo las sesiones interactivas que están asociadas al usuario. Esta política también incluye otros permisos que necesita AWS Glue para administrar los recursos de Glue en otros servicios de AWS. La política también permite agregar etiquetas a recursos de AWS Glue en otros servicios de AWS.

    nota

    Para obtener todos los beneficios de seguridad, no conceda esta política a un usuario al que se le haya asignado la política AWSGlueServiceRole, AWSGlueConsoleFullAccess o AWSGlueConsoleSageMakerNotebookFullAccess.

  • AwsGlueSessionUserRestrictedPolicy: proporciona acceso para crear sesiones interactivas de AWS Glue mediante la API CreateSession solo si se proporcionan un “propietario” de la clave de etiqueta y un valor que coincida con el ID de usuario de AWS del asignado. Esta política de identidad está asociada al usuario de IAM que invoca a la API CreateSession. Esta política también permite al asignado interactuar con los recursos de sesión interactiva de AWS Glue creados con una etiqueta de “propietario” y un valor que coincida con su ID de usuario de AWS. Esta política deniega el permiso para cambiar o eliminar las etiquetas de “propietario” de un recurso de sesión de AWS Glue después de crear la sesión.

    nota

    Para obtener todos los beneficios de seguridad, no conceda esta política a un usuario al que se le haya asignado la política AWSGlueServiceRole, AWSGlueConsoleFullAccess o AWSGlueConsoleSageMakerNotebookFullAccess.

  • AwsGlueSessionUserRestrictedNotebookServiceRole: proporciona acceso suficiente a la sesión de bloc de notas de AWS Glue Studio para interactuar con los recursos de sesión interactiva de AWS Glue que se crean con el valor de etiqueta de “propietario” que coincida con el ID de usuario de AWS de la entidad principal (usuario o rol de IAM) que crea el bloc de notas. Para obtener más información acerca de estas etiquetas, consulte el gráfico Valores clave principales en la Guía del usuario de IAM).

    Esta política de rol de servicio se adjunta al rol que se especifica con una instrucción mágica dentro del bloc de notas o que se transfiere como un rol a la API CreateSession. Esta política también permite a la entidad principal crear una sesión interactiva de AWS Glue desde la interfaz del bloc de notas de AWS Glue Studio solo si se proporcionan una clave de etiqueta de “propietario” y un valor que coincida con el ID de usuario de AWS de la entidad principal. Esta política deniega el permiso para cambiar o eliminar las etiquetas de “propietario” de un recurso de sesión de AWS Glue después de crear la sesión. Esta política también incluye permisos para escribir y leer desde buckets de Amazon S3, escribir registros de CloudWatch, y crear y eliminar etiquetas para los recursos de Amazon EC2 que utiliza AWS Glue.

    nota

    Para obtener todos los beneficios de seguridad, no conceda esta política a un rol al que se le haya asignado la política AWSGlueServiceRole, AWSGlueConsoleFullAccess o AWSGlueConsoleSageMakerNotebookFullAccess.

  • AwsGlueSessionUserRestrictedNotebookPolicy: proporciona acceso para crear una sesión interactiva de AWS Glue desde la interfaz del bloc de notas de AWS Glue Studio solo si hay una clave de etiqueta de “propietario” y un valor que coincida con el ID de usuario de AWS de la entidad principal (usuario o rol de IAM) que crea el bloc de notas. Para obtener más información acerca de estas etiquetas, consulte el gráfico Valores clave principales en la Guía del usuario de IAM).

    Esta política se adjunta a la entidad principal (usuario o rol de IAM) que crea sesiones a partir de la interfaz del bloc de notas de AWS Glue Studio. Esta política también permite suficiente acceso al bloc de notas de AWS Glue Studio para interactuar con los recursos de sesión interactiva de AWS Glue que se crean con el valor de etiqueta de “propietario” que coincida con su ID de usuario de AWS de la entidad principal. Esta política deniega el permiso para cambiar o eliminar las etiquetas de “propietario” de un recurso de sesión de AWS Glue después de crear la sesión.

  • AWSGlueServiceNotebookRole: concede acceso a sesiones de AWS Glue iniciadas en un bloc de notas creado en AWS Glue Studio. Esta política permite enumerar y obtener información de sesión de todas las sesiones, pero solo permite a los usuarios crear y utilizar las sesiones etiquetadas con su ID de usuario de AWS. Esta política deniega el permiso para cambiar o eliminar etiquetas de “propietario” de recursos de sesión de AWS Glue etiquetados con sus ID de AWS.

    Asigne esta política al usuario de AWS que crea trabajos mediante la interfaz del bloc de notas en AWS Glue Studio.

  • AWSGlueConsoleSageMakerNotebookFullAccess: concede acceso completo a los recursos de AWS Glue y SageMaker cuando se utiliza la AWS Management Console. Si aplica la convención de nomenclatura para los recursos especificados en esta política, los usuarios tendrán acceso a la funcionalidad íntegra de la consola. Esta política se asocia generalmente a los usuarios de la consola de AWS Glue que administran bloc de notas de SageMaker.

  • AWSGlueSchemaRegistryFullAccess: concede acceso completo a recursos de Schema Registry de AWS Glue cuando se utiliza la AWS Management Console o la AWS CLI. Si aplica la convención de nomenclatura para los recursos especificados en esta política, los usuarios tendrán acceso a la funcionalidad íntegra de la consola. Esta política se asocia generalmente a los usuarios de la consola de AWS Glue o AWS CLI que administran Schema Registry.

  • AWSGlueSchemaRegistryReadonlyAccess: concede acceso de solo lectura a recursos de Schema Registry de AWS Glue cuando se utiliza la AWS Management Console o la AWS CLI. Si aplica la convención de nomenclatura para los recursos especificados en esta política, los usuarios tendrán acceso a la funcionalidad íntegra de la consola. Esta política se asocia generalmente a los usuarios de la consola de AWS Glue o AWS CLI que utilizan Schema Registry.

nota

Para consultar estas políticas de permisos, inicie sesión en la consola de IAM y busque las políticas específicas.

También puede crear sus propias políticas de IAM personalizadas para conceder permisos a las acciones y recursos de AWS Glue. Puede asociar estas políticas personalizadas a los usuarios o grupos de IAM que requieran esos permisos.

Actualizaciones de AWS Glue en las políticas administradas de AWS

Es posible consultar los detalles sobre las actualizaciones de las políticas administradas de AWS para AWS Glue debido a que este servicio comenzó a realizar el seguimiento de estos cambios. Para obtener alertas automáticas sobre estas actualizaciones, suscríbase a la fuente RSS en la página historial de documentos de AWS Glue.

Cambio Descripción Fecha

Se han agregado nuevas políticas administradas para la característica de sesiones interactivas

  • AwsGlueSessionUserRestrictedServiceRole

  • AwsGlueSessionUserRestrictedPolicy

  • AwsGlueSessionUserRestrictedNotebookServiceRole

  • AwsGlueSessionUserRestrictedNotebookPolicy

Estas políticas se diseñaron para proporcionar seguridad adicional para las sesiones interactivas y los bloc de notas en AWS Glue Studio. Las políticas restringen el acceso a la API CreateSession para que solo el propietario tenga acceso.

30 de noviembre de 2021

AWSGlueConsoleSageMakerNotebookFullAccess: actualización de una política existente

Se eliminó un ARN de recurso redundante (arn:aws:s3:::aws-glue-*/*) para la acción que concede permisos de lectura/escritura en los buckets de Amazon S3 que AWS Glue utiliza para almacenar scripts y archivos temporales.

Se corrigió un problema de sintaxis al cambiar "StringEquals" a "ForAnyValue:StringLike", y se movieron las líneas "Effect": "Allow" para que precedan a la línea "Action": en las instancias en la que no funcionaban.

15 de julio de 2021

AWSGlueConsoleFullAccess: actualización de una política existente

Se eliminó un ARN de recurso redundante (arn:aws:s3:::aws-glue-*/*) para la acción que concede permisos de lectura/escritura en los buckets de Amazon S3 que AWS Glue utiliza para almacenar scripts y archivos temporales. 15 de julio de 2021

AWS Glue comenzó el seguimiento de los cambios.

AWS Glue comenzó el seguimiento de los cambios de las políticas administradas de AWS.

10 de junio de 2021