Saltar al contenido

¿Cómo comparto las bases de datos y tablas del catálogo de datos de AWS Glue entre cuentas mediante AWS Lake Formation?

9 minutos de lectura
0

Quiero usar AWS Lake Formation para compartir las bases de datos y tablas del catálogo de datos de AWS Glue en todas las cuentas de AWS.

Resolución

Con la característica entre cuentas de Lake Formation, puede conceder acceso a otras cuentas de AWS para escribir y compartir datos desde o hacia el lago de datos. Los recursos se pueden compartir mediante un control de acceso basado en etiquetas o mediante recursos con nombre.

Para usar el uso compartido entre cuentas, usa uno de los siguientes enfoques:

  • Modo de acceso híbrido
  • Modo de permisos de Lake Formation predeterminado de AWS Identity and Access Management (IAM)

Requisitos previos:

Nota: Para usar el modo de acceso híbrido o el modo de permisos predeterminado de IAM Lake Formation, debes compartir tu base de datos y tus tablas con la cuenta de destino ajena a tu organización. Cuando compartes todas las tablas de la cuenta de origen, las tablas nuevas que crees en la cuenta de origen se comparten automáticamente con la cuenta de destino.

Modo de acceso híbrido

En la cuenta de origen, completa las siguientes tareas.

Registro de la ubicación de Amazon S3 con el modo de acceso híbrido

Sigue estos pasos:

  1. Abre la consola de Lake Formation e inicia sesión como administrador de un lago de datos.
  2. En el panel de navegación, en Administration (Administración), selecciona Data lake locations (Ubicaciones del lago de datos).
  3. En la página de ubicaciones del lago de datos, selecciona Register location (Registrar ubicación).
  4. En la página Registrar ubicación, introduce la siguiente información:
    Para la ubicación de Amazon S3, indica la ubicación de Amazon Simple Storage Service (Amazon S3) de tu base de datos y tablas.
    Para el rol de IAM, proporciona un rol de AWS Identity and Access Management (IAM) que pueda acceder a los datos en la ubicación de Amazon S3. Para obtener más información sobre este requisito de rol, consulta Requisitos de los roles utilizados para registrar ubicaciones.
    En Permission mode (Modo permiso), selecciona Hybrid access mode (Modo de acceso híbrido).
  5. Selecciona Register location (Registrar ubicación).

Después de registrar la ubicación de Amazon S3, revisa la información de ubicación del lago de datos. Comprueba que el modo de permisos sea el modo de acceso híbrido.

Cómo otorgar permisos multicuenta para la base de datos y la tabla

Sigue estos pasos:

  1. Abre la consola de Lake Formation e inicia sesión como administrador de un lago de datos.
  2. En el panel de navegación, selecciona Database (Base de datos) y, a continuación, selecciona la base de datos.
  3. Selecciona Actions (Acciones) y, a continuación, Grant (Conceder).
  4. En la pantalla Grant permissions (Otorgar permisos), en Principals (Entidades principales), selecciona External account (Cuenta externa).
  5. En AWS accound ID (ID de la cuenta de AWS) o AWS organization ID (ID de la organización de AWS), introduce el ID de la cuenta de destino.
  6. En el modo de acceso híbrido, selecciona Make Lake Formation permissions effective immediately (Hacer que los permisos de Lake Formation entren en vigor de inmediato).
  7. Selecciona Grant (Conceder).
  8. Para conceder permisos multicuenta para la tabla, repite los pasos anteriores. Asegúrate de seleccionar la opción All tables (Todas las tablas) o Specific table (Tabla específica).

Nota: Esta configuración habilita las funciones de administrador de Lake Formation de la cuenta de consumidor para usar los permisos de Lake Formation. Esta actualización no interrumpe el acceso a IAM y S3 de la cuenta del consumidor para la misma base de datos. Este uso compartido no revoca el acceso al grupo IAMAllowedPrincipal.

Modo de permisos predeterminado de IAM Lake Formation

En la cuenta de origen, completa las siguientes tareas.

Uso compartido de una base de datos y sus tablas con la cuenta de destino

Sigue estos pasos:

  1. Abre la consola de Lake Formation e inicia sesión como administrador de un lago de datos.
  2. En el panel de navegación, selecciona Database (Base de datos) y, a continuación, selecciona la base de datos.
  3. Selecciona Actions (Acciones) y, a continuación, Grant (Conceder).
  4. En la pantalla Grant permissions (Otorgar permisos), en Principals (Entidades principales), selecciona External account (Cuenta externa).
  5. En AWS accound ID (ID de la cuenta de AWS) o AWS organization ID (ID de la organización de AWS), introduce el ID de la cuenta de destino.
  6. En Table (Tabla), selecciona All tables (Todas las tablas).
  7. En Table permissions (Permisos de la tabla) y Grantable (Permisos que se pueden conceder), selecciona los permisos de acceso que desees conceder.
  8. Selecciona Grant (Conceder).

Configuración de recursos

