Logotipo de Zephyrnet

Simplifique la administración de acceso con Amazon Redshift y AWS Lake Formation para usuarios en un proveedor de identidad externo | Servicios web de Amazon

Fecha:

Muchas organizaciones utilizan proveedores de identidad (IdP) para autenticar usuarios, administrar sus atributos y membresías de grupos para una administración de identidad segura, eficiente y centralizada. Es posible que esté modernizando su arquitectura de datos utilizando Desplazamiento al rojo de Amazon para permitir el acceso a su lago de datos y a los datos de su almacén de datos, y están buscando una forma centralizada y escalable de definir y gestionar el acceso a los datos en función de las identidades de IdP. Formación del lago AWS hace que sea sencillo gobernar, proteger y compartir globalmente datos de forma centralizada para análisis y aprendizaje automático (ML). Actualmente, es posible que tengas que asignar identidades y grupos de usuarios a Gestión de identidades y accesos de AWS (IAM) y los permisos de acceso a datos se definen en el nivel de rol de IAM dentro de Lake Formation. Esta configuración no es eficiente porque configurar y mantener grupos de IdP con asignación de roles de IAM a medida que se crean nuevos grupos requiere mucho tiempo y dificulta derivar a qué datos se accedió desde qué servicio en ese momento.

corrimiento al rojo amazónico, Amazon QuickSighty Lake Formation ahora se integra con la nueva capacidad de propagación de identidad confiable en Centro de identidad de AWS IAM para autenticar usuarios sin problemas en todos los servicios. En esta publicación, analizamos dos casos de uso para configurar la propagación de identidades confiables con Amazon Redshift y Lake Formation.

Resumen de la solución

La propagación de identidades confiables proporciona una nueva opción de autenticación para las organizaciones que desean centralizar la administración de permisos de datos y autorizar solicitudes basadas en su identidad de IdP a través de los límites del servicio. Con IAM Identity Center, puede configurar un IdP existente para administrar usuarios y grupos y utilizar Lake Formation para definir permisos de control de acceso detallados en los recursos del catálogo para estas identidades de IdP. Amazon Redshift admite la propagación de identidades al consultar datos con Espectro de Redshift de Amazon y con Uso compartido de datos de Amazon Redshifty puedes usar Seguimiento de la nube de AWS para auditar el acceso a datos por parte de identidades de IdP para ayudar a su organización a cumplir con sus requisitos normativos y de cumplimiento.

Con esta nueva capacidad, los usuarios pueden conectarse a Amazon Redshift desde QuickSight con una experiencia de inicio de sesión único y crear conjuntos de datos de consulta directa. Esto se habilita utilizando IAM Identity Center como fuente de identidad compartida. Con la propagación de identidad confiable, cuando los activos de QuickSight, como los paneles, se comparten con otros usuarios, los permisos de la base de datos de cada usuario de QuickSight se aplican propagando su identidad de usuario final desde QuickSight a Amazon Redshift y aplicando sus permisos de datos individuales. Según el caso de uso, el autor puede aplicar seguridad adicional a nivel de fila y columna en QuickSight.

El siguiente diagrama ilustra un ejemplo de la arquitectura de la solución.

En esta publicación, explicamos cómo configurar la propagación de identidades confiables con Amazon Redshift y Lake Formation. Cubrimos los siguientes casos de uso:

  • Espectro de corrimiento al rojo con formación de lagos
  • Intercambio de datos de corrimiento al rojo con Lake Formation

Requisitos previos

Este tutorial supone que ha configurado una función de administrador de Lake Formation o una función similar para seguir las instrucciones de esta publicación. Para obtener más información sobre cómo configurar permisos para un administrador de lago de datos, consulte Crear un administrador del lago de datos.

