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.
Configurar el acceso multicuenta a un catálogo de datos de AWS Glue compartido con Amazon Athena
Creado por Denis Avdonin () AWS
Resumen
Este patrón proporciona step-by-step instrucciones, incluidos ejemplos de políticas de AWS Identity and Access Management (IAM), para configurar el uso compartido entre cuentas de un conjunto de datos almacenado en un depósito de Amazon Simple Storage Service (Amazon S3) mediante el catálogo de datos de AWS Glue. Puede almacenar el conjunto de datos en un bucket de S3. Un rastreador de AWS Glue recopila los metadatos y los coloca en el catálogo de datos de AWS Glue. El depósito S3 y el catálogo de datos de AWS Glue residen en una AWS cuenta denominada cuenta de datos. Puede proporcionar acceso a IAM los principales de otra AWS cuenta, denominada cuenta de consumidor. Los usuarios pueden consultar los datos de la cuenta del consumidor mediante el motor de consultas sin servidor Amazon Athena.
Requisitos previos y limitaciones
Requisitos previos
Un depósito de S3 en una de las AWS cuentas
AWSInterfaz de línea de comandos (AWSCLI), instalada y configurada (o AWS CloudShell
para ejecutar AWS CLI comandos)
Versiones de producto
Este patrón solo funciona con la versión 2 del motor Athena y la versión 3 del motor Athena. Le recomendamos que actualice a la versión 3 del motor Athena. Si no puede actualizar de la versión 1 del motor Athena a la versión 3 del motor Athena, siga el enfoque del acceso multicuenta al catálogo de datos de AWS Glue con Amazon Athena
Arquitectura
Pila de tecnología de destino
Amazon Athena
Amazon Simple Storage Service (Amazon S3)
AWS Glue
AWSIdentity and Access Management (IAM)
AWSServicio de administración de claves (AWSKMS)
El siguiente diagrama muestra una arquitectura que usa IAM permisos para compartir datos de un bucket de S3 en una AWS cuenta (cuenta de datos) con otra cuenta (AWScuenta de consumidor) a través del catálogo de datos de AWS Glue.
En el diagrama, se muestra el siguiente flujo de trabajo:
La política de bucket de S3 de la cuenta de datos concede permisos a un IAM rol en la cuenta de consumidor y al rol del servicio AWS Glue crawler en la cuenta de datos.
La política AWS KMS clave de la cuenta de datos concede permisos al IAM rol en la cuenta de consumidor y al rol del servicio AWS Glue crawler en la cuenta de datos.
El rastreador AWS Glue de la cuenta de datos descubre el esquema de los datos que están almacenados en el depósito de S3.
La política de recursos del catálogo de datos de AWS Glue de la cuenta de datos permite el acceso al IAM rol en la cuenta del consumidor.
Un usuario crea una referencia de catálogo con nombre en la cuenta del consumidor mediante un AWS CLI comando.
Una IAM política otorga a un IAM rol de la cuenta del consumidor acceso a los recursos de la cuenta de datos. La política de confianza del IAM rol permite a los usuarios de la cuenta de consumidor asumir el IAM rol.
Un usuario de la cuenta de consumidor asume el IAM rol y accede a los objetos del catálogo de datos mediante SQL consultas.
El motor sin servidor Athena ejecuta las consultas. SQL
nota
IAMlas prácticas recomendadas recomiendan conceder permisos a un IAM rol y utilizar la federación de identidades
Herramientas
Amazon Athena es un servicio de consultas interactivo que le ayuda a analizar los datos directamente en Amazon S3 mediante el uso estándar. SQL
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
AWSGlue es un servicio de extracción, transformación y carga (ETL) totalmente gestionado. Ayuda a clasificar, limpiar, enriquecer y mover datos de forma fiable entre almacenes de datos y flujos de datos.
AWSIdentity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
AWSEl Servicio de administración de claves (AWSKMS) le ayuda a crear y controlar claves criptográficas para proteger sus datos.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Conceder acceso a los datos al bucket de S3. | Cree una política de bucket de S3 basada en la siguiente plantilla y asígnela al bucket en el que se almacenan los datos.
La política de bucket concede permisos al IAM rol en la cuenta de consumidor y al rol del servicio AWS Glue Crawler en la cuenta de datos. | Administrador de la nube |
(Si es necesario) Conceda acceso a la clave de cifrado de datos. | Si el depósito de S3 está cifrado mediante una AWS KMS clave, conceda Actualice la política de claves con la siguiente declaración:
| Administrador de la nube |
Conceda al rastreador acceso a los datos. | Adjunta la siguiente IAM política a la función de servicio del rastreador:
| Administrador de la nube |
(Si es necesario) Conceda acceso al rastreador a la clave de cifrado de datos. | Si el depósito de S3 está cifrado mediante una AWS KMS clave, conceda
| Administrador de la nube |
Conceda al IAM rol de la cuenta de consumidor y al rastreador acceso al catálogo de datos. |
Esta política permite todas las acciones de AWS Glue en todas las bases de datos y tablas de la cuenta de datos. Puede personalizar la política para conceder únicamente los permisos necesarios a las entidades principales consumidoras. Por ejemplo, puede proporcionar acceso de solo lectura a tablas o vistas específicas de una base de datos. | Administrador de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree una referencia con nombre para el catálogo de datos. | Para crear una referencia de catálogo de datos con nombre, utilice CloudShello instale AWS CLI localmente el siguiente comando:
| Administrador de la nube |
Conceda acceso a los datos al IAM rol de la cuenta del consumidor. | Adjunta la siguiente política a la IAM función en la cuenta de consumidor para conceder a la función acceso a los datos entre cuentas:
A continuación, utilice la siguiente plantilla para especificar qué usuarios pueden aceptar el IAM rol en su política de confianza:
Por último, conceda permisos a los usuarios para que asuman el IAM rol adjuntando la misma política al grupo de usuarios al que pertenecen. | Administrador de la nube |
(Si es necesario) Conceda al IAM usuario de la cuenta de consumidor acceso a la clave de cifrado de datos. | Si el depósito de S3 está cifrado mediante una AWS KMS clave, conceda
| Administrador de la nube |
Cambie al IAM rol de la cuenta de consumidor para acceder a los datos. | Como consumidor de datos, cambie al IAM rol de acceso a los datos de la cuenta de datos. | Consumidor de datos |
Acceda a los datos. | Realizar consultas mediante Athena. Por ejemplo, abra el editor de consultas de Athena y ejecute la siguiente consulta:
En lugar de utilizar una referencia de catálogo con nombre, también puedes hacer referencia al catálogo por su nombre de recurso de Amazon (ARN). notaSi utiliza una referencia de catálogo dinámica en una consulta o vista, escriba la referencia entre comillas dobles en forma de escape (\»). Por ejemplo:
Para obtener más información, consulte Acceso entre cuentas a los catálogos de datos de AWS Glue en la Guía del usuario de Amazon Athena. | Consumidor de datos |
Recursos relacionados
Información adicional
Uso de Lake Formation como alternativa para compartir entre cuentas
También puedes usar AWS Lake Formation para compartir el acceso a los objetos del catálogo de AWS Glue entre cuentas. Lake Formation proporciona un control de acceso detallado a nivel de columnas y filas, control de acceso basado en etiquetas, tablas gobernadas para ACID transacciones y otras funciones. Aunque Lake Formation está bien integrado con Athena, requiere una configuración adicional en comparación con el enfoque exclusivo IAM de este patrón. Le recomendamos que considere la decisión de utilizar Lake Formation o controles IAM de acceso exclusivos en el contexto más amplio de la arquitectura general de su solución. Las consideraciones incluyen qué otros servicios están involucrados y cómo se integran con ambos enfoques.