Compartir un lago de datos utilizando el control de acceso específico de Lake Formation - AWS Lake Formation

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.

Compartir un lago de datos utilizando el control de acceso específico de Lake Formation

Este tutorial proporciona step-by-step instrucciones sobre cómo puede compartir rápida y fácilmente conjuntos de datos con Lake Formation al administrar varios Cuentas de AWS con AWS Organizations. La definición de permisos específicos sirve para controlar el acceso a datos confidenciales.

Los siguientes procedimientos también muestran cómo un administrador del lago de datos de la Cuenta A puede proporcionar acceso específico para la Cuenta B, y cómo un usuario de la Cuenta B, actuando como administrador de datos, puede conceder acceso específico a la tabla compartida para otros usuarios de su cuenta. Los administradores de datos de cada cuenta pueden delegar el acceso de forma independiente a sus propios usuarios, lo que da autonomía a cada equipo o línea de negocio (LOB).

El caso de uso supone que está utilizando AWS Organizations para administrar su Cuentas de AWS. El usuario de la cuenta A en una unidad organizativa (OU1) concede acceso a los usuarios de la cuenta B enOU2. Puede utilizar el mismo enfoque cuando no utilice organizaciones, como cuando solo tiene unas pocas cuentas. El siguiente diagrama ilustra el control de acceso específico de los conjuntos de datos en un lago de datos. El lago de datos está disponible en la Cuenta A. El administrador del lago de datos de la Cuenta A proporciona acceso específico para la Cuenta B. El diagrama también muestra que un usuario de la Cuenta B proporciona acceso a nivel de columna de la tabla del lago de datos de la Cuenta A a otro usuario de la Cuenta B.

AWS Organization structure with two OUs, showing data lake access and user permissions across accounts.

Destinatarios previstos

Este tutorial está dirigido a administradores de datos, ingenieros de datos y analistas de datos. La tabla siguiente enumera los roles que se utilizan en este tutorial:

Rol Descripción
IAMadministrador Usuario que tiene la política administrada de AWS : AdministratorAccess.
Administrador de lago de datos

Usuario que tiene la política AWS AWSLakeFormationDataAdmin gestionada: adjunto al rol.

Analista de datos Usuario que tiene la política AWS gestionada: AmazonAthenaFullAccess adjunto.

Requisitos previos

Antes de comenzar este tutorial, debe tener una Cuenta de AWS que pueda usar para iniciar sesión como usuario administrativo con los permisos correctos. Para obtener más información, consulte Complete las tareas AWS de configuración iniciales.

En el tutorial se da por sentado que ya está familiarizadoIAM. Para obtener información al respectoIAM, consulte la Guía IAM del usuario.

