Creación de catálogos federados de Amazon Redshift - 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.

Creación de catálogos federados de Amazon Redshift

En este tema, se describen los pasos que debe seguir para aceptar una invitación a un clúster o espacio de nombres, crear un catálogo federado de varios niveles y conceder permisos a otras entidades principales. Puede completar estas tareas con la consola de Lake Formation, el AWS Command Line Interface (AWS CLI) o APIs/SDKs. Los ejemplos de este tema muestran el clúster/espacio de nombres productor, el Catálogo de datos y el consumidor de datos en la misma cuenta.

Para obtener más información sobre las capacidades entre cuentas de Lake Formation, consulte Compartir datos entre cuentas en Lake Formation.

Cómo administrar un espacio de nombres de Amazon Redshift en el Catálogo de datos
  1. Revise una invitación al espacio de nombres y acéptela.

    Console
    1. Inicie sesión en la consola de Lake Formation como administrador de un lago de datos en https://console.aws.amazon.com/lakeformation/. Vaya a la página Catálogos en Catálogo de datos.

    2. Revise la invitación al espacio de nombres para el que tiene autorización de acceso. La columna Estado indica su estado de participación actual en el espacio de nombres. El estado No aceptada indica que se le ha agregado al espacio de nombres pero aún no ha aceptado la invitación o la ha rechazado.

      La página Catálogos con las invitaciones pendientes.
    3. Para responder a una invitación a un espacio de nombres o a un clúster, seleccione el nombre de la invitación y elija Revisar invitación. En Aceptar o rechazar invitación, revise los detalles de la invitación. Seleccione Aceptar para aceptar la invitación o Rechazar para rechazarla. Si rechaza la invitación, no obtendrá acceso al espacio de nombres.

    AWS CLI

    En los ejemplos siguientes se muestra cómo ver, aceptar y registrar la invitación. Sustituya la Cuenta de AWS identificación por una Cuenta de AWS identificación válida. Sustituya data-share-arn por el nombre de recurso de Amazon (ARN) real que hace referencia al espacio de nombres.

    1. Consulte una invitación pendiente.

      aws redshift describe-data-shares \ --data-share-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace' \
    2. Acepte una invitación.

      aws redshift associate-data-share-consumer \ --data-share-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace' \ --consumer-arn 'arn:aws:glue:us-east-1:123456789012:catalog'
    3. Registre el clúster o espacio de nombres en la cuenta de Lake Formation. Utilice la operación RegisterResourceAPI para registrar el datashare en Lake Formation. DataShareArnes el parámetro de entrada de. ResourceArn

      nota

      Este es un paso obligatorio.

      aws lakeformation register-resource \ --resource-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace'
  2. Cree un catálogo federado.

    Tras aceptar la invitación, debe crear un catálogo federado en el Catálogo de datos que asigne los objetos del espacio de nombres de Amazon Redshift al Catálogo de datos. Debe ser administrador de lago de datos o un usuario o rol con los permisos necesarios para crear un catálogo.

    Console
    1. Tras aceptar la invitación al espacio de nombres, aparecerá la página Establecer detalles del catálogo.

    2. En la página Establecer detalles del catálogo, escriba un nombre exclusivo para el catálogo. Utilice minúsculas para los nombres de los catálogos. Los nombres de catálogo deben tener 255 caracteres o menos. Puede utilizar este identificador para asignar el espacio de nombres internamente en la jerarquía de metadatos (catalogid.dbName.schema.table).

    3. Escriba una descripción para el catálogo. La descripción debe tener 2048 caracteres o menos.

    4. A continuación, elija la casilla de verificación Acceso a este catálogo desde motores compatibles con Iceberg para permitir el acceso a los recursos de Amazon Redshift mediante motores analíticos compatibles con Apache Iceberg, como Athena y Apache Spark en Amazon EMR.

      No necesita habilitar el acceso al lago de datos para acceder a los catálogos federados mediante Amazon Redshift.

      La página de creación de catálogos con opciones de habilitación de acceso.
    5. Para permitir que estos motores de consultas lean y escriban en los espacios de nombres de Amazon Redshift, AWS Glue crea un clúster de Amazon Redshift administrado con los recursos informáticos y de almacenamiento necesarios para realizar operaciones de lectura y escritura sin afectar a las cargas de trabajo del almacén de datos de Amazon Redshift.

      También debe proporcionar un rol de IAM con los permisos necesarios para transferir datos hacia y desde el bucket de Amazon S3.

    6. De forma predeterminada, los datos del clúster de Amazon Redshift se cifran mediante una clave AWS gestionada. Lake Formation ofrece una opción para crear la clave de KMS personalizada para el cifrado. Si utiliza una clave administrada por el cliente, debe agregar políticas de claves específicas a la clave.

      Elija Personalización de la configuración de cifrado si utiliza una clave administrada por el cliente para cifrar los datos del espacio de nombres o clúster de Amazon Redshift. Para usar una clave personalizada, debe agregar una política de claves administradas personalizadas adicionales a la clave de KMS. Para obtener más información, consulte Requisitos previos para administrar los espacios de nombres de Amazon Redshift en AWS Glue Data Catalog.

    AWS CLI

    Utilice el siguiente código de ejemplo para crear un catálogo con los datos de Amazon Redshift publicados en el Catálogo de datos mediante la AWS CLI.

    aws glue create-catalog --cli-input-json \ '{ "Name": "nscatalog", "CatalogInput": { "Description": "Redshift federated catalog", "CreateDatabaseDefaultPermissions" : [], "CreateTableDefaultPermissions": [], "FederatedCatalog": { "Identifier": "arn:aws:redshift:us-east-1:123456789012:datashare:11524d7f-f56d-45fe-83f7-d7bb0a4d6d71/ds_internal_namespace", "ConnectionName": "aws:redshift" }, "CatalogProperties": { "DataLakeAccessProperties" : { "DataLakeAccess" : true, "DataTransferRole" : "arn:aws:iam::123456789012:role/DataTransferRole" } } } }'
  3. Otorgue permisos a los usuarios de su cuenta o de cuentas externas.

    Consola de administración de AWS
    1. Seleccione Siguiente para conceder permisos a otros usuarios sobre los catálogos, bases de datos y tablas compartidos.

    2. En la pantalla Agregar permisos, elija las entidades principales y los tipos de permisos que desea conceder.

      La página de permisos de catálogo con el tipo de entidad principal y las opciones de concesión.
      1. En la sección Entidades principales, elija uno de los tipos y, a continuación, especifique las que van a recibir los permisos concedidos.

        • Usuarios y roles de IAM: elija uno o varios usuarios o roles de la lista de usuarios y roles de IAM.

        • Usuarios y grupos de SAML: para SAML y Amazon Quick Suite usuarios y grupos, introduzca uno o más nombres de recursos de Amazon (ARNs) para los usuarios o grupos federados a través de SAML, o para los usuarios o grupos de ARNs Amazon Quick Suite. Pulse Intro después de cada ARN.

          Para obtener información sobre cómo crearlos ARNs, consulte los comandos AWS CLI grant y revoke. AWS CLI

        • Cuentas externas: para AWS AWS la organización o el director de IAM, introduzca una o más AWS cuentas IDs, organizaciones IDs IDs, unidades organizativas o ARN válidos para el usuario o rol de IAM. Pulse Intro después de cada ID. El ID de una organización consta de una «o-» seguida de 10 a 32 letras minúsculas o dígitos. Un ID de una unidad organizativa comienza por «ou-» seguidos de 4 a 32 letras minúsculas o dígitos (el ID de la raíz que contiene la UO). Esta cadena va seguida de un segundo guion «-» y de 8 a 32 letras minúsculas o dígitos adicionales.

      2. En la sección Permisos, seleccione los permisos y los permisos concedibles.

        En Permisos de catálogo, seleccione uno o más permisos para conceder. En Permisos concedibles, selecciona los permisos que el destinatario de la subvención puede conceder a otros directores de su cuenta. AWS Esta opción no es compatible cuando se conceden permisos a una entidad principal de IAM desde una cuenta externa.

        Elija Superusuario para conceder al usuario permisos ilimitados en los recursos (bases de datos, tablas y vistas) del catálogo.

    3. Elija Agregar.

    AWS CLI

    Utilice los siguientes ejemplos para conceder permisos en catálogos, bases de datos y tablas mediante la AWS CLI:

    • En el siguiente ejemplo, se muestra cómo conceder permisos en el catálogo federado.

      aws lakeformation grant-permissions --cli-input-cli-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin" }, "Resource": { "Catalog": { "Id": "123456789012:nscatalog" } }, "Permissions": [ "DESCRIBE","CREATE_CATALOG" ], "PermissionsWithGrantOption": [ ] }'
    • Utilice la siguiente política de ejemplo para conceder permisos sobre una base de datos.

      aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin" }, "Resource": { "Database": { "CatalogId": "123456789012:nscatalog/dev", "Name": "public" } }, "Permissions": [ "ALL" ] }'
    • En el siguiente ejemplo, se muestra cómo conceder permisos en una tabla en la base de datos de Amazon Redshift.

      aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin" }, "Resource": { "Table": { "CatalogId": "123456789012:nscatalog2/dev", "DatabaseName": "public", "TableWildcard" : {} } }, "Permissions": [ "ALL" ] }'
  4. Seleccione Siguiente para revisar los detalles del catálogo y crear un catálogo federado. El catálogo federado recién creado y los objetos del catálogo aparecen en la página Catálogos.

    Se hace referencia a un catálogo federado de Amazon Redshift con catalogID = 123456789012:Redshift-federated catalog id.