Logotipo de Zephyrnet

Administre de forma centralizada el acceso y los permisos para compartir datos de Amazon Redshift con AWS Lake Formation

Fecha:

Las organizaciones globales basadas en datos de hoy en día tratan los datos como un activo y los utilizan en diferentes líneas de negocio (LOB) para generar conocimientos oportunos y mejores decisiones comerciales. Desplazamiento al rojo de Amazon compartir datos le permite compartir de forma segura datos transaccionales coherentes en vivo en un almacén de datos de Amazon Redshift con otro almacén de datos de Amazon Redshift dentro de la misma cuenta de AWS, entre cuentas y entre regiones, sin necesidad de copiar o mover datos de un clúster a otro.

Algunos clientes comparten sus datos con 50 a 100 almacenes de datos en diferentes cuentas y comparten mucho, lo que dificulta el seguimiento de quién accede a qué datos. Deben navegar a la consola de Amazon Redshift de una cuenta individual para recuperar la información de acceso. Además, muchos clientes tienen su lago de datos en Servicio de almacenamiento simple de Amazon (Amazon S3), que se comparte dentro y entre varias unidades comerciales. A medida que la organización crece y democratiza los datos, los administradores desean tener la capacidad de administrar el recurso compartido de datos de forma centralizada para la gobernanza y la auditoría, y para aplicar un control de acceso detallado.

Trabajando hacia atrás desde la solicitud del cliente, estamos anunciando la vista previa de la siguiente característica nueva: integración de uso compartido de datos de Amazon Redshift con Formación del lago AWS, que permite a los clientes de Amazon Redshift administrar de forma centralizada el acceso a sus recursos compartidos de datos de Amazon Redshift mediante Lake Formation.

Lake Formation ha sido una opción popular para los lagos de datos de gobierno central respaldados por Amazon S3. Ahora, con el soporte de Lake Formation para el uso compartido de datos de Amazon Redshift, abre nuevos patrones de diseño y amplía la postura de gobierno y seguridad en los almacenes de datos. Con esta integración, puede usar Lake Formation para definir un control de acceso detallado en tablas y vistas que se comparten con el uso compartido de datos de Amazon Redshift para federados. Gestión de identidades y accesos de AWS (IAM) usuarios y roles de IAM.

Los clientes están usando el malla de datos enfoque, que proporciona un mecanismo para compartir datos entre las unidades de negocio. Los clientes también están utilizando un arquitectura de datos moderna para compartir datos de almacenes de lagos de datos y almacenes de datos especialmente diseñados de Amazon Redshift entre unidades comerciales. Lake Formation brinda la capacidad de hacer cumplir el gobierno de datos dentro y entre las unidades comerciales, lo que permite el acceso y el intercambio seguros de datos, el descubrimiento fácil de datos y la auditoría centralizada para el acceso a los datos.

United Airlines está en el negocio de conectar personas y unir al mundo.

“Como empresa basada en datos, United está tratando de crear una experiencia de análisis y datos unificados para nuestra comunidad de análisis que innovará y creará aplicaciones modernas basadas en datos. Creemos que podemos lograr esto mediante la creación de una arquitectura de malla de datos especialmente diseñada utilizando una variedad de servicios de AWS como Athena, Aurora, Amazon Redshift y Lake Formation para simplificar la administración y la gobernanza en torno al acceso y la colaboración de datos granulares.."

-Ashok Srinivas, Director de Ingeniería de ML y Sarang Bapat, Director de Ingeniería de Datos.

En esta publicación, mostramos cómo administrar de forma centralizada el acceso y los permisos para compartir datos de Amazon Redshift con Lake Formation.

Resumen de la solución

En esta solución, demostramos cómo la integración del uso compartido de datos de Amazon Redshift con Lake Formation para el gobierno de datos puede ayudarlo a crear dominios de datos y cómo puede usar el enfoque de malla de datos para unir dominios de datos a fin de permitir el uso compartido y la federación de datos entre las unidades comerciales. El siguiente diagrama ilustra la arquitectura de nuestra solución.

Arquitectura de soluciones