Para la cuenta de destino, el proceso es el mismo para el modo híbrido y para el modo de permisos predeterminado de IAM Lake Formation para las siguientes configuraciones:

  • Aceptación de recursos compartidos
  • Concesión de permisos a usuarios o roles de IAM
  • Creación de enlaces de recursos

Para configurar los recursos, sigue estos pasos:

  1. Acepta los recursos que se comparten contigo. Para obtener más información, consulta Acceder a los recursos de AWS compartidos contigo.
  2. Crea un enlace de recursos a una base de datos de catálogo de datos compartida. Para obtener más información sobre los enlaces de recursos, consulta Cómo crear enlaces de recursos.
  3. Otorga a los usuarios o entidades principales de IAM los permisos necesarios para el enlace de recursos y la base de datos compartida.

Nota: Los usuarios de IAM también pueden ver la base de datos y el enlace del recurso en tu consola de Amazon Athena o Amazon Redshift Spectrum. Los usuarios y entidades principales de IAM de la cuenta de destino deben tener acceso a la ruta de Amazon S3 en la cuenta de origen.

Para conceder acceso a los usuarios de IAM a las bases de datos compartidas, haz lo siguiente:

  1. Abre la consola de Lake Formation e inicia sesión como administrador de un lago de datos.
  2. En el panel de navegación, selecciona Databases (Bases de datos).
  3. Selecciona la base de datos compartida.
  4. Selecciona Actions (Acciones) y, a continuación, Grant (Conceder).
  5. En Principals (Entidades principales), selecciona IAM users and roles (Usuarios y roles de IAM). A continuación, selecciona el usuario o entidad principal de IAM al que quieras conceder permisos de acceso.
  6. En Database permissions (Permisos de la base de datos), selecciona Describe (Describir).
  7. Selecciona Grant (Conceder).

Nota: Este paso proporciona los permisos mínimos para que los usuarios vean la base de datos compartida.

Para conceder acceso a todas las tablas o a tablas específicas de la base de datos, selecciona la opción All tables (Todas las tablas):

  1. En All tables (Todas las tablas), selecciona el enlace del recurso.
  2. Selecciona Actions (Acciones) y, a continuación, Grant (Conceder).
  3. Selecciona IAM users and roles (Usuarios y roles de IAM). A continuación, selecciona el usuario o entidad principal de IAM al que quieras conceder permisos de acceso.
  4. En LF-Tags or catalog resources (Etiquetas LF o recursos del catálogo), haz lo siguiente:
    Para conceder acceso a todas las tablas de la base de datos, en Tables - optional (Tablas: opcional), selecciona All tables (Todas las tablas).
    Para conceder acceso solo a tablas específicas de la base de datos, en Tables - optional (Tablas: opcional), selecciona las tablas.
  5. En Table permissions (Permisos de tabla) y Grantable (Permisos que se pueden conceder), selecciona Select (Seleccionar) y, a continuación, selecciona Describe (Describir).
  6. Selecciona Grant (Conceder).

Nota: Solo puedes conceder los permisos que hayas seleccionado para en Grantable permissions (Permisos que se pueden conceder) en la cuenta de origen.

Tras conceder los permisos necesarios, puedes consultar la tabla en Athena desde la cuenta de destino.

Nota: Si revocas los permisos que se concedieron anteriormente desde la cuenta de origen, la cuenta de destino no podrá acceder a la base de datos o tabla compartida. Sin embargo, el enlace del recurso que has creado en la cuenta de destino no se elimina automáticamente. Debes eliminarlo manualmente.

Cómo compartir solo tablas con la cuenta de destino

Para compartir tablas individuales con la cuenta de destino, completa los pasos de la sección "Configure your resources" (Configurar tus recursos). Como parte de los pasos, actualiza los siguientes recursos:

Cuenta de origen

Para conceder acceso a la cuenta de destino desde la consola de Lake Formation, selecciona las tablas individuales en lugar de seleccionar la base de datos.

Cuenta de destino

Para acceder a la tabla compartida en la consola de Lake Formation, acepta la cuota de recursos en la consola de AWS Resource Access Manager (AWS RAM). Crea un enlace del recurso para la tabla compartida. Una vez creado el enlace del recurso, puedes consultar la tabla compartida con el acceso de administrador del lago de datos.

Para conceder acceso a los usuarios de IAM o entidades principales para la tabla compartida, debes conceder permisos para el enlace del recurso.

Nota: Cuando concedes permisos en la tabla, puedes restringir el acceso solo a las columnas de la tabla. Si restringes el acceso, la cuenta de destino solo podrá ver esas columnas de la tabla compartida.

Al eliminar una base de datos o una tabla, Lake Formation no elimina automáticamente la cuota de recursos de la RAM de AWS. Antes de eliminar una base de datos o una tabla compartidas, debes revocar manualmente los permisos multicuenta.

Información relacionada

Concesión de permisos sobre los recursos del catálogo de datos

Cómo funciona la característica entre cuentas de AWS Lake Formation

Actualización de la configuración de la versión para compartir datos entre cuentas

Configuración del modo de acceso híbrido: situaciones comunes