Para este tutorial, necesita los siguientes recursos:
  • Dos unidades organizativas:

    • OU1— Contiene la cuenta A

    • OU2— Contiene la cuenta B

  • Una ubicación (bucket) del lago de datos de Amazon S3 en la Cuenta A.

  • Un usuario administrador de lagos de datos en la cuenta A. Puede crear un administrador de lagos de datos mediante la consola de Lake Formation (https://console.aws.amazon.com/lakeformation/) o el PutDataLakeSettings funcionamiento de Lake FormationAPI.

  • Lake Formation configurado en la Cuenta A, y la ubicación del lago de datos de Amazon S3 registrada con Lake Formation en la Cuenta A.

  • Dos usuarios en la cuenta B con las siguientes políticas IAM administradas:

    • testuser1: tiene adjuntas las políticas AWS AWSLakeFormationDataAdmin administradas.

    • testuser2: tiene la política gestionada adjunta. AWS AmazonAthenaFullAccess

  • Una base de datos testdb en la base de datos Lake Formation para la Cuenta B.

Paso 1: Proporcionar acceso específico a otra cuenta

Conozca cómo un administrador del lago de datos de la Cuenta A proporciona acceso específico a la Cuenta B.

Conceder acceso específico a otra cuenta
  1. Inicie sesión AWS Management Console https://console.aws.amazon.com/connect/en la cuenta A como administrador de un lago de datos.

  2. Abre la consola de Lake Formation (https://console.aws.amazon.com/lakeformation/) y selecciona Comenzar.

  3. en el panel de navegación, elija Bases de datos.

  4. Elija Create database (Crear base de datos).

  5. En la sección de detalles de la base de datos, seleccione Base de datos.

  6. En Nombre, introduzca un nombre (para este tutorial, utilizamos sampledb01).

  7. Asegúrese de que no esté seleccionada la opción Usar solo el control de IAM acceso para las nuevas tablas de esta base de datos. Si se deja sin seleccionar, podremos controlar el acceso desde Lake Formation.

  8. Elija Crear base de datos.

  9. En la página Bases de datos, elija su base de datos sampledb01.

  10. En el menú Acciones, elija Conceder.

  11. En la sección Conceder permisos, seleccione Cuenta externa.

  12. En el Cuenta de AWS campo ID o ID de AWS organización, introduzca el ID de cuenta de la cuenta B enOU2.

  13. Para Tabla, elija la tabla a la que desea que tenga acceso la Cuenta B (para este post, utilizamos la tabla acc_a_area). De forma opcional, puede conceder acceso a columnas dentro de la tabla, como hacemos en esta publicación.

  14. En Incluir columnas¸ elija las columnas a las que desea que tenga acceso la Cuenta B (para este post, concedemos permisos a tipo, nombre e identificadores).

  15. En Columnas, seleccione Incluir columnas.

  16. En Permisos de tabla, elija Seleccionar.

  17. En Permisos concedibles, elija Seleccionar. Los permisos concedibles son necesarios para que los usuarios administradores de la Cuenta B puedan conceder permisos a otros usuarios de la Cuenta B.

  18. Elija Conceder.

  19. En el panel de navegación, elija Tablas.

  20. Puedes ver una conexión activa en la sección Cuentas de AWS y AWS organizaciones con acceso.

Crear un recurso compartido

Los servicios integrados como Amazon Athena no pueden acceder directamente a las bases de datos o tablas de las cuentas. Por consiguiente, debe crear un enlace de recursos para que Athena pueda acceder a los enlaces de recursos de su cuenta a bases de datos y tablas de otras cuentas. Cree un enlace de recursos a la tabla (acc_a_area) para que los usuarios de la Cuenta B puedan consultar sus datos con Athena.

  1. Inicia sesión en la AWS consola https://console.aws.amazon.com/connect/en la cuenta B comotestuser1.

  2. En la consola de Lake Formation (https://console.aws.amazon.com/lakeformation/), en el panel de navegación, elija Tablas. Debería ver las tablas a las que la Cuenta A ha proporcionado acceso.

  3. Elija la tabla acc_a_area.

  4. En el menú Acciones, elija Crear enlace de recursos.

  5. En Nombre del enlace de recursos, introduzca un nombre (para este tutorial, acc_a_area_rl).

  6. En Base de datos, elija su base de datos (testdb).

  7. Seleccione Crear.

  8. En el panel de navegación, elija Tablas.

  9. Elija la tabla acc_b_area_rl.

  10. En el menú Acciones, seleccione Ver datos.

    Se le redirige a la consola de Athena, donde debería ver la base de datos y la tabla.

    Ahora puede ejecutar una consulta en la tabla para ver el valor de la columna para la que se proporcionó acceso a testuser1 desde la Cuenta B.

Paso 2: Proporcionar acceso específico a un usuario de la misma cuenta

Esta sección muestra cómo un usuario de la cuenta B (testuser1), que actúa como administrador de datos, proporciona acceso específico a otro usuario de la misma cuenta (testuser2) al nombre de la columna de la tabla compartida aac_b_area_rl.

Conceder acceso específico a un usuario de la misma cuenta
  1. Inicie sesión en la AWS consola https://console.aws.amazon.com/connect/en la cuenta B comotestuser1.

  2. En la consola de Lake Formation, en el panel de navegación, seleccione Tablas.

    Puede conceder permisos sobre una tabla a través de su enlace de recursos. Para ello, en la página Tablas, seleccione el enlace del recurso acc_b_area_rl, y en el menú Acciones, elija Conceder en destino.

  3. En la sección Conceder permisos, seleccione Mi cuenta.

  4. Para IAMlos usuarios y los roles, elija el usuariotestuser2.

  5. En Columna, elija el nombre de la columna.

  6. En Permisos de tabla, elija Seleccionar.

  7. Elija Conceder.

    Cuando cree un enlace de recursos, solo podrá verlo y acceder a él el usuario. Para permitir que otros usuarios de su cuenta accedan al enlace de recursos, debe conceder permisos sobre el propio enlace de recursos. Necesita conceder nuestros DESCRIBEDROPpermisos. En la página Tablas, vuelva a seleccionar la tabla y, en el menú Acciones, Conceder.

  8. En la sección Conceder permisos, seleccione Mi cuenta.

  9. Para IAMlos usuarios y los roles, seleccione el usuariotestuser2.

  10. En Permisos de enlace de recursos¸ seleccione Describir.

  11. Elija Conceder.

  12. Inicie sesión en la AWS consola de la cuenta B comotestuser2.

    En la consola de Athena (https://console.aws.amazon.com/athena/), debería ver la base de datos y la tabla. acc_b_area_rl Ahora puede ejecutar una consulta en la tabla para consultar el valor de la columna a la que testuser2 tiene acceso.