La malla de datos es una arquitectura descentralizada orientada al dominio que hace hincapié en separar a los productores de datos de los consumidores de datos a través de un catálogo de datos centralizado y federado. Por lo general, los productores y los consumidores corren dentro de su propia cuenta. Los detalles de estas características de malla de datos son los siguientes:

  • Productores de datos – Los productores de datos son dueños de sus productos de datos y son responsables de construir sus datos, mantener su precisión y mantener actualizados sus productos de datos. Determinan qué conjuntos de datos se pueden publicar para el consumo y comparten sus conjuntos de datos registrándolos con el catálogo de datos centralizado en una cuenta de gobierno central. Es posible que tenga un delegado de productor o una persona de administrador para administrar los productos de datos con el delegado de gobierno central o el equipo de administradores.
  • Cuenta de gobierno central – Lake Formation permite una gestión de acceso detallada en el conjunto de datos compartido. El catálogo de datos centralizado ofrece a los consumidores la capacidad de encontrar rápidamente conjuntos de datos compartidos, permite a los administradores administrar de forma centralizada los permisos de acceso a conjuntos de datos compartidos y proporciona a los equipos de seguridad la capacidad de auditar y rastrear el uso de productos de datos en todas las unidades comerciales.
  • consumidores de datos – El consumidor de datos obtiene acceso a recursos compartidos desde la cuenta de gobierno central. Estos recursos están disponibles dentro del consumidor. Pegamento AWS Catálogo de datos, que permite un acceso detallado a la base de datos y la tabla que pueden gestionar los administradores y administradores de datos del consumidor.

Los siguientes pasos brindan una descripción general de cómo Lake Formation puede gobernar y administrar el uso compartido de datos de Amazon Redshift en el patrón de gobierno central de una arquitectura de malla de datos:

  1. En la cuenta del productor, los objetos de datos se crean y mantienen en el clúster de productores de Amazon Redshift. Un administrador del almacén de datos crea el recurso compartido de datos de Amazon Redshift y agrega conjuntos de datos (tablas, vistas) al recurso compartido.
  2. El administrador del almacén de datos otorga y autoriza el acceso en el recurso compartido de datos al catálogo de datos de la cuenta de gobierno central.
  3. En la cuenta de gobierno central, el administrador del lago de datos acepta el recurso compartido de datos y crea la base de datos de AWS Glue que apunta al recurso compartido de datos de Amazon Redshift para que Lake Formation pueda administrarlo.
  4. El administrador del lago de datos comparte la base de datos y las tablas de AWS Glue con la cuenta del consumidor mediante Uso compartido entre cuentas de Lake Formation.
  5. En la cuenta del consumidor, el administrador del lago de datos acepta la invitación para compartir recursos a través de Administrador de acceso a recursos de AWS (AWS RAM) y puede ver la base de datos enumerada en la cuenta.
  6. El administrador del lago de datos define el control de acceso detallado y otorga permisos en bases de datos y tablas a los usuarios de IAM (para esta publicación, consumer1 y consumer2) en la cuenta.
  7. En el clúster de Amazon Redshift, el administrador del almacén de datos crea una base de datos de Amazon Redshift que apunta a la base de datos de Glue y autoriza el uso de la base de datos de Amazon Redshift creada a los usuarios de IAM.
  8. El analista de datos como usuario de IAM ahora puede usar sus herramientas preferidas, como el editor de consultas de Amazon Redshift, para acceder al conjunto de datos en función de los permisos detallados de Lake Formation.

Usamos la siguiente configuración de cuenta para nuestro ejemplo en esta publicación:

  • Cuenta de productor 123456789012 Mayo
  • cuenta central 112233445566 Mayo
  • Cuenta de consumidor 665544332211 Mayo

Requisitos previos

Cree el recurso compartido de datos de Amazon Redshift y agregue conjuntos de datos

En la cuenta del productor de datos, cree un clúster de Amazon Redshift con el RA3 tipo de nodo con cifrado habilitado. Complete los siguientes pasos:

  1. En la consola de Amazon Redshift, crear un grupo de subred de clúster.

Para obtener más información, consulte Administrar grupos de subredes de clúster mediante la consola.

  1. Elige Crear clúster.
  2. Identificador de clúster, proporcione el nombre de clúster de su elección.
  3. Vista previa de la pista, escoger preview_2022.

  1. tipo de nodo, elija uno de los tipos de nodos RA3.

Esta función solo se admite en el tipo de nodo RA3.

  1. Numero de nodos, ingrese la cantidad de nodos que necesita para su clúster.
  2. under Configuraciones de base de datos, elija el nombre de usuario administrador y la contraseña de usuario administrador.
  3. under permisos de clúster, puede seleccionar el rol de IAM y configurarlo como predeterminado.

Para obtener más información sobre el rol de IAM predeterminado, consulte Creación de un rol de IAM como predeterminado para Amazon Redshift.

