Especificación de ARN del recurso de AWS Glue - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Especificación de ARN del recurso de AWS Glue

En AWS Glue, puede controlar el acceso a los recursos a través de una política de AWS Identity and Access Management (IAM). En las políticas se emplean nombres de recurso de Amazon (ARN) para identificar los recursos a los que se aplican las políticas. No todos los recursos de AWS Glue admiten ARN.

ARN de Data Catalog

Los recursos de Data Catalog tienen una estructura jerárquica, con catalog como la raíz.

arn:aws:glue:region:account-id:catalog

Cada cuenta de AWS tiene un único Data Catalog en una región de AWS con el ID de cuenta de 12 dígitos como el ID de catálogo. Los recursos tienen ARN únicos asociados a ellos, tal y como se muestra en la siguiente tabla.

Tipo de recurso Formato de ARN

Catálogo

arn:aws:glue:region:account-id:catalog

Por ejemplo: arn:aws:glue:us-east-1:123456789012:catalog

Base de datos

arn:aws:glue:region:account-id:database/database name

Por ejemplo: arn:aws:glue:us-east-1:123456789012:database/db1

Tabla

arn:aws:glue:region:account-id:table/database name/table name

Por ejemplo: arn:aws:glue:us-east-1:123456789012:table/db1/tbl1

Función definida por el usuario

arn:aws:glue:region:account-id:userDefinedFunction/database name/user-defined function name

Por ejemplo: arn:aws:glue:us-east-1:123456789012:userDefinedFunction/db1/func1

Conexión

arn:aws:glue:region:account-id:connection/connection name

Por ejemplo: arn:aws:glue:us-east-1:123456789012:connection/connection1

Sesiones interactivas

arn:aws:glue:region:account-id:session/interactive session id

Por ejemplo: arn:aws:glue:us-east-1:123456789012:session/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Para habilitar el control de acceso detallado, puede utilizar estos ARN en sus políticas de IAM y las políticas de recursos para conceder y denegar el acceso a recursos específicos. Los comodines están permitidos en las políticas. Por ejemplo, el siguiente ARN coincide con todas las tablas de la base de datos default.

