Configuración del acceso a las bases de datos y tablas en el AWS Glue Data Catalog
Si utiliza la opción AWS Glue Data Catalog con Amazon Athena, puede definir políticas de nivel de recursos para la base de datos y los objetos del catálogo de datos que se utilizan en Athena.
nota
En este tema se analiza la seguridad a nivel de bases de datos y tablas. Para obtener información sobre cómo configurar la seguridad a nivel de columna, fila y celda, consulte Filtrado de datos y seguridad a nivel de celda en Lake Formation.
Puede definir los permisos de nivel de recursos en las políticas basadas en identidad de IAM.
importante
En esta sección se analizan los permisos de nivel de recursos en las políticas basadas en identidad de IAM. Son diferentes de las políticas basadas en recursos. Para obtener más información sobre las diferencias, consulte Políticas basadas en identidad y políticas basadas en recursos en la Guía del usuario de IAM.
Consulte los siguientes temas sobre estas tareas:
Para llevar a cabo esta tarea | consulte el siguiente tema |
---|---|
Creación de una política de IAM que defina el acceso a los recursos | Creación de políticas de IAM en la Guía del usuario de IAM. |
Más información acerca de las políticas basadas en identidad de IAM que se utilizan en el AWS Glue | Políticas basadas en identidad (políticas de IAM) en la Guía para desarrolladores de AWS Glue. |
En esta sección
Limitaciones
Tenga en cuenta las siguientes limitaciones cuando utilice el control de acceso a nivel de base de datos y tabla para AWS Glue Data Catalog y Athena:
-
Los grupos de trabajo de Athena habilitados para IAM Identity Center requieren que Lake Formation esté configurado para utilizar las identidades del IAM Identity Center. Para obtener más información, consulte Integración del IAM Identity Center en la Guía para desarrolladores de AWS Lake Formation.
-
El acceso solo puede limitarse a bases de datos y tablas. Estos controles se aplican a nivel de tabla. No se puede limitar el acceso a particiones individuales dentro de una tabla. Para obtener más información, consulte Acerca del control de acceso para las particiones y versiones de tablas en AWS Glue.
-
El AWS Glue Data Catalog contiene los siguientes recursos:
CATALOG
,DATABASE
,TABLE
yFUNCTION
.nota
En esta lista, los recursos que son comunes entre Athena y AWS Glue Data Catalog son
TABLE
,DATABASE
yCATALOG
para cada cuenta.Function
es específico de AWS Glue. Para eliminar acciones en Athena, debe incluir los permisos a las acciones de AWS Glue. Consulte Ejemplos de permisos a nivel de base de datos y tabla.La jerarquía es la siguiente:
CATALOG
es un antecesor de todas lasDATABASES
de cada cuenta y cadaDATABASE
es un antecesor de todas susTABLES
yFUNCTIONS
. Por ejemplo, en el caso de una tabla denominadatable_test
que pertenezca a una base de datosdb
del catálogo de su cuenta, sus antecesores sondb
y el catálogo de su cuenta. Para la base de datosdb
, su antecesor es el catálogo de su cuenta y sus descendientes son las tablas y funciones. Para obtener más información acerca de la estructura jerárquica de los recursos, consulte Lista de ARN del catálogo de datos en la Guía para desarrolladores de AWS Glue. -
Para cualquier acción de Athena en un registro distinta a la operación de eliminación, como
CREATE DATABASE
,CREATE TABLE
,SHOW DATABASE
,SHOW TABLE
oALTER TABLE
, necesita permisos para llamar a esta acción en el recurso (tabla o base de datos) y en todos los antecesores de ese recurso en el catálogo de datos. Por ejemplo, en el caso de una tabla, sus antecesores son la base de datos a la que pertenece y el catálogo de la cuenta. En el caso de una base de datos, su antecesor es el catálogo de la cuenta. Consulte Ejemplos de permisos a nivel de base de datos y tabla. -
Para una acción de eliminación en Athena, como
DROP DATABASE
oDROP TABLE
, también necesita permisos para llamar a la acción de eliminación en todos los antecesores y descendientes del recurso en el catálogo de datos. Por ejemplo, para eliminar una base de datos necesita permisos en la base de datos, el catálogo, que es su antecesor, y todas las tablas y funciones definidas por el usuario, que son sus descendientes. Una tabla no tiene descendientes. Para ejecutarDROP TABLE
, necesita permisos para esta acción en la tabla, la base de datos a la que pertenece y el catálogo. Consulte Ejemplos de permisos a nivel de base de datos y tabla.
Configuración del acceso de AWS Glue a su catálogo y base de datos por Región de AWS
Para que Athena pueda trabajar con AWS Glue, se requiere una política que conceda el acceso a su base de datos y al AWS Glue Data Catalog en su cuenta por Región de AWS. Para crear bases de datos, también se requiere el permiso CreateDatabase
. En el siguiente ejemplo de política, sustituya la Región de AWS, el ID de la Cuenta de AWS y el nombre de la base de datos por los suyos.
{ "Sid": "DatabasePermissions", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase" ], "Resource": [ "arn:aws:glue:
us-east-1
:123456789012
:catalog", "arn:aws:glue:us-east-1
:123456789012
:database/default
" ] }
Acerca del control de acceso para las particiones y versiones de tablas en AWS Glue
En AWS Glue, las tablas pueden tener particiones y versiones. Las versiones y particiones de tabla no se consideran recursos independientes en AWS Glue. El acceso a las versiones y particiones de tabla se otorga concediendo acceso a la tabla y a los recursos antecesores de la tabla.
A efectos de control de acceso, se aplican los siguientes permisos de acceso:
-
Los controles se aplican a nivel de tabla. El acceso solo puede limitarse a bases de datos y tablas. Por ejemplo, si permite el acceso a una tabla particionada, este acceso se aplica a todas las particiones de la tabla. No se puede limitar el acceso a particiones individuales dentro de una tabla.
importante
A fin de ejecutar acciones de AWS Glue en las particiones, se requieren permisos para las acciones de partición en los niveles de catálogo, base de datos y tabla. No basta con tener acceso a las particiones de una tabla. Por ejemplo, para ejecutar
GetPartitions
en la tablamyTable
de la base de datosmyDB
, debe otorgar permisos deglue:GetPartitions
en el catálogo, la base de datosmyDB
y los recursos de la tablamyTable
. -
Los controles de acceso no se aplican a las versiones de las tablas. Al igual que ocurre con las particiones, el acceso a las versiones anteriores de una tabla se concede mediante el acceso a las API de versión de tabla de AWS Glue en la tabla y en los antecesores de la tabla.
Para obtener información sobre los permisos para las acciones de AWS Glue, consulte Permisos de API de AWS Glue: referencia de recursos y acciones en la Guía para desarrolladores de AWS Glue.
Ejemplos de permisos a nivel de base de datos y tabla
La siguiente tabla enumera ejemplos de políticas basadas en identidad de IAM que permiten el acceso a bases de datos y tablas en Athena. Le sugerimos que comience con estos ejemplos y, en función de sus necesidades, los ajuste para permitir o denegar acciones específicas con bases de datos y tablas determinadas.
Estos ejemplos incluyen el acceso a bases de datos y catálogos para que Athena y AWS Glue pueden trabajar juntos. En el caso de trabajar en varias regiones de AWS, incluya políticas similares para cada una de las bases de datos y catálogos, con una línea por cada región.
En los ejemplos, sustituya la base de datos example_db
y la tabla test
por sus propios nombres de base de datos y tabla.
Instrucción DDL | Ejemplo de una política de acceso de IAM que concede acceso al recurso |
---|---|
ALTER DATABASE | Permite modificar las propiedades de la base de datos example_db .
|
CREATE DATABASE | Permite crear la base de datos con el nombre example_db .
|
CREATE TABLE | Permite crear una tabla con el nombre test en la base de datos example_db .
|
DROP DATABASE | Permite borrar la base de datos example_db , incluidas todas las tablas que contiene.
|
DROP TABLE | Permite borrar una tabla particionada llamada test en la base de datos example_db . Si la tabla no tiene particiones, no incluya acciones de partición.
|
MSCK REPAIR TABLE | Permite actualizar los metadatos del catálogo después de agregar particiones compatibles con Hive a la tabla denominada test en la base de datos example_db .
|
SHOW DATABASES | Permite enumerar todas las bases de datos en AWS Glue Data Catalog.
|
SHOW TABLES | Permite enumerar todas las tablas de la base de datos example_db .
|