Referencia de permisos de Lake Formation - AWS Lake Formation

Referencia de permisos de Lake Formation

Para efectuar las operaciones de AWS Lake Formation, las entidades principales necesitan tanto los permisos de Lake Formation como los de AWS Identity and Access Management (IAM). En general, los permisos IAM se conceden mediante políticas de control de acceso poco específicas, como se describe en Descripción general de los permisos de Lake Formation . Puede conceder permisos de Lake Formation utilizando la consola, la API o la AWS Command Line Interface (AWS CLI).

Para saber cómo conceder o revocar permisos de Lake Formation, consulte Concesión de permisos sobre los recursos del Catálogo de datos y Conceder permisos de ubicación de datos.

nota

Los ejemplos de esta sección muestran cómo conceder permisos a entidades principales en la misma cuenta AWS. Para ver ejemplos de concesiones entre cuentas, consulte Compartir datos entre cuentas en Lake Formation.

Permisos de Lake Formation por tipo de recurso

A continuación se indican los permisos válidos de Lake Formation disponibles para cada tipo de recurso:

Recurso Permiso
Catalog ALL (Super), superusuario
ALTER
CREATE_DATABASE
DESCRIBE
DROP
Database ALL (Super)
ALTER
CREATE_TABLE
DESCRIBE
DROP
Table ALL (Super)
ALTER
DELETE
DESCRIBE
DROP
INSERT
SELECT
View ALL (Super)
SELECT
DESCRIBE
DROP
Data Catalog CREATE_DATABASE
Amazon S3 location DATA_LOCATION_ACCESS
LF-Tags DROP
ALTER
LF-Tag values ASSOCIATE
DESCRIBE
GrantWithLFTagExpression
LF-Tag policy - Database ALL (Super)
ALTER
CREATE_TABLE
DESCRIBE
DROP
LF-Tag policy - Table ALL (Super)
ALTER
DESCRIBE
DELETE
DROP
INSERT
SELECT
Resource link - Database or Table DESCRIBE
DROP
Table with data filters DESCRIBE
DROP
SELECT
Table with column filter SELECT

Comandos AWS CLI para concesión y revocación en Lake Formation

Cada descripción de permiso en esta sección incluye ejemplos de concesión del permiso utilizando un comando AWS CLI. A continuación se presentan las sinopsis de los comandos de la AWS CLI de Lake Formation revoke-permissions y grant-permissions.

