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.
Temas
- ARN de Data Catalog
- ARN para objetos que no están en el catálogo en AWS Glue
- Control de acceso para operaciones API singulares que no estén en el catálogo de AWS Glue
- Control de acceso para operaciones API que no están en el catálogo de AWS Glue que recuperan varios elementos
- Control de acceso para operaciones de API BatchGet que no están en el catálogo de AWS Glue
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 |
Por ejemplo: |
Base de datos |
Por ejemplo: |
Tabla |
Por ejemplo: |
Función definida por el usuario |
Por ejemplo: |
Connection |
Por ejemplo: |
Sesiones interactivas |
Por ejemplo: |
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 |
Por ejemplo: |
Trabajo |
Por ejemplo: |
Desencadenador |
Por ejemplo: |
Punto de enlace de desarrollo |
Por ejemplo: |
Transformación de machine learning |
Por ejemplo: |
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 la identidad para Glue AWS.