Además, debe crear los siguientes recursos como se detalla en Integre Okta con Amazon Redshift Query Editor V2 mediante AWS IAM Identity Center para un inicio de sesión único perfecto:

  • Una cuenta de Okta integrada con IAM Identity Center para sincronizar usuarios y grupos
  • Una aplicación administrada por Redshift con IAM Identity Center
  • Un clúster de origen de Redshift con la integración de IAM Identity Center habilitada
  • Un clúster de destino de Redshift con la integración de IAM Identity Center habilitada (puede omitir la sección para configurar el acceso basado en roles de Amazon Redshift)
  • Usuarios y grupos de IAM Identity Center asignados a la aplicación Redshift
  • Un conjunto de permisos asignado a cuentas de AWS para permitir el acceso a Redshift Query Editor v2
  • Agregue el siguiente permiso a la función de IAM utilizada en la aplicación administrada de Redshift para la integración con IAM Identity Center.
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "lakeformation:GetDataAccess",
                    "glue:GetTable",
                    "glue:GetTables",
                    "glue:SearchTables",
                    "glue:GetDatabase",
                    "glue:GetDatabases",
                    "glue:GetPartitions",
                    "lakeformation:GetResourceLFTags",
                    "lakeformation:ListLFTags",
                    "lakeformation:GetLFTag",
                    "lakeformation:SearchTablesByLFTags",
                    "lakeformation:SearchDatabasesByLFTags"
               ],
                "Resource": "*"
            }
        ]
    }

Caso de uso 1: Espectro de desplazamiento al rojo con formación de lagos

Este caso de uso supone que tiene los siguientes requisitos previos:

  1. Inicie sesión en el Consola de administración de AWS como administrador de IAM.
  2. Vaya a CloudShell o a su AWS CLI y ejecute el siguiente comando de AWS CLI, proporcionando el nombre de su depósito para copiar los datos:
aws s3 sync s3://redshift-demos/data/NY-Pub/ s3://<bucketname>/data/NY-Pub/

En esta publicación utilizamos un Rastreador de AWS Glue para crear la tabla externa ny_pub almacenado en formato Apache Parquet en la ubicación de Amazon S3 s3://<bucketname>/data/NY-Pub/. En el siguiente paso, creamos los recursos de la solución usando Formación en la nube de AWS para crear una pila llamada CrawlS3Source-NYTaxiData in us-east-1.

  1. Descargue nuestra archivo .yml or lanzar la pila de CloudFormation.

La pila crea los siguientes recursos:

  • El rastreador NYTaxiCrawler junto con el nuevo rol de IAM AWSGlueServiceRole-RedshiftAutoMount
  • La base de datos de AWS Glue automountdb

Cuando la pila esté completa, continúe con los siguientes pasos para terminar de configurar sus recursos:

  1. En la consola de AWS Glue, debajo de Catálogo de datos en el panel de navegación, elija Rastreadores.
  2. Abierto NYTaxiCrawler y elige Editar.
  1. under Elija fuentes de datos y clasificadores, escoger Editar.
  1. Fuente de datos, escoger S3.
  2. ruta S3, introduzca s3://<bucketname>/data/NY-Pub/.
  3. Elige Actualizar la fuente de datos S3.
  1. Elige Siguiente y elige Actualizar.
  2. Elige Ejecutar rastreador.

Una vez completado el rastreador, podrá ver una nueva tabla llamada ny_pub en el catálogo de datos bajo el automountdb base de datos.

Después de crear los recursos, complete los pasos de las siguientes secciones para configurar los permisos de Lake Formation en la tabla de AWS Glue. ny_pub para sales grupo IdP y acceder a ellos a través de Redshift Spectrum.

Habilite la propagación de Lake Formation para la aplicación administrada Redshift

Complete los siguientes pasos para habilitar la propagación de Lake Formation para la aplicación administrada Redshift creada en Integre Okta con Amazon Redshift Query Editor V2 mediante AWS IAM Identity Center para un inicio de sesión único perfecto:

  1. Inicie sesión en la consola como administrador.
  2. En la consola de Amazon Redshift, elija Conexión del Centro de identidad de IAM en el panel de navegación.
  3. Seleccione la aplicación administrada que comienza con redshift-iad y elige Editar.
  1. Seleccione Habilite las concesiones de acceso a AWS Lake Formation bajo Propagación de identidad confiable y guarda tus cambios.

Configurar Lake Formation como una aplicación de IAM Identity Center

Complete los siguientes pasos para configurar Lake Formation como una aplicación de IAM Identity Center:

  1. En la consola de Lake Formation, debajo Administración en el panel de navegación, elija Integración del Centro de identidad de IAM.
  1. Revisa las opciones y elige Enviar para permitir la integración de Lake Formation.

El estado de integración se actualizará a éxito.
Alternativamente, puede ejecutar el siguiente comando:

aws lakeformation create-lake-formation-identity-center-configuration 
--cli-input-json '{"CatalogId": "<catalog_id>","InstanceArn": "<identitycenter_arn>"}'

Registre los datos con Lake Formation

