Administración del acceso a una tabla o base de datos con Lake Formation - Amazon Simple Storage Service

Administración del acceso a una tabla o base de datos con Lake Formation

Una vez que los buckets de tablas están integrados con los servicios de análisis de AWS, Lake Formation administra el acceso a los recursos de tabla. Lake Formation utiliza un modelo propio de permisos (permisos de Lake Formation) que permite un control de acceso pormenorizado a los recursos del Catálogo de datos. Lake Formation requiere que cada entidad principal (usuario o rol) de IAM esté autorizada para ejecutar acciones sobre los recursos administrados por Lake Formation. Para obtener más información, consulte Descripción general de permisos de Lake Formation en la Guía para desarrolladores de AWS Lake Formation. Para obtener información acerca del uso compartido de datos entre cuentas, consulte Uso compartido de datos entre cuentas en Lake Formation en la Guía para desarrolladores de AWS Lake Formation.

Para que las entidades principales de IAM puedan acceder a las tablas en los servicios de análisis de AWS, debe concederles permisos de Lake Formation sobre esos recursos.

nota

Si es el usuario que realizó la integración de los buckets de tabla, ya dispone de permisos de Lake Formation sobre las tablas. Si es la única entidad principal que va a acceder a las tablas, puede omitir este paso. Solo necesita conceder permisos de Lake Formation sobre las tablas a otras entidades principales de IAM. Esto permite que otras entidades principales accedan a la tabla al ejecutar consultas. Para obtener más información, consulte Concesión del permiso de Lake Formation sobre una tabla o base de datos.

Debe conceder a las otras entidades principales de IAM permisos de Lake Formation sobre los recursos de tabla para trabajar con ellos en los siguientes servicios:

  • Amazon Redshift

  • Amazon Data Firehose

  • Amazon QuickSight

  • Amazon Athena

Concesión del permiso de Lake Formation sobre una tabla o base de datos

Puede conceder a una entidad principal permisos de Lake Formation sobre una tabla o base de datos de un bucket de tablas, ya sea a través de la consola de Lake Formation o de la AWS CLI.

nota

Al conceder permisos de Lake Formation sobre un recurso del Catálogo de datos a una cuenta externa o directamente a una entidad principal de IAM de otra cuenta, Lake Formation utiliza el servicio AWS Resource Access Manager (AWS RAM) para compartir el recurso. Si la cuenta del beneficiario está en la misma organización que la cuenta del concedente, el recurso compartido estará disponible inmediatamente para el beneficiario. Si la cuenta del beneficiario no pertenece a la misma organización, AWS RAM envía una invitación a la cuenta del beneficiario para que acepte o rechace la concesión del recurso. Luego, para que el recurso compartido esté disponible, el administrador del lago de datos de la cuenta del beneficiario debe usar la consola de AWS RAM o la AWS CLI para aceptar la invitación. Para obtener más información acerca del uso compartido de datos entre cuentas, consulte Uso compartido de datos entre cuentas en Lake Formation en la Guía para desarrolladores de AWS Lake Formation.

Console
  1. Abra la consola de AWS Lake Formation en https://console.aws.amazon.com/lakeformation/ e inicie sesión como administrador del lago de datos. Para obtener más información sobre cómo crear un administrador de lago de datos, consulte Creación de un administrador de lago de datos en la Guía para desarrolladores de AWS Lake Formation.

  2. En el panel de navegación, elija Permisos de datos y, a continuación, seleccione Conceder.

  3. En la página Conceder permisos, en Entidades principales, realice una de las siguientes acciones:

    • En el caso de Amazon Athena o Amazon Redshift, elija Usuarios y roles de IAM y, a continuación, seleccione la entidad principal de IAM que utilice para consultas.

    • En el caso de Amazon Data Firehose, elija Usuarios y roles de IAM y seleccione el rol de servicio que creó para el streaming a tablas.

    • En el caso de QuickSight, elija Usuarios y grupos de SAML e ingrese el nombre de recurso de Amazon (ARN) del usuario administrador de QuickSight.

    • Para el acceso al punto de conexión de Iceberg REST de AWS Glue, elija Usuarios y roles de IAM y, a continuación, seleccione el rol de IAM que creó para el cliente. Para obtener más información, consulte Crear un rol de IAM para el cliente

  4. En Etiquetas LF o recursos de catálogo, elija Recursos de catálogo de datos con nombre.

  5. En Catálogos, elija el subcatálogo que creó al integrar el bucket de tablas; por ejemplo, account-id:s3tablescatalog/amzn-s3-demo-bucket.

  6. En Bases de datos, elija el espacio de nombres del bucket de tablas de S3 que creó.

  7. (Opcional) En Tablas, elija la tabla de S3 que creó en el bucket de tablas.

    nota

    Si va a crear una tabla nueva en el editor de consultas de Athena, no seleccione ninguna tabla.

  8. Realice una de las siguientes acciones:

    • Si especificó una tabla en el paso anterior, en Permisos de tabla, elija Super.

    • Si no especificó una tabla en el paso anterior, vaya a Permisos de base de datos. Para compartir datos entre cuentas, no puede elegir Super para conceder a la otra entidad principal todos los permisos sobre la base de datos. En su lugar, elija permisos más detallados, como Describir.

  9. Elija Conceder.

CLI
  1. Asegúrese de que ejecuta el siguiente comando de la AWS CLI como administrador del lago de datos. Para obtener más información, consulte Creación de un administrador de lago de datos en la Guía para desarrolladores de AWS Lake Formation.

  2. Ejecute el siguiente comando para conceder permisos de Lake Formation en la tabla del bucket de tablas de S3 a una entidad principal de IAM para acceder a la tabla. Para utilizar este ejemplo, reemplace los user input placeholders con su propia información.

    aws lakeformation grant-permissions \ --region us-east-1 \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role" }, "Resource": { "Table": { "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket", "DatabaseName": "S3 table bucket namespace, for example, test_namespace", "Name": "S3 table bucket table name, for example test_table" } }, "Permissions": [ "ALL" ] }'