grant-permissions [--catalog-id <value>] --principal <value> --resource <value> --permissions <value> [--permissions-with-grant-option <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
revoke-permissions [--catalog-id <value>] --principal <value> --resource <value> --permissions <value> [--permissions-with-grant-option <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]

Para obtener descripciones detalladas de estos comandos, consulte grant-permissions y revoke-permissions en la Referencia de comandos de AWS CLI. En esta sección se proporciona información adicional sobre la opción --principal.

El valor de la opción --principal es uno de los siguientes:

  • Nombre de recurso de Amazon (ARN) para un usuario o rol de AWS Identity and Access Management (IAM)

  • ARN para un usuario o grupo que se autentica a través de un proveedor SAML, como Microsoft Active Directory Federation Service (AD FS)

  • ARN para un usuario o grupo de Amazon Quick Suite

  • Para los permisos entre cuentas, un ID de cuenta AWS, un ID de organización o un ID de unidad organizativa.

  • Para un usuario o grupo de IAM Identity Center, ARN de usuario o grupo de IAM Identity Center.

A continuación encontrará la sintaxis y ejemplos para todos los tipos de --principal.

La entidad principal es un usuario de IAM

Sintaxis:

--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/<user-name>

Ejemplo:

--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1
La entidad principal es un rol de IAM

Sintaxis:

--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/<role-name>

Ejemplo:

--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/workflowrole
La entidad principal es un usuario que se autentica a través de un proveedor SAML

Sintaxis:

--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:saml-provider/<SAMLproviderName>:user/<user-name>

Ejemplos:

--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:user/datalake_user1
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:user/athena-user@example.com
La entidad principal es un grupo que se autentica a través de un proveedor SAML

Sintaxis:

--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:saml-provider/<SAMLproviderName>:group/<group-name>

Ejemplos:

--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:group/data-scientists
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:group/my-group
La entidad principal es un usuario de Amazon Quick Suite Enterprise Edition

Sintaxis:

--principal DataLakePrincipalIdentifier=arn:aws:quicksight:<region>:<account-id>:user/<namespace>/<user-name>
nota

En <namespace>, debe especificar default.

Ejemplo:

--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:user/default/bi_user1
La entidad principal es un grupo de Amazon Quick Suite Enterprise Edition

Sintaxis:

--principal DataLakePrincipalIdentifier=arn:aws:quicksight:<region>:<account-id>:group/<namespace>/<group-name>
nota

En <namespace>, debe especificar default.

Ejemplo:

--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:group/default/data_scientists
La entidad principal es una cuenta AWS

Sintaxis:

--principal DataLakePrincipalIdentifier=<account-id>

Ejemplo:

--principal DataLakePrincipalIdentifier=111122223333
La entidad principal es una organización

Sintaxis:

--principal DataLakePrincipalIdentifier=arn:aws:organizations::<account-id>:organization/<organization-id>

Ejemplo:

--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl
La entidad principal es una unidad organizativa

Sintaxis:

--principal DataLakePrincipalIdentifier=arn:aws:organizations::<account-id>:ou/<organization-id>/<organizational-unit-id>

Ejemplo:

--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:ou/o-abcdefghijkl/ou-ab00-cdefghij
Entidad principal es un usuario o grupo de identidades de IAM Identity Center

Ejemplo:Usuario

--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::user/<UserID>

Ejemplo:Grupo:

--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::group/<GroupID>
Entidad principal es un grupo de IAM: IAMAllowedPrincipals

Lake Formation concede el permiso Super sobre todas las bases de datos y tablas del Catálogo de datos a un grupo llamado IAMAllowedPrincipals de forma predeterminada. Si este permiso de grupo existe en una base de datos o una tabla, todas las entidades principales de la cuenta tendrán acceso al recurso a través de políticas de entidad principal de IAM para AWS Glue. Proporciona compatibilidad retroactiva cuando se empiezan a utilizar permisos de Lake Formation para proteger recursos del Catálogo de datos que anteriormente estaban protegidos mediante políticas de IAM para AWS Glue.

Cuando se usa Lake Formation para administrar los permisos sobre los recursos del Catálogo de datos, primero es necesario revocar el permiso IAMAllowedPrincipals de los recursos, o bien inscribir las entidades principales y los recursos en el modo de acceso híbrido para que los permisos de Lake Formation funcionen.

Ejemplo:

--principal DataLakePrincipalIdentifier=IAM_Allowed_Principals
Entidad principal es un grupo de IAM: ALLIAMPrincipals

Al conceder permisos al grupo ALLIAMPrincipals en un recurso del Catálogo de datos, todas las entidades principales de la cuenta obtienen acceso al recurso del Catálogo de datos mediante permisos de Lake Formation y permisos de IAM.

Ejemplo:

--principal DataLakePrincipalIdentifier=123456789012:IAMPrincipals

Permisos de Lake Formation

Esta sección contiene los permisos disponibles de Lake Formation que puede conceder a las entidades principales.

ALTER

Permiso Concedido sobre este recurso El beneficiario también necesita
ALTER DATABASE glue:UpdateDatabase
ALTER TABLE glue:UpdateTable
ALTER LF-Tag lakeformation:UpdateLFTag

Una entidad principal con este permiso puede alterar los metadatos de una base de datos o tabla del Catálogo de datos. Para las tablas, puede cambiar el esquema de columnas y añadir parámetros de columna. No puede alterar las columnas de los datos subyacentes a los que apunta una tabla de metadatos.

Si la propiedad que se está modificando es una ubicación registrada de Amazon Simple Storage Service (Amazon S3), la entidad principal debe tener permisos de ubicación de datos en la nueva ubicación.

El siguiente ejemplo concede el permiso ALTER al usuario datalake_user1 sobre la base de datos retail en la cuenta AWS 1111-2222-3333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Database": {"Name":"retail"}}'

El siguiente ejemplo concede ALTER al usuario datalake_user1 en la tabla inventory de la base de datos retail.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'

CREATE_DATABASE

Permiso Concedido sobre este recurso El beneficiario también necesita
CREATE_DATABASE Data Catalog glue:CreateDatabase

Una entidad principal con este permiso puede crear una base de metadatos o un enlace de recursos en el Catálogo de datos. La entidad principal también puede crear tablas en la base de datos.

El ejemplo siguiente concede datalake_user1 al usuario AWS en la cuenta CREATE_DATABASE 1111-2222-3333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_DATABASE" --resource '{ "Catalog": {}}'

Cuando una entidad principal crea una base de datos en el Catálogo de datos, no se conceden permisos a los datos subyacentes. Se conceden los siguientes permisos adicionales para metadatos (junto con la posibilidad de conceder estos permisos a otros):

  • CREATE_TABLE en la base de datos

  • ALTERBase de datos de

  • DROPBase de datos de

Al crear una base de datos, la entidad principal puede especificar de forma opcional una ubicación de Amazon S3. Dependiendo de si la entidad principal tiene permisos de localización de datos, el permiso CREATE_DATABASE podría no ser suficiente para crear bases de datos en todos los casos. Es importante tener en cuenta los siguientes puntos.

Caso práctico de creación de una base de datos Permisos necesarios
La propiedad de ubicación no está especificada. CREATE_DATABASE es suficiente.
Se especifica la propiedad de ubicación, y la ubicación no está administrada por Lake Formation (no está registrada). CREATE_DATABASE es suficiente.
Se especifica la propiedad de ubicación, y la ubicación es administrada por Lake Formation (está registrada). Se requiere CREATE_DATABASE, además de permisos de localización de datos en la ubicación especificada.

CREATE_TABLE

Permiso Concedido sobre este recurso El beneficiario también necesita
CREATE_TABLE DATABASE glue:CreateTable

Una entidad principal con este permiso puede crear una tabla de metadatos o un enlace de recursos en el Catálogo de datos dentro de la base de datos especificada.

El siguiente ejemplo concede al usuario permiso retail para crear tablas en la base de datos datalake_user1 en la cuenta AWS 1111-2222-3333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'

Cuando una entidad principal crea una tabla en el Catálogo de datos, se le conceden todos los permisos de Lake Formation sobre la tabla, con la posibilidad de conceder estos permisos sobre otros.

Concesiones entre cuentas

Si una cuenta propietaria de una base de datos concede CREATE_TABLE a una cuenta de destinatario, y un usuario de la cuenta de destinatario crea con éxito una tabla en la base de datos de la cuenta propietaria, se aplican las siguientes reglas:

  • El usuario y los administradores del lago de datos de la cuenta de destinatario tienen todos los permisos de Lake Formation sobre la tabla. Pueden conceder permisos sobre la tabla a otras entidades principales de su cuenta. No pueden conceder permisos a entidades principales en la cuenta del propietario ni en ninguna otra cuenta.

  • Los administradores del lago de datos de la cuenta del propietario pueden conceder permisos sobre la tabla a otras entidades principales de su cuenta.

Permisos de ubicación de datos

Cuando intente crear una tabla que apunte a una ubicación de Amazon S3, dependiendo de si dispone de permisos de ubicación de datos, es posible que el permiso CREATE_TABLE no sea suficiente para crear una tabla. Es importante tener en cuenta los tres casos siguientes.

Caso práctico de creación de tablas Permisos necesarios
Lake Formation no administra la ubicación especificada (no está registrada). CREATE_TABLE es suficiente.
Lake Formation administra la ubicación especificada (está registrada), y la base de datos que la contiene no tiene propiedad de ubicación o tiene una propiedad de ubicación que no es un prefijo de Amazon S3 de la ubicación de la tabla. Se requiere CREATE_TABLE, además de permisos de localización de datos en la ubicación especificada.
Lake Formation administra la ubicación especificada (está registrada), y la base de datos contenedora tiene una propiedad de ubicación que apunta a una ubicación que está registrada y es un prefijo de Amazon S3 de la ubicación de la tabla. CREATE_TABLE es suficiente.

DATA_LOCATION_ACCESS

Permiso Concedido sobre este recurso El beneficiario también necesita
DATA_LOCATION_ACCESS Ubicación de Amazon S3 (Permisos de Amazon S3 en la ubicación, que deben especificarse en el rol utilizado para registrar la ubicación).

Este es el único permiso de ubicación de datos. Una entidad principal con este permiso puede crear una base de datos o tabla de metadatos que apunte a la ubicación de Amazon S3 especificada. La ubicación debe estar registrada. Una entidad principal que tiene permisos de localización de datos en una localización también tiene permisos de localización en las localizaciones secundarias.

El siguiente ejemplo concede permisos de ubicación de datos en s3://products/retail al usuario datalake_user1 en la cuenta de AWS 1111-2222-3333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"ResourceArn":"arn:aws:s3:::products/retail"}}'

DATA_LOCATION_ACCESS no es necesario para consultar o actualizar los datos subyacentes. Este permiso se aplica únicamente a la creación de recursos del Catálogo de datos.

Para obtener más información sobre permisos de ubicación de datos, consulte Underlying data access control.

DELETE

Permiso Concedido sobre este recurso El beneficiario también necesita
DELETE TABLE (No se necesitan permisos de IAM adicionales si la ubicación está registrada).

Una entidad principal con este permiso puede insertar, actualizar y leer datos subyacentes en la ubicación de Amazon S3 especificada por la tabla. La entidad principal también puede ver la tabla en la consola de Lake Formation y recuperar información sobre la tabla con la API AWS Glue.

El ejemplo siguiente concede el permiso DELETE al usuario datalake_user1 en la tabla inventory de la base de datos retail en la cuenta AWS 1111-2222-3333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DELETE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'

Este permiso se aplica solo a los datos de Amazon S3 y no a los de otros almacenes de datos como Amazon Relational Database Service (Amazon RDS).

DESCRIBE

Permiso Concedido sobre este recurso El beneficiario también necesita
DESCRIBE

Enlace de recurso a tabla

Enlace de recurso a base de datos

glue:GetTable

glue:GetDatabase

DESCRIBE DATABASE glue:GetDatabase
DESCRIBE TABLE glue:GetTable
DESCRIBE LF-Tag

glue:GetTable

glue:GetDatabase

lakeformation:GetResourceLFTags

lakeformation:ListLFTags

lakeformation:GetLFTag

lakeformation:SearchTablesByLFTags

lakeformation:SearchDatabasesByLFTags

Una entidad principal con este permiso puede ver la base de datos, tabla o enlace de recursos especificados. No se concede implícitamente ningún otro permiso del Catálogo de datos ni ningún permiso de acceso a los datos. Las bases de datos y las tablas aparecen en los editores de consultas de los servicios integrados, pero no se puede consultar en ellas salvo que se concedan otros permisos de Lake Formation (por ejemplo, SELECT).

Por ejemplo, un usuario que tiene DESCRIBE en una base de datos puede ver la base de datos y todos los metadatos de la base de datos (descripción, ubicación, etc.). Sin embargo, el usuario no puede averiguar qué tablas contiene la base de datos y no puede eliminar, modificar o crear tablas en la base de datos. Del mismo modo, un usuario que tiene DESCRIBE en una tabla puede ver la tabla y los metadatos de la tabla (descripción, esquema, ubicación, etc.), pero no puede soltar, alterar o ejecutar consultas contra la tabla.

A continuación se detallan algunas normas adicionales para DESCRIBE:

  • Si un usuario tiene otros permisos de Lake Formation sobre una base de datos, tabla o enlace de recursos, DESCRIBE se le concede implícitamente.

  • Si un usuario tiene SELECT solo en un subconjunto de columnas de una tabla (SELECT parcial), el usuario estará restringido a ver solo esas columnas.

  • No puede conceder DESCRIBE a un usuario que tiene selección parcial en una tabla. Por el contrario, no puede especificar listas de inclusión o exclusión de columnas para las tablas sobre las que se concede DESCRIBE.

El ejemplo siguiente concede el permiso DESCRIBE al usuario datalake_user1 en la tabla inventory-link de la base de datos retail en la cuenta AWS 1111-2222-3333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'

DROP

Permiso Concedido sobre este recurso El beneficiario también necesita
DROP DATABASE glue:DeleteDatabase
DROP TABLE glue:DeleteTable
DROP LF-Tag lakeformation:DeleteLFTag
DROP

Enlace de recurso a base de datos

Enlace de recurso a tabla

glue:DeleteDatabase

glue:DeleteTable

Una entidad principal con este permiso puede borrar una base de datos, tabla o enlace de recurso en el Catálogo de datos. No puede conceder el permiso DROP en una base de datos a una cuenta u organización externa.

aviso

Al eliminar una base de datos se eliminan todas sus tablas.

El siguiente ejemplo concede el permiso DROP al usuario datalake_user1 en la base de datos retail en la cuenta AWS 1111-2222-3333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Database": {"Name":"retail"}}'

El siguiente ejemplo concede DROP al usuario datalake_user1 sobre la tabla inventory en la base de datos retail.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'

El siguiente ejemplo concede DROP al usuario datalake_user1 sobre el enlace de recursos de tabla inventory-link en la base de datos retail.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'

INSERT

Permiso Concedido sobre este recurso El beneficiario también necesita
INSERT TABLE (No se necesitan permisos de IAM adicionales si la ubicación está registrada).

Una entidad principal con este permiso puede insertar, actualizar y leer datos subyacentes en la ubicación de Amazon S3 especificada por la tabla. La entidad principal también puede ver la tabla en la consola de Lake Formation y recuperar información sobre la tabla con la API AWS Glue.

El ejemplo siguiente concede el permiso INSERT al usuario datalake_user1 en la tabla inventory de la base de datos retail en la cuenta AWS 1111-2222-3333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "INSERT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'

Este permiso se aplica únicamente a los datos de Amazon S3 y no a los datos de otros almacenes de datos, como Amazon RDS.

SELECT

Permiso Concedido sobre este recurso El beneficiario también necesita
SELECT
  • TABLE

(No se necesitan permisos de IAM adicionales si la ubicación está registrada).

Una entidad principal con este permiso puede ver una tabla en el Catálogo de datos y consultar los datos subyacentes en Amazon S3 en la ubicación especificada por la tabla. La entidad principal puede ver la tabla en la consola de Lake Formation y recuperar información sobre la tabla con la API AWS Glue. Si se aplicó el filtrado por columnas cuando se concedió este permiso, la entidad principal puede ver los metadatos solo de las columnas incluidas y consultar los datos solo de las columnas incluidas.

nota

Es responsabilidad del servicio de análisis integrado aplicar el filtrado de columnas al procesar una consulta.

El ejemplo siguiente concede el permiso SELECT al usuario datalake_user1 en la tabla inventory de la base de datos retail en la cuenta AWS 1111-2222-3333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'

Este permiso se aplica únicamente a los datos de Amazon S3 y no a los datos de otros almacenes de datos, como Amazon RDS.

Puede filtrar (restringir el acceso a) columnas específicas con una lista de inclusión opcional o una lista de exclusión. Una lista de inclusión especifica las columnas a las que se puede acceder. Una lista de exclusión especifica las columnas a las que no se puede acceder. En ausencia de una lista de inclusión o exclusión, todas las columnas de la tabla son accesibles.

Los resultados de glue:GetTable devuelven solo las columnas que la persona que llama tiene permiso para ver. Los servicios integrados como Amazon Athena y Amazon Redshift respetan las listas de inclusión y exclusión de columnas.

El ejemplo siguiente concede SELECT al usuario datalake_user1 sobre la tabla inventory utilizando una lista de inclusión.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnNames": ["prodcode","location","period","withdrawals"]}}'

El ejemplo siguiente concede SELECT en la tabla inventory utilizando una lista de exclusión.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnWildcard": {"ExcludedColumnNames": ["intkey", "prodcode"]}}}'

Se aplican las siguientes restricciones al permiso SELECT:

  • Al conceder SELECT, no puede incluir la opción de concesión si se aplica el filtrado por columnas.

  • No puede restringir el control de acceso en columnas que son claves de partición.

  • A una entidad principal con el permiso SELECT sobre un subconjunto de columnas de una tabla no se le puede conceder el permiso ALTER, DROP, DELETE o INSERT sobre esa tabla. Del mismo modo, a una entidad principal con el permiso ALTER, DROP, DELETE, o INSERT en una tabla no se le puede conceder el permiso SELECT con el filtrado de columnas.

El permiso SELECT siempre aparece en la página Permisos de datos de la consola de Lake Formation como una fila separada. En la imagen siguiente se muestra que SELECT se concede a los usuarios datalake_user2 y datalake_user3 en todas las columnas de la tabla inventory.

La página de permisos de datos muestra cuatro filas. La primera fila contiene los permisos Eliminar e Insertar con el tipo de recurso Tabla con el recurso mostrado como inventory, y la segunda y cuarta filas muestran el permiso Seleccionar con el tipo de recurso Columna, y con el recurso mostrado como retail.inventory.*.

Super

Permiso Concedido sobre este recurso El beneficiario también necesita
Super DATABASE glue:*Database*
Super TABLE glue:*Table*, glue:*Partition*

Este permiso permite a una entidad principal efectuar todas las operaciones compatibles con Lake Formation en la base de datos o en la tabla. No puede conceder Super en una base de datos a una cuenta externa.

Este permiso puede coexistir con los demás permisos de Lake Formation. Por ejemplo, puede conceder los permisos Super, SELECT y INSERT sobre una tabla de metadatos. La entidad principal puede entonces efectuar todas las operaciones admitidas en la tabla. Cuando revoca Super, los permisos SELECT y INSERT permanecen, y la entidad principal solo puede efectuar las operaciones de selección e inserción.

En lugar de conceder Super a una entidad principal individual, puede concederla al grupo IAMAllowedPrincipals. El grupo IAMAllowedPrincipals se crea automáticamente e incluye a todos los usuarios y roles de IAM a los que sus políticas de IAM permiten el acceso a los recursos de su Catálogo de datos. Cuando se concede Super a IAMAllowedPrincipals para un recurso del Catálogo de datos, el acceso al recurso queda efectivamente controlado únicamente por las políticas de IAM.

Puede hacer que se conceda automáticamente el permiso Super a IAMAllowedPrincipals para los nuevos recursos del catálogo aprovechando las opciones de la página Configuración de la consola de Lake Formation.

El cuadro de diálogo Configuración del Catálogo de datos tiene el subtítulo "Permisos predeterminados para bases de datos y tablas recién creadas" y cuenta con dos casillas de verificación, que se describen en el texto.
  • Para conceder Super a IAMAllowedPrincipals para todas las bases de datos nuevas, seleccione Usar solo control de acceso IAM para bases de datos nuevas.

  • Para conceder Super a IAMAllowedPrincipals para todas las tablas nuevas en bases de datos nuevas, seleccione Usar solo control de acceso IAM para tablas nuevas en bases de datos nuevas.

    nota

    Esta opción hace que se marque de manera predeterminada la casilla Utilizar sólo el control de acceso IAM para las nuevas tablas de esta base de datos en el cuadro de diálogo Crear base de datos. No hace nada más que eso. Es la casilla de verificación del cuadro de diálogo Crear base de datos que permite la concesión de Super a IAMAllowedPrincipals.

Estas opciones de la página Configuración están habilitadas de forma predeterminada. Para obtener más información, consulte los siguientes temas:

SUPER_USER

Permiso Concedido sobre este recurso El beneficiario también necesita
Super user Catalog glue:GetCatalog

Puede conceder el permiso Super user solo a entidades principales específicas sobre los catálogos del Catálogo de datos predeterminado. No puede conceder permisos Super user sobre el catálogo predeterminado ni sobre otros tipos de recursos, como bases de datos y tablas, ni a entidades principales de cuentas externas. El permiso Super user permite a una entidad principal efectuar todas las operaciones compatibles con Lake Formation en las bases de datos y tablas incluidas en el catálogo concedido.

Con el permiso Super user, la entidad principal (beneficiario) puede realizar las siguientes acciones en los recursos (catálogos, bases de datos y tablas) del catálogo:

  • Permisos CREATE_DATABASE y DESCRIBE en el catálogo.

  • Permisos DROP, ALTER, CREATE_TABLE y DESCRIBE (en efecto, SUPER) en todas las bases de datos del catálogo.

  • Permisos DROP, ALTER, DESCRIBE, SELECT, INSERT y DELETE (en efecto, SUPER) en todas las tablas de todas las bases de datos del catálogo.

  • Permisos All (en efecto, SUPER) en los catálogos incluidos en el catálogo.

  • Permisos concesibles (la posibilidad de conceder estos permisos a otras entidades principales) en todos los catálogos, bases de datos y tablas del catálogo.

Con el permiso Super user en un recurso del catálogo, el beneficiario no puede realizar ni delegar las acciones ALTER y DROP en el catálogo.

ASSOCIATE

Permiso Concedido sobre este recurso El beneficiario también necesita
ASSOCIATE LF-Tag

glue:GetDatabase

glue:GetTable

lakeformation:AddLFTagsToResource"

lakeformation:RemoveLFTagsFromResource"

lakeformation:GetResourceLFTags

lakeformation:ListLFTags

lakeformation:GetLFTag

lakeformation:SearchTablesByLFTags

lakeformation:SearchDatabasesByLFTags

Una entidad principal con este permiso en una etiqueta LF puede asignar esta a un recurso del Catálogo de datos. Al conceder ASSOCIATE está otorgando DESCRIBE de manera implícita.

En este ejemplo se concede al usuario datalake_user1 el permiso ASSOCIATE sobre las etiquetas LF con la clave module. Concede permisos para ver y asignar todos los valores de esa clave, como indica el asterisco (*).

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'