permisos de clúster

  1. Enciende el Usar valores predeterminados opción al lado de Configuraciones adicionales para modificar la configuración predeterminada.
  2. under red y seguridad, especifique lo siguiente:
    1. Nube privada virtual (VPC), elija la VPC en la que le gustaría implementar el clúster.
    2. Grupos de seguridad de VPC, déjelo como predeterminado o agregue los grupos de seguridad de su elección.
    3. Grupo de subred de clúster, elija el grupo de subredes del clúster que creó.

configuraciones adicionales

  1. under Configuración de la base, En la Cifrado sección, seleccionar Utilice el servicio de administración de claves de AWS (AWS KMS) or Usar un módulo de seguridad de hardware (HSM).

El cifrado está deshabilitado de forma predeterminada.

  1. Elija una clave de AWS KMS, puede elegir uno existente Servicio de administración de claves de AWS (AWS KMS) o seleccione Crear una clave de AWS KMS para crear una nueva clave.

Para obtener más información, consulte Creando llaves.

configuraciones de base de datos

  1. Elige Crear clúster.
  2. Para esta publicación, cree tablas y cargue datos en el clúster productor de Amazon Redshift utilizando lo siguiente guión.

Autorizar el recurso compartido de datos

Instalar o actualizar la última Interfaz de línea de comandos de AWS (AWS CLI) para ejecutar la AWS CLI para autorizar el uso compartido de datos. Para obtener instrucciones, consulte Instalación o actualización de la última versión de la AWS CLI.

Configurar permisos de formación de lagos

Para usar AWS Glue Data Catalog en Lake Formation, complete los siguientes pasos en la cuenta de gobierno central para actualizar la configuración de Data Catalog para usar los permisos de Lake Formation para controlar los recursos del catálogo en lugar del control de acceso basado en IAM:

  1. Inicia sesión en el Consola de formación de lago como administrador.
  2. En el panel de navegación, debajo Catálogo de datos, escoger Ajustes.
  3. Deseleccionar Use solo el control de acceso de IAM para nuevas bases de datos.
  4. Deseleccionar Use solo el control de acceso de IAM para tablas nuevas en bases de datos nuevas.
  5. Elige Versión 2 para Configuración de versiones de cuentas cruzadas.
  6. Elige Guardar.

configuración del catálogo de datos

Configurar un usuario de IAM como administrador del lago de datos

Si está utilizando un usuario o rol de administrador de lago de datos existente, agregue las siguientes políticas administradas, si no están adjuntas, y omita los siguientes pasos de configuración:

AWSGlueServiceRole
AmazonRedshiftFullAccess

De lo contrario, para configurar un usuario de IAM como administrador del lago de datos, complete los siguientes pasos:

  1. En la consola de IAM, elija Usuarios en el panel de navegación.
  2. Seleccione el usuario de IAM que desea designar como administrador del lago de datos.
  3. Elige Agregar una política en línea en Permisos .
  4. Reemplaza con su propio ID de cuenta y agregue la siguiente política:
{ "Version": "2012-10-17", "Statement": [ { "Condition": {"StringEquals": { "iam:AWSServiceName":"lakeformation.amazonaws.com"}}, "Action":"iam:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow"}, {"Action": ["iam:PutRolePolicy"], "Resource": "arn:aws:iam::<AccountID>:role/aws-service role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess", "Effect": "Allow" },{ "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" }]
}

  1. Proporcione un nombre de política.
  2. Revise y guarde su configuración.
  3. Elige Agregar permisos, y elige Adjunte políticas existentes directamente.
  4. Agregue las siguientes políticas:
    1. AWSLakeFormationCrossAccountManager
    2. AWSGlueConsoleFullAccess
    3. AWSGlueServiceRole
    4. AWSLakeFormationDataAdmin
    5. AWSCloudShellFullAccess
    6. AmazonRedshiftFullAccess
  5. Elige Siguiente: Revisar y agregar permisos.

Configuración de la cuenta del consumidor de datos

En la cuenta del consumidor, siga los pasos mencionados anteriormente en la cuenta de gobierno central para configurar Lake Formation y un administrador de lago de datos.

  1. En la cuenta del consumidor de datos, cree un clúster de Amazon Redshift utilizando el tipo de nodo RA3 con cifrado (consulte los pasos que se muestran para crear un clúster de Amazon Redshift en la cuenta del productor).
  2. Elige Pila de lanzamiento desplegar un Formación en la nube de AWS plantilla para crear dos usuarios de IAM con políticas.