arn:aws:glue:us-east-1:123456789012:table/default/*
importante

Todas las operaciones realizadas en un recurso de Data Catalog requieren permiso en el recurso y todos los antecesores de dicho recurso. Por ejemplo, para crear una partición de una tabla se requiere el permiso en la tabla, la base de datos y el catálogo donde se encuentra la tabla. El siguiente ejemplo muestra el permiso necesario para crear particiones en la tabla PrivateTable en la base de datos PrivateDatabase de Data Catalog.

{ "Sid": "GrantCreatePartitions", "Effect": "Allow", "Action": [ "glue:BatchCreatePartitions" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:table/PrivateDatabase/PrivateTable", "arn:aws:glue:us-east-1:123456789012:database/PrivateDatabase", "arn:aws:glue:us-east-1:123456789012:catalog" ] }

Además de permiso en el recurso y todos sus antecesores, todas las operaciones de eliminación requieren permiso en todos los elementos secundarios de dicho recurso. Por ejemplo, para eliminar una base de datos, se requiere permiso en todas las tablas y funciones definidas por el usuario en la base de datos, así como en la base de datos y el catálogo donde se encuentra la base de datos. El siguiente ejemplo muestra el permiso necesario para eliminar la base de datos PrivateDatabase del Data Catalog.

{ "Sid": "GrantDeleteDatabase", "Effect": "Allow", "Action": [ "glue:DeleteDatabase" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:table/PrivateDatabase/*", "arn:aws:glue:us-east-1:123456789012:userDefinedFunction/PrivateDatabase/*", "arn:aws:glue:us-east-1:123456789012:database/PrivateDatabase", "arn:aws:glue:us-east-1:123456789012:catalog" ] }

En resumen, las acciones en los recursos de Data Catalog siguen estas reglas de permisos:

  • Las acciones en el catálogo requieren permiso solo en el catálogo.

  • Las acciones en una base de datos requieren permiso en la base de datos y el catálogo.

  • Eliminar acciones en una base de datos requiere permiso en la base de datos y el catálogo, además de todas las tablas y funciones definidas por el usuario en la base de datos.

  • Las acciones en una tabla, partición o versión de tabla requieren el permiso en la tabla, base de datos y catálogo.

  • Las acciones en una función definida por el usuario requieren el permiso en la función definida por el usuario, la base de datos y el catálogo.

  • Las acciones en una conexión requieren permiso en la conexión y el catálogo.

ARN para objetos que no están en el catálogo en AWS Glue

Algunos recursos de AWS Glue permiten permisos de nivel de recursos para controlar el acceso mediante un ARN. Puede utilizar estos ARN en sus políticas de IAM para habilitar el control de acceso detallado. En la siguiente tabla se enumeran los recursos que puede contener ARN de recursos.

Tipo de recurso Formato de ARN

Rastreador

arn:aws:glue:region:account-id:crawler/crawler-name

Por ejemplo: arn:aws:glue:us-east-1:123456789012:crawler/mycrawler

Trabajo

arn:aws:glue:region:account-id:job/job-name

Por ejemplo: arn:aws:glue:us-east-1:123456789012:job/testjob

Desencadenador

arn:aws:glue:region:account-id:trigger/trigger-name

Por ejemplo: arn:aws:glue:us-east-1:123456789012:trigger/sampletrigger

Punto de enlace de desarrollo

arn:aws:glue:region:account-id:devEndpoint/development-endpoint-name

Por ejemplo: arn:aws:glue:us-east-1:123456789012:devEndpoint/temporarydevendpoint

Transformación de machine learning

arn:aws:glue:region:account-id:mlTransform/transform-id

Por ejemplo: arn:aws:glue:us-east-1:123456789012:mlTransform/tfm-1234567890

Control de acceso para operaciones API singulares que no estén en el catálogo de AWS Glue

Las operaciones de API singulares que no estén en el catálogo de AWS Glue actúan sobre un solo elemento (punto de conexión de desarrollo). Algunos ejemplos son GetDevEndpoint, CreateUpdateDevEndpoint y UpdateDevEndpoint. Para estas operaciones, una política debe poner el nombre de la API en el bloque "action" y el ARN del recurso en el bloque "resource".

Supongamos que desea permitir a un usuario llamar a la operación GetDevEndpoint. La siguiente política concede los permisos mínimos necesarios a un punto de enlace llamado myDevEndpoint-1.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "MinimumPermissions", "Effect": "Allow", "Action": "glue:GetDevEndpoint", "Resource": "arn:aws:glue:us-east-1:123456789012:devEndpoint/myDevEndpoint-1" } ] }

La siguiente política permite a UpdateDevEndpoint el acceso a los recursos que coinciden con myDevEndpoint- con un asterisco (*).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionWithWildcard", "Effect": "Allow", "Action": "glue:UpdateDevEndpoint", "Resource": "arn:aws:glue:us-east-1:123456789012:devEndpoint/myDevEndpoint-*" } ] }

Puede combinar los dos políticas tal y como se muestra en el siguiente ejemplo. Puede que vea EntityNotFoundException para cualquier punto de enlace de desarrollo cuyo nombre empiece por A. Sin embargo, se devuelve un error de acceso denegado cuando intenta acceder a otros puntos de enlace de desarrollo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CombinedPermissions", "Effect": "Allow", "Action": [ "glue:UpdateDevEndpoint", "glue:GetDevEndpoint" ], "Resource": "arn:aws:glue:us-east-1:123456789012:devEndpoint/A*" } ] }

Control de acceso para operaciones API que no están en el catálogo de AWS Glue que recuperan varios elementos

Algunas operaciones API de AWS Glue recupera varios elementos (como varios puntos de enlace de desarrollo); por ejemplo, GetDevEndpoints. Para esta operación, solo puede especificar un recurso de asterisco (*) y no ARN específicos.

Por ejemplo, para incluir GetDevEndpoints en la política, el ámbito del recurso debe establecer en el carácter comodín (*). Las operaciones singulares (GetDevEndpoint, CreateDevEndpoint y DeleteDevendpoint) también se asignan a todos los recursos (*) en el ejemplo.

{ "Sid": "PluralAPIIncluded", "Effect": "Allow", "Action": [ "glue:GetDevEndpoints", "glue:GetDevEndpoint", "glue:CreateDevEndpoint", "glue:UpdateDevEndpoint" ], "Resource": [ "*" ] }

Control de acceso para operaciones de API BatchGet que no están en el catálogo de AWS Glue

Algunas operaciones API de AWS Glue recupera varios elementos (como varios puntos de enlace de desarrollo); por ejemplo, BatchGetDevEndpoints. En esta operación, puede especificar un ARN para limitar el ámbito de los recursos a los que se puede obtener acceso.

Por ejemplo, para permitir el acceso a un punto de enlace de desarrollo específico, incluya BatchGetDevEndpoints en la política con el ARN del recurso.

{ "Sid": "BatchGetAPIIncluded", "Effect": "Allow", "Action": [ "glue:BatchGetDevEndpoints" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:devEndpoint/de1" ] }

Con esta política, puede obtener acceso correctamente al punto de enlace de desarrollo llamado de1. Sin embargo, si intenta obtener acceso al punto de enlace de desarrollo llamado de2, se devolverá un error.

An error occurred (AccessDeniedException) when calling the BatchGetDevEndpoints operation: No access to any requested resource.
importante

Si desea conocer otros enfoques alternativos para configurar las políticas de IAM, como el uso de las operaciones API List y BatchGet, consulte Ejemplos de políticas basadas en identidades para AWS Glue.