En esta sección, registramos los datos con Lake Formation. Complete los siguientes pasos:

  1. En la consola de Lake Formation, debajo Administración en el panel de navegación, elija Ubicaciones de data lake.
  2. Elige Registrar ubicación.
  3. Ruta de Amazon S3, ingrese el depósito donde residen los datos de la tabla (s3://<bucketname>/data/NY-Pub/).
  4. Rol de IAM, elija una función definida por el usuario de Lake Formation. Para obtener más información, consulte Requisitos para los roles utilizados para registrar ubicaciones.
  5. modo de permiso, seleccione Formación del lago.
  6. Elige Registrar ubicación.

A continuación, verifique que el IAMAllowedPrincipal El grupo no tiene permiso en la base de datos.

  1. En la consola de Lake Formation, debajo Catálogo de datos en el panel de navegación, elija Bases de datos.
  2. Seleccione automountdb y en la Acciones menú, seleccione Ver permisos.
  3. If IAMAllowedPrincipal aparece en la lista, seleccione el principal y elija Revocar.
  4. Repita estos pasos para verificar los permisos de la tabla. ny_pub.

Otorgue permisos al grupo de IAM Identity Center en la base de datos y la tabla de AWS Glue

Complete los siguientes pasos para otorgar permisos de base de datos al grupo de IAM Identity Center:

  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 automountdb y en la Acciones menú, seleccione Grant.
  3. Elige Base de datos de subvenciones.
  4. En Directores, seleccione Centro de identidad de IAM y elige Añada.
  5. En la ventana emergente, si es la primera vez que asigna usuarios y grupos, elija ¡Empieza aquí!.
  6. Ingrese el grupo de IAM Identity Center en la barra de búsqueda y elija el grupo.
  7. Elige Asignar.
  8. under LF-Tags o recursos del catálogo, automountdb ya está seleccionado para Bases de datos.
  9. Seleccione Describir para Permisos de la base de datos.
  10. Elige Grant para aplicar los permisos.

Alternativamente, puede ejecutar el siguiente comando:

aws lakeformation grant-permissions --cli-input-json '
{
    "Principal": {
        "DataLakePrincipalIdentifier": "arn:aws:identitystore:::group/<identitycenter_group_name>"
    },
    "Resource": {
        "Database": {
            "Name": "automountdb"
        }
    },
    "Permissions": [
        "DESCRIBE"
    ]
}'

A continuación, otorga permisos de tabla al grupo de IAM Identity Center.

  1. under Catálogo de datos en el panel de navegación, elija Bases de datos.
  2. Seleccione la base de datos automountdb y en la Acciones menú, seleccione Grant.
  3. under Directores, seleccione Centro de identidad de IAM y elige Añada.
  4. Ingrese el grupo de IAM Identity Center en la barra de búsqueda y elija el grupo.
  5. Elige Asignar.
  6. under LF-Tags o recursos del catálogo, automountdb ya está seleccionado para Bases de datos.
  7. Mesas, escoger ny_pub.
  8. Seleccione Describir y Seleccione para Permisos de mesa.
  9. Elige Grant para aplicar los permisos.

Alternativamente, puede ejecutar el siguiente comando:

aws lakeformation grant-permissions --cli-input-json '
{
    "Principal": {
        "DataLakePrincipalIdentifier": "arn:aws:identitystore:::group/<identitycenter_group_name>"
    },
    "Resource": {
        "Table": {
            "DatabaseName": "automountdb",
            "Name": "ny_pub "
        }
    },
    "Permissions": [
        "SELECT",
        "DESCRIBE"

    ]
}'

Configurar el acceso a la tabla Redshift Spectrum para el grupo de IAM Identity Center

Complete los siguientes pasos para configurar el acceso a la tabla Redshift Spectrum:

  1. Inicie sesión en la consola de Amazon Redshift con la función de administrador.
  2. Navegue hasta el Editor de consultas v2.
  3. Elija el menú de opciones (tres puntos) al lado del grupo y elija Crear conexión.
  4. Conéctese como usuario administrador y ejecute los siguientes comandos para realizar la ny_pub datos en el lago de datos S3 disponibles para el grupo de ventas:
    create external schema if not exists nyc_external_schema from DATA CATALOG database 'automountdb' catalog_id '<accountid>'; 
    grant usage on schema nyc_external_schema to role "awsidc:awssso-sales"; 
    grant select on all tables in schema nyc_external_schema to role "awsidc:awssso- sales";

Validar el acceso a Redshift Spectrum como usuario de IAM Identity Center

Complete los siguientes pasos para validar el acceso:

  1. En la consola de Amazon Redshift, navegue hasta Query Editor v2.
  2. Elija el menú de opciones (tres puntos) al lado del grupo y elija Crear conexión
  3. Elija seleccionar la opción IAM Identity Center para la opción Conectar. Proporcione el nombre de usuario y la contraseña de Okta en la ventana emergente del navegador.
  4. Una vez conectado como usuario federado, ejecute los siguientes comandos SQL para consultar la tabla del lago de datos ny_pub:
select * from nyc_external_schema.ny_pub;

Caso de uso 2: intercambio de datos de corrimiento al rojo con Lake Formation

Este caso de uso supone que tiene configurada la integración de IAM Identity Center con Amazon Redshift, con la propagación de Lake Formation habilitada según las instrucciones proporcionadas en la sección anterior.

Cree un recurso compartido de datos con objetos y compártalo con el catálogo de datos

Complete los siguientes pasos para crear un recurso compartido de datos:

  1. Inicie sesión en la consola de Amazon Redshift con la función de administrador.
  2. Navegue hasta el Editor de consultas v2.
  3. Elija el menú de opciones (tres puntos) al lado del clúster de origen de Redshift y elija Crear conexión.
  4. Conéctese como usuario administrador usando credenciales temporales usando una opción de nombre de usuario de base de datos y ejecute los siguientes comandos SQL para crear un recurso compartido de datos:
    CREATE DATASHARE salesds; 
    ALTER DATASHARE salesds ADD SCHEMA sales_schema; 
    ALTER DATASHARE salesds ADD TABLE store_sales; 
    GRANT USAGE ON DATASHARE salesds TO ACCOUNT ‘<accountid>’ via DATA CATALOG;

  5. Autorice el intercambio de datos eligiendo Compartir datos en la página de navegación y seleccionando el recurso compartido de datos salesdb.
  6. Seleccione el recurso compartido de datos y elija Autorizar.

Ahora puede registrar el recurso compartido de datos en Lake Formation como una base de datos de AWS Glue.

  1. Inicie sesión en la consola de Lake Formation como usuario o rol de IAM del administrador del lago de datos.
  2. under Catálogo de datos en el panel de navegación, elija Compartir datos y vea las invitaciones para compartir datos de Redshift en el Configuración .
  3. Seleccione las ventas de datos compartidos y elija Invitación a revisar.
  4. Una vez que revises los detalles elige Aceptar.
  5. Proporcione un nombre para la base de datos de AWS Glue (por ejemplo, salesds) y elija Saltar a Revisar y crear.

Una vez creada la base de datos de AWS Glue en el recurso compartido de datos de Redshift, puede verla en Bases de datos compartidas.

Conceder permiso al grupo de usuarios de IAM Identity Center en la base de datos y la tabla de AWS Glue

Complete los siguientes pasos para otorgar permisos de base de datos al grupo de IAM Identity Center:

  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 salesds y en el Acciones menú, seleccione Grant.
  3. Elige Base de datos de subvenciones.
  4. En Directores, seleccione Centro de identidad de IAM y elige Añada.
  5. En la ventana emergente, ingrese el grupo de IAM Identity Center awssso en la barra de búsqueda y elija el grupo awssso-sales.
  6. Elige Asignar.
  7. under LF-Tags o recursos del catálogo, salesds ya está seleccionado para Bases de datos.
  8. Seleccione Describir para Permisos de la base de datos.
  9. Elige Grant para aplicar los permisos.

A continuación, otorgue permisos de tabla al grupo de IAM Identity Center.

  1. under Catálogo de datos en el panel de navegación, elija Bases de datos.
  2. Seleccione la base de datos salesds y en el Acciones menú, seleccione Grant.
  3. under Directores, seleccione Centro de identidad de IAM y elige Añada.
  4. En la ventana emergente, ingrese el grupo de IAM Identity Center awssso en la barra de búsqueda y elija el grupo awssso-sales.
  5. Elige Asignar.
  6. under LF-Tags o recursos del catálogo, salesds ya está seleccionado para Bases de datos.
  7. Mesas, elija sales_schema.store_sales.
  8. Seleccione Describir y Seleccione para Permisos de mesa.
  9. Elige Grant para aplicar los permisos.

Monte el esquema externo en el clúster de Redshift de destino y habilite el acceso para el usuario de IAM Identity Center

Complete los siguientes pasos:

  1. Inicie sesión en la consola de Amazon Redshift con la función de administrador.
  2. Navegue hasta el Editor de consultas v2.
  3. Conéctese como usuario administrador y ejecute los siguientes comandos SQL para montar los clientes de la base de datos de AWS Glue como un esquema externo y permitir el acceso al grupo de ventas:
create external schema if not exists sales_datashare_schema from DATA CATALOG database salesds catalog_id '<accountid>';
create role "awsidc:awssso-sales"; # If the role was not already created 
grant usage on schema sales_datashare_schema to role "awsidc:awssso-sales";
grant select on all tables in schema sales_datashare_schema to role "awsidc:awssso- sales";

Acceda a recursos compartidos de datos de Redshift como usuario de IAM Identity Center

Complete los siguientes pasos para acceder a los recursos compartidos de datos:

  1. En la consola de Amazon Redshift, navegue hasta Query Editor v2.
  2. Elija el menú de opciones (tres puntos) al lado del grupo y elija Crear conexión.
  3. Conéctese con IAM Identity Center y proporcione el usuario y la contraseña de IAM Identity Center en el inicio de sesión del navegador.
  4. Ejecute los siguientes comandos SQL para consultar la tabla del lago de datos:
SELECT * FROM "dev"."sales_datashare_schema"."sales_schema.store_sales";

Con la propagación de identidad transitiva ahora podemos auditar el acceso de los usuarios al conjunto de datos desde el panel de control de Lake Formation y el servicio utilizado para acceder al conjunto de datos, lo que proporciona una rastreabilidad completa. Para el usuario federado Ethan cuyo ID de usuario del Centro de identidad es '459e10f6-a3d0-47ae-bc8d-a66f8b054014', puede ver el siguiente registro de eventos.

"eventSource": "lakeformation.amazonaws.com",
    "eventName": "GetDataAccess",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "redshift.amazonaws.com",
    "userAgent": "redshift.amazonaws.com",
    "requestParameters": {
        "tableArn": "arn:aws:glue:us-east-1:xxxx:table/automountdb/ny_pub",
        "durationSeconds": 3600,
        "auditContext": {
            "additionalAuditContext": "{"invokedBy":"arn:aws:redshift:us-east-1:xxxx:dbuser:redshift-consumer/awsidc:ethan.doe@gmail.com", "transactionId":"961953", "queryId":"613842", "isConcurrencyScalingQuery":"false"}"
        },
        "cellLevelSecurityEnforced": true
    },
    "responseElements": null,
    "additionalEventData": {
        "requesterService": "REDSHIFT",
        "LakeFormationTrustedCallerInvocation": "true",
        "lakeFormationPrincipal": "arn:aws:identitystore:::user/459e10f6-a3d0-47ae-bc8d-a66f8b054014",
        "lakeFormationRoleSessionName": "AWSLF-00-RE-726034267621-K7FUMxovuq"
    }

Limpiar

Complete los siguientes pasos para limpiar sus recursos:

  1. Elimine los datos del depósito S3.
  2. Elimine la aplicación Lake Formation y el clúster aprovisionado de Redshift que creó para realizar pruebas.
  3. Inicie sesión en la consola de CloudFormation como el administrador de IAM utilizado para crear la pila de CloudFormation y elimine la pila que creó.

Conclusión

En esta publicación, cubrimos cómo simplificar la administración de acceso para análisis mediante la propagación de la identidad del usuario en Amazon Redshift y Lake Formation mediante IAM Identity Center. Aprendimos cómo comenzar con la propagación de identidades confiables conectándonos a Amazon Redshift y Lake Formation. También aprendimos cómo configurar Redshift Spectrum y el intercambio de datos para respaldar la propagación de identidades confiables.

Obtenga más información sobre IAM Identity Center con Desplazamiento al rojo de Amazon y Formación del lago AWS. Deje sus preguntas y comentarios en la sección de comentarios.


Acerca de los autores

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

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.

Maneesh Sharma es ingeniero sénior de bases de datos en AWS con más de una década de experiencia en el diseño e implementación de soluciones de almacenamiento y análisis de datos a gran escala. Colabora con varios socios y clientes de Amazon Redshift para impulsar una mejor integración.

Poulomi Dasgupta es arquitecto sénior de soluciones de análisis en AWS. Le apasiona ayudar a los clientes a crear soluciones de análisis basadas en la nube para resolver sus problemas comerciales. Fuera del trabajo, le gusta viajar y pasar tiempo con su familia.

punto_img

Información más reciente

punto_img