pila de lanzamiento

La pila crea los siguientes usuarios bajo la personalidad del analista de datos:

  • consumer1
  • consumer2
  1. Después de crear la pila de CloudFormation, vaya a la Salidas pestaña de la pila.
  2. Capturar el ConsoleIAMLoginURL y LFUsersCredentials valores.

creariamusers

  1. Elija el LFUsersCredentials valor para navegar a la Director de secretos de AWS consola.
  2. En Valor secreto sección, elija Recuperar valor secreto.

valor secreto

  1. Capture el valor secreto de la contraseña.

Ambos consumer1 y consumer2 necesita utilizar esta misma contraseña para iniciar sesión en el Consola de administración de AWS.

valor secreto

Configurar un recurso compartido de datos de Amazon Redshift mediante Lake Formation

Cuenta de productor

Crear un recurso compartido de datos usando la consola

Complete los siguientes pasos para crear un recurso compartido de datos de Amazon Redshift en la cuenta del productor de datos y compártalo con Lake Formation en la cuenta central:

  1. En la consola de Amazon Redshift, elija el clúster para crear el recurso compartido de datos.
  2. En la página de detalles del clúster, vaya a la Compartir datos .
  3. under Recursos compartidos de datos creados en mi espacio de nombres, escoger Conectarse a la base de datos.

conectarse a la base de datos

  1. Elige Crear recurso compartido de datos.

crear datos compartidos

  1. Tipo de recurso compartido de datos, escoger Compartir datos.
  2. Nombre del recurso compartido de datos, ingresa el nombre (para esta publicación, demotahoeds).
  3. Nombre de la base de datos, elija la base de datos desde donde agregar objetos de intercambio de datos (para esta publicación, dev).
  4. Públicamente Accesible, escoger Apagar (o elige "Permitir" para compartir el recurso compartido de datos con clústeres que son de acceso público).

información compartida de datos

  1. under Objetos DataShare, escoger Añada para agregar el esquema al recurso compartido de datos (en esta publicación, el public esquema).
  2. under Tablas y vistas, escoger Añada para agregar las tablas y vistas al recurso compartido de datos (para esta publicación, agregamos la tabla customer y ver customer_view).

objetos compartidos de datos

  1. under consumidores de datos, escoger Publicar en el catálogo de datos de AWS.
  2. Publicar en las siguientes cuentas, escoger Otras cuentas de AWS.
  3. Proporcione el ID de la cuenta de AWS de la cuenta del consumidor. Para esta publicación, proporcionamos el ID de cuenta de AWS de la cuenta de gobierno central de Lake Formation.
  4. Para compartir dentro de la misma cuenta, seleccione Cuenta local.
  5. Elige Crear recurso compartido de datos.

consumidores de datos

  1. Después de crear el recurso compartido de datos, puede verificar volviendo a la Compartir datos pestaña e ingresando el nombre del recurso compartido de datos en la barra de búsqueda debajo Recursos compartidos de datos creados en mi espacio de nombres.
  2. Elija el nombre del recurso compartido de datos para ver sus detalles.
  3. En Consumidores de datos, verá el estado del consumidor de la cuenta del catálogo de datos del consumidor como Pendiente de Autorización.

consumidores de datos

  1. Elija la casilla de verificación en el catálogo de datos del consumidor que habilitará el Autorizar .

autorizar

  1. Haga Clic en Autorizar para autorizar el acceso compartido de datos al catálogo de datos de la cuenta del consumidor, el estado del consumidor cambiará a Autorizado.

autorizado

Crear un recurso compartido de datos usando un comando SQL

Complete los siguientes pasos para crear un recurso compartido de datos en la cuenta 1 del productor de datos y compártalo con Lake Formation en la cuenta central:

  1. En la consola de Amazon Redshift, en el panel de navegación, elija Editora, entonces Editor de consultas V2.
  2. Elija (haga clic con el botón derecho) el nombre del clúster y elija Editar conexión or Crear conexión.
  3. Autenticación, escoger Credenciales temporales.

Consulte Conexión a una base de datos de Amazon Redshift para obtener más información sobre los diversos métodos de autenticación.

  1. Base de datos, ingrese un nombre de base de datos (para esta publicación, dev).
  2. usuario de la base de datos, ingrese el usuario autorizado para acceder a la base de datos (para esta publicación, awsuser).
  3. Elige Guardar para conectarse a la base de datos.

Conexión a una base de datos de Amazon Redshift

  1. Ejecute los siguientes comandos SQL para crear el recurso compartido de datos y agregar los objetos de datos que se compartirán:
