Especificar AWS Glue el recurso ARNs - AWS Adherencia

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.

Especificar AWS Glue el recurso ARNs

EnAWS Glue, puede controlar el acceso a los recursos mediante una política AWS Identity and Access Management (IAM). En una política, se utiliza un nombre de recurso de Amazon (ARN) para identificar el recurso al que se aplica la política. No todos los recursos son AWS Glue compatiblesARNs.

Catálogo de datos ARNs

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

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

Cada AWS cuenta tiene un único catálogo de datos en una AWS región con el identificador de cuenta de 12 dígitos como identificador del catálogo. Los recursos tienen ARNs asociados únicos, como se muestra en la siguiente tabla.

Tipo de recurso ARNformato

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.

Connection

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 un control de acceso detallado, puede utilizarlos ARNs en sus IAM políticas y políticas de recursos para conceder o denegar el acceso a recursos específicos. Los comodines están permitidos en las políticas. Por ejemplo, lo 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.

ARNspara objetos que no son de catálogo en AWS Glue

Algunos AWS Glue recursos permiten permisos a nivel de recurso para controlar el acceso mediante un. ARN Puede utilizarlos ARNs en sus IAM políticas para permitir un control de acceso detallado. En la siguiente tabla se enumeran los recursos que pueden contener un recurso. ARNs

Tipo de recurso ARNformato

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 singulares AWS Glue API ajenas al catálogo

AWS GlueLas API operaciones singulares que no son de catálogo actúan sobre un único elemento (punto final de desarrollo). Algunos ejemplos son GetDevEndpoint, CreateUpdateDevEndpoint y UpdateDevEndpoint. Para estas operaciones, una política debe incluir el API nombre en el "action" bloque y el recurso ARN en el "resource" bloque.

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 API operaciones AWS Glue ajenas al catálogo que recuperan varios elementos

Algunas AWS Glue API operaciones recuperan varios elementos (como varios puntos finales de desarrollo); por ejemplo,. GetDevEndpoints Para esta operación, solo puede especificar un recurso comodín (*) y no un recurso específico. ARNs

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 AWS Glue BatchGet API ajenas al catálogo

Algunas AWS Glue API operaciones recuperan varios elementos (como varios puntos finales de desarrollo); por ejemplo,. BatchGetDevEndpoints Para esta operación, puede especificar una ARN para limitar el alcance de los recursos a los que se puede acceder.

Por ejemplo, para permitir el acceso a un punto final de desarrollo específico, BatchGetDevEndpoints inclúyalo en la política junto con su recursoARN.

{ "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

Para conocer enfoques alternativos para configurar IAM políticas, como el uso List y BatchGet API las operaciones, consulteEjemplos de políticas basadas en identidades para AWS Glue.