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 soporta 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.

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 acerca del uso de etiquetas en AWS Glue, consulte AWSEtiquetas de .

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 API de AWS Glue: referencia 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.

Los permisos de nivel de recurso 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 Los 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 de su cuenta de AWS. Además de estos permisos de AWS Glue, la consola requiere permisos de los servicios siguientes:

  • 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.

Si crea una política de IAM que sea más restrictiva que el mínimo de permisos necesarios, la consola 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.

  • AWSGlueServiceNotebookRole: concede acceso a recursos que se necesitan para crear servidores de blocs de notas. Entre estos recursos se incluyen AWS Glue, Amazon S3, IAM 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 crear un servidor de blocs de notas en un punto de enlace de desarrollo.

  • AWSGlueConsoleSageMakerNotebookFullAccessAWSGlueConsoleSageMakerNotebookFullAccess: concede acceso completo a AWS Glue y recursos de 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 blocs de notas de SageMaker.

  • AwsGlueSchemaregistryFullAccess: concede acceso completo a recuros de AWS Schema Registry cuando se utiliza la AWS Management Console o 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 AWS Glue Schema Registry cuando se utiliza la AWS Management Console o 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 usan 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 a las políticas administradas por 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

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.

TBD

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. TBD

AWS Glue comenzó a realizar seguimiento de los cambios

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

10 de junio de 2021