create datashare demotahoeds;
ALTER DATASHARE demotahoeds ADD SCHEMA PUBLIC;
ALTER DATASHARE demotahoeds ADD TABLE customer;
ALTER DATASHARE demotahoeds ADD TABLE customer_view;

  1. Ejecute el siguiente comando SQL para compartir el recurso compartido de datos del productor con la cuenta de gobierno central:
GRANT USAGE ON DATASHARE demotahoeds TO ACCOUNT '<central-aws-account-id>' via DATA CATALOG

Ejecute el siguiente comando SQL

  1. Puede verificar el recurso compartido de datos creado y los objetos compartidos ejecutando el siguiente comando SQL:
DESC DATASHARE demotahoeds

DESC DATASHARE demotahoeds

  1. Ejecute el siguiente comando con la CLI de AWS para autorizar el recurso compartido de datos al catálogo de datos central para que Lake Formation pueda administrarlos:
aws redshift authorize-data-share --data-share-arn 'arn:aws:redshift:<producer-region>:<producer-aws-account-id>:datashare:<producer-cluster-namespace>/demotahoeds' --consumer-identifier DataCatalog/<central-aws-account-id>

El siguiente es un ejemplo de salida:

 { "DataShareArn": "arn:aws:redshift:us-east-1:XXXXXXXXXX:datashare:cd8d91b5-0c17-4567-a52a-59f1bdda71cd/demotahoeds", "ProducerArn": "arn:aws:redshift:us-east-1:XXXXXXXXXX:namespace:cd8d91b5-0c17-4567-a52a-59f1bdda71cd", "AllowPubliclyAccessibleConsumers": false, "DataShareAssociations": [{ "ConsumerIdentifier": "DataCatalog/XXXXXXXXXXXX", "Status": "AUTHORIZED", "CreatedDate": "2022-11-09T21:10:30.507000+00:00", "StatusChangeDate": "2022-11-09T21:10:50.932000+00:00" }]
}

Puede verificar el estado del recurso compartido de datos en la consola siguiendo los pasos descritos en la sección anterior.

Cuenta de catálogo central

El administrador del lago de datos acepta y registra el recurso compartido de datos con Lake Formation en la cuenta de gobierno central y crea una base de datos para el mismo. Complete los siguientes pasos:

  1. Inicie sesión en la consola como usuario o rol de IAM del administrador del lago de datos.
  2. Si es la primera vez que inicia sesión en la consola de Lake Formation, seleccione agregarme y elige Empezar.
  3. under Catálogo de datos en el panel de navegación, elija Compartir datos y vea las invitaciones para compartir datos de Amazon Redshift en la Configuración .
  4. Seleccione el recurso compartido de datos y elija Invitación a revisar.

Intercambio de datos de AWS Lake Formation

Aparece una ventana con los detalles de la invitación.

  1. Elige Aceptar para registrar el recurso compartido de datos de Amazon Redshift en el catálogo de datos de AWS Glue.

aceptar rechazar invitación

  1. Proporcione un nombre para la base de datos de AWS Glue y elija Saltar a Revisar y crear.

Saltar a Revisar y crear

  1. Revisa el contenido y elige Crear base de datos.

crear base de datos

Después de crear la base de datos de AWS Glue en el recurso compartido de datos de Amazon Redshift, puede verla en Bases de datos compartidas.

Bases de datos compartidas.

También puede utilizar la CLI de AWS para registrar el recurso compartido de datos y crear la base de datos. Utilice los siguientes comandos:

  1. Describa el recurso compartido de datos de Amazon Redshift que se comparte con la cuenta central:
aws redshift describe-data-shares

  1. Acepte y asocie el recurso compartido de datos de Amazon Redshift a Data Catalog:
aws redshift associate-data-share-consumer --data-share-arn 'arn:aws:redshift:<producer-region>:<producer-aws-account-id>:datashare:<producer-cluster-namespace>/demotahoeds' --consumer-arn arn:aws:glue:us-east-1:<central-aws-account-id>:catalog

El siguiente es un ejemplo de salida:

 { "DataShareArn": "arn:aws:redshift:us-east-1:123456789012:datashare:cd8d91b5-0c17-4567-a52a-59f1bdda71cd/demotahoeds", "ProducerArn": "arn:aws:redshift:us-east-1:123456789012:namespace:cd8d91b5-0c17-4567-a52a-59f1bdda71cd", "AllowPubliclyAccessibleConsumers": false, "DataShareAssociations": [ { "ConsumerIdentifier": "arn:aws:glue:us-east-1:112233445566:catalog", "Status": "ACTIVE", "ConsumerRegion": "us-east-1", "CreatedDate": "2022-11-09T23:25:22.378000+00:00", "StatusChangeDate": "2022-11-09T23:25:22.378000+00:00" } ]
}

  1. Registre el recurso compartido de datos de Amazon Redshift en Lake Formation:
aws lakeformation register-resource --resource-arn arn:aws:redshift:<producer-region>:<producer-aws-account-id>:datashare:<producer-cluster-namespace>/demotahoeds

  1. Cree la base de datos de AWS Glue que apunte al recurso compartido de datos de Amazon Redshift aceptado:
aws glue create-database --region <central-catalog-region> --cli-input-json '{ "CatalogId": "<central-aws-account-id>", "DatabaseInput": { "Name": "demotahoedb", "FederatedDatabase": { "Identifier": "arn:aws:redshift:<producer-region>:<producer-aws-account-id>:datashare:<producer-cluster-namespace>/demotahoeds", "ConnectionName": "aws:redshift" } }
}'

Ahora, el administrador del lago de datos de la cuenta de gobierno central puede ver y compartir el acceso tanto a la base de datos como a las tablas de la cuenta del consumidor de datos mediante la función de uso compartido entre cuentas de Lake Formation.

Otorgar acceso de datos compartidos al consumidor de datos

Para otorgar permisos a la cuenta del consumidor de datos en la base de datos compartida de AWS Glue, complete los siguientes pasos:

  1. En la consola de Lake Formation, debajo Permisos en el panel de navegación, elija Permisos de lago de datos.
  2. Elige Grant.
  3. under Directores, seleccione Cuentas externas.
  4. Proporcione el ID de la cuenta del consumidor de datos (para esta publicación, 665544332211).
  5. under LF_Tags o recursos del catálogo, seleccione Recursos de catálogo de datos con nombre.
  6. Bases de datos, elige la base de datos demotahoedb.
  7. Seleccione Describir por tanto Permisos de la base de datos y Permisos concedidos.
  8. Elige Grant para aplicar los permisos.

otorgar permisos de datos

Para otorgar a la cuenta del consumidor de datos permisos en las tablas, complete los siguientes pasos:

  1. En la consola de Lake Formation, debajo Permisos en el panel de navegación, elija Permisos de lago de datos.
  2. Elige Grant.
  3. under Directores, seleccione Cuentas externas.
  4. Proporcione la cuenta del consumidor (para esta publicación, usamos 665544332211).
  5. under LF-Tags o recursos del catálogo, seleccione Recursos de catálogo de datos con nombre.
  6. Bases de datos, elija la base de datos demotahoedb.
  7. Mesas, escoger Todas las tablas.
  8. Seleccione Describir y Seleccione por tanto Permisos de mesa y Permisos concedidos.
  9. Elige Grant para aplicar los cambios.

conceder a la cuenta del consumidor de datos permisos en las tablas

Cuenta de consumidor

El administrador del consumidor recibirá los recursos compartidos de la cuenta de gobierno central y delegará el acceso a otros usuarios en la cuenta del consumidor como se muestra en la siguiente tabla.

Usuario de gestión de identidades y accesos Acceso a objetos Tipo de objeto Nivel de acceso
consumer1 public.customer Mesa Todos
consumer2 public.customer_view Ver columnas específicas: c_customer_id, c_birth_country, cd_gender, cd_marital_status, cd_education_status

En la cuenta del consumidor de datos, siga estos pasos para aceptar los recursos compartidos con la cuenta:

  1. Inicie sesión en la consola como usuario o rol de IAM del administrador del lago de datos.
  2. Si es la primera vez que inicia sesión en la consola de Lake Formation, seleccione agregarme y elige ¡Empieza aquí!.
  3. Inicie sesión en la consola de RAM de AWS.
  4. En el panel de navegación, debajo Comparte conmigo, escoger Recursos compartidos para ver las invitaciones pendientes. Recibirás 2 invitaciones.

Recursos compartidos para ver las invitaciones pendientes

  1. Elija las invitaciones pendientes y acepte el recurso compartido.

Elija la invitación pendiente y acepte el recurso compartido

  1. En la consola de formación del lago, bajo Catálogo de datos en el panel de navegación, elija Bases de datos para ver la base de datos compartida entre cuentas.

elija Bases de datos para ver la base de datos compartida entre cuentas

Otorgue acceso al analista de datos y a los usuarios de IAM mediante Lake Formation

Ahora, el administrador del lago de datos en la cuenta del consumidor de datos puede delegar permisos en la base de datos y las tablas compartidas a los usuarios de la cuenta del consumidor.

Otorgar permisos de base de datos a consumidor1 y consumidor2

Para otorgar a los usuarios de IAM consumer1 y consumer2 permisos de la base de datos, siga estos pasos:

  1. En la consola de Lake Formation, debajo Catálogo de datos en el panel de navegación, elija Bases de datos.
  2. Seleccione la base de datos demotahoedb y en el Acciones menú, seleccione Grant.

elija Base de datos de subvenciones

  1. under Directores, seleccione Usuarios y roles de IAM.
  2. Elija los usuarios de IAM consumidor1 y consumidor2.
  3. under LF-Tags o recursos del catálogo, demotahoedb ya está seleccionado para Bases de datos.
  4. Seleccione Describir para Permisos de la base de datos.
  5. Elige Grant para aplicar los permisos.

Elija Conceder para aplicar los permisos

Otorgar permisos de tabla a consumidor1

Para otorgar al usuario de IAM consumer1 permisos en la tabla public.customer, sigue estos pasos:

  1. under Catálogo de datos en el panel de navegación, elija Bases de datos.
  2. Seleccione la base de datos demotahoedb y en la Acciones menú, seleccione Grant.
  3. under Directores, seleccione Usuarios y roles de IAM.
  4. Elija un usuario de IAM consumer1.
  5. under LF-Tags o recursos del catálogo, demotahoedb ya está seleccionado para Bases de datos.
  6. Mesas, escoger public.customer.
  7. Seleccione Describir y Seleccione para Permisos de mesa.
  8. Elige Grant para aplicar los permisos.

Otorgar permisos de tabla a consumidor1

Otorgar permisos de columna a consumidor2

Para otorgar al usuario de IAM consumer2 permisos en columnas no confidenciales en public.customer_view, sigue estos pasos:

  1. under Catálogo de datos en el panel de navegación, elija Bases de datos.
  2. Seleccione la base de datos demotahoedb y en la Acciones menú, seleccione Grant.
  3. under Directores, seleccione Usuarios y roles de IAM.
  4. Elija el usuario de IAM consumer2.
  5. under LF-Tags o recursos del catálogo, demotahoedb ya está seleccionado para Bases de datos.
  6. Mesas, escoger public.customer_view.

Otorgar permisos de columna a consumidor2

  1. Seleccione Seleccione para Permisos de mesa.
  2. under Permisos de datos, seleccione Acceso basado en columnas.
  3. Seleccione Incluir columnas y elija las columnas no confidenciales (c_customer_id, c_birth_country, cd_gender, cd_marital_statusy cd_education_status).
  4. Elige Grant para aplicar los permisos.

permisos de mesa

Consumir el recurso compartido de datos de la cuenta del consumidor de datos en el clúster de Amazon Redshift

En el almacén de datos del consumidor de Amazon Redshift, inicie sesión como usuario administrador mediante Query Editor V2 y complete los siguientes pasos:

  1. Cree la base de datos de Amazon Redshift a partir de la base de datos del catálogo compartido mediante el siguiente comando SQL:
CREATE DATABASE demotahoedb FROM ARN 'arn:aws:glue:<producer-region>:<producer-aws-account-id>:database/demotahoedb' WITH DATA CATALOG SCHEMA demotahoedb ;

  1. Ejecute los siguientes comandos SQL para crear y otorgar uso en la base de datos de Amazon Redshift a los usuarios de IAM consumidor1 y consumidor2:
CREATE USER IAM:consumer1 password disable;
CREATE USER IAM:consumer2  password disable;
GRANT USAGE ON DATABASE demotahoedb TO IAM:consumer1;
GRANT USAGE ON DATABASE demotahoedb TO IAM:consumer2;

Para usar una identidad federada para hacer cumplir los permisos de Lake Formation, siga los siguientes pasos para configurar Query Editor v2.

  1. Elija el ícono de configuración en la esquina inferior izquierda del Query Editor v2, luego elija Configuración de la cuenta.

identidad para hacer cumplir los permisos de Lake Formation

  1. under Ajustes de conexión, seleccione Autenticarse con credenciales de IAM.
  2. Elige Guardar.

Autenticarse con credenciales de IAM

Consultar los conjuntos de datos compartidos como usuario consumidor

Para validar que el usuario de IAM consumer1 tiene acceso a datos compartidos de Amazon Redshift, realice los siguientes pasos:

  1. Inicie sesión en la consola como usuario de IAM consumer1.
  2. En la consola de Amazon Redshift, elija Editor de consultas V2 en el panel de navegación.
  3. Para conectarse al clúster de consumidores, elija el clúster de consumidores en el panel de vista de árbol.
  4. Cuando se le solicite, para Autenticación, seleccione Credenciales temporales con su identidad de IAM.
  5. Base de datos, ingrese el nombre de la base de datos (para esta publicación, dev).
  6. El nombre de usuario se asignará a su identidad de IAM actual (para esta publicación, consumer1).
  7. Elige Guardar.

editar conexión para corrimiento al rojo

  1. Una vez que esté conectado a la base de datos, puede validar el usuario conectado actual con el siguiente comando SQL:
select current_user;

  1. Para encontrar las bases de datos federadas creadas en la cuenta del consumidor, ejecute el siguiente comando SQL:
SHOW DATABASES FROM DATA CATALOG [ACCOUNT '<id1>', '<id2>'] [LIKE 'expression'];

bases de datos federadas creadas en la cuenta del consumidor

  1. Para validar los permisos de consumer1, ejecute el siguiente comando SQL:
select * from demotahoedb.public.customer limit 10;

Como se muestra en la siguiente captura de pantalla, consumer1 puede acceder con éxito al objeto de cliente de recurso compartido de datos.

Ahora vamos a validar eso consumer2 no tiene acceso a las tablas de intercambio de datos "public.customer" en el mismo clúster de consumidores.

  1. Cierre sesión en la consola e inicie sesión como usuario consumidor2 de IAM.
  2. Siga los mismos pasos para conectarse a la base de datos utilizando el editor de consultas.
  3. Una vez conectado, ejecute la misma consulta:
select * from demotahoedb.public.customer limit 10;

El usuario consumer2 debería obtener un error de permiso denegado, como en la siguiente captura de pantalla.

debería obtener un error de permiso denegado

Validemos los permisos de acceso a nivel de columna de consumer2 on public.customer_view view.

  1. Conéctese a Query Editor v2 como consumer2 y ejecute el siguiente comando SQL:
select c_customer_id,c_birth_country,cd_gender,cd_marital_status from demotahoedb.public.customer_view limit 10;

En la siguiente captura de pantalla, puede ver que consumidor2 solo puede acceder a las columnas otorgadas por Lake Formation.

columnas de acceso otorgadas por Lake Formation

Conclusión

Un enfoque de malla de datos proporciona un método mediante el cual las organizaciones pueden compartir datos entre unidades de negocios. Cada dominio es responsable de la ingestión, el procesamiento y el servicio de sus datos. Son propietarios de datos y expertos en el dominio, y son responsables de la calidad y precisión de los datos. El uso compartido de datos de Amazon Redshift con Lake Formation para el gobierno de datos ayuda a construir la arquitectura de malla de datos, lo que permite compartir datos y federarlos entre unidades comerciales con un control de acceso detallado.

Un agradecimiento especial a todos los que contribuyeron a lanzar el uso compartido de datos de Amazon Redshift con AWS Lake Formation:

Debu Panda, Michael Chess, Vlad Ponomarenko, Ting Yan, Erol Murtezaoglu, Sharda Khubchandani, Rui Bi

Referencias


Acerca de los autores

Srividya Parthasarathy es Arquitecto Senior de Big Data en el equipo de AWS Lake Formation. Le gusta crear soluciones de redes de datos y compartirlas con la comunidad.

Harshida Patel es Arquitecto Principal de Soluciones Especialista en Análisis, con AWS.

Ranjan birmano es un arquitecto de soluciones especialista en análisis, con AWS.

Vikram Sahadevan es un arquitecto residente sénior en el equipo de AWS Data Lab. Disfruta de los esfuerzos que se enfocan en proporcionar una guía arquitectónica prescriptiva, compartir las mejores prácticas y eliminar los obstáculos técnicos con compromisos de ingeniería conjuntos entre los clientes y los recursos técnicos de AWS que aceleran las iniciativas de datos, análisis, inteligencia artificial y aprendizaje automático.

Steve Mitchell es un arquitecto de soluciones sénior apasionado por el análisis y la malla de datos. Le gusta trabajar en estrecha colaboración con los clientes en su transición a una arquitectura de datos moderna.

punto_img

Información más reciente

punto_img