Acceso a un catálogo federado compartido - 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.

Acceso a un catálogo federado compartido

AWS Lake Formation Las funciones multicuenta permiten a los usuarios compartir de forma segura lagos de datos distribuidos entre varias Cuenta de AWS entidades u AWS organizaciones o directamente con los directores de IAM en otra cuenta, lo que proporciona un acceso detallado a los metadatos y a los datos subyacentes.

Lake Formation utiliza el servicio AWS Resource Access Manager (AWS RAM) para facilitar el intercambio de recursos. Cuando compartes un recurso del catálogo con otra cuenta, AWS RAM envía una invitación a la cuenta del concesionario para que acepte o rechace la concesión del recurso.

Los servicios analíticos integrados, como Amazon Athena y Redshift Spectrum, requieren enlaces a recursos para poder incluir recursos compartidos en las consultas. Los directores deben crear un enlace de recurso en su cuenta AWS Glue Data Catalog a un recurso compartido desde otro. Cuenta de AWS Para obtener más información sobre los enlaces de recursos, consulte Cómo funcionan los enlaces de recursos en Lake Formation.

Un contenedor de enlaces de catálogo es un objeto de catálogo de datos que hace referencia a un catálogo local o federado a nivel de base de datos entre cuentas desde otras cuentas. AWS También puede crear enlaces de bases de datos y enlaces de tablas dentro de un contenedor de enlaces de catálogo. Al crear un enlace a una base de datos o un enlace a una tabla, debe especificar un recurso de destino que resida en el mismo catálogo en el nivel de base de datos de Amazon Redshift de destino (base de datos de Amazon Redshift).

Para crear un contenedor de enlaces a un catálogo, necesita el permiso CREATE_CATALOG de Lake Formation o glue:CreateCatalog.

Debe tener la versión 4 de la configuración de versiones entre cuentas para compartir bases de datos o tablas del catálogo federado entre sí. Cuenta de AWS

Puede crear un contenedor de enlaces de catálogo que apunte a un catálogo federado a nivel de base de datos de Redshift en cualquier AWS región mediante la AWS Lake Formation consola, la AWS Glue CreateCatalog API o (). AWS Command Line Interface AWS CLI

Cómo crear un contenedor de enlaces de catálogo para un catálogo compartido (consola)
  1. Abra la consola en. AWS Lake Formation https://console.aws.amazon.com/lakeformation/ Inicie sesión como una entidad principal que tenga el permiso CREATE_CATALOG de Lake Formation.

  2. En el panel de navegación, elija Catálogos y, a continuación, elija Crear catálogo.

  3. En la página Establecer detalles del catálogo, facilite la siguiente información:

    Name

    Escriba un nombre que cumpla las mismas reglas que el nombre de un catálogo. El nombre puede ser el mismo que el del catálogo compartido de destino.

    Tipo

    Elija el contenedor de enlaces de catálogos como tipo de catálogo.

    origen

    Elija Redshift.

    Catálogo de Redshift de destino

    Seleccione un catálogo federado de nivel de base de datos de Redshift o elija un catálogo local (propio) en la lista.

    La lista contiene todos los catálogos compartidos con su cuenta. Observe que el ID de la cuenta del propietario del catálogo aparece con cada catálogo. Si no se muestra un catálogo que sabe que se ha compartido con su cuenta, compruebe lo siguiente:

    • Si no es administrador de un lago de datos, compruebe que el administrador del lago de datos le haya concedido los permisos de Lake Formation sobre el catálogo.

    • Si es administrador de un lago de datos y su cuenta no pertenece a la misma organización de AWS que la cuenta que los concede, asegúrese de haber aceptado la invitación para compartir recursos AWS Resource Access Manager (AWS RAM) del catálogo. Para obtener más información, consulte Aceptar una invitación para compartir recursos de AWS RAM.

    nota

    Al crear un contenedor de enlaces de catálogo a través de la consola, es posible que aparezca el menú desplegable Catálogo de Redshift de destino No matches al intentar seleccionar un catálogo de Redshift entre cuentas. A pesar de que se muestre, puede especificar manualmente el ARN de destino del catálogo federado de nivel de base de datos de Amazon Redshift (base de datos de Amazon Redshift) en el campo de entrada y el formulario seguirá funcionando correctamente. Por ejemplo: arn:aws:glue:us-east-1:123456789012:catalog/federated-catalog-redshift/dev.

    Este comportamiento se debe a que la consola solo puede buscar posibles candidatos dentro de la cuenta en la que se ha iniciado sesión actualmente. El menú desplegable está pensado como una función de autocompletar, pero aún puedes ingresarlo manualmente ARNs para acceder a varias cuentas.

  4. Para permitir que los motores de consultas de Apache Iceberg 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. Debe proporcionar un rol de IAM con los permisos necesarios para transferir datos hacia y desde el bucket de Amazon S3.

  5. Elija Siguiente.

  6. (Opcional) Elija Agregar permisos para conceder permisos a otras entidades principales.

    No obstante, conceder permisos en un contenedor de enlaces de catálogo no otorga permisos en el catálogo (vinculado) de destino. Debe conceder permisos en el catálogo de destino por separado para que el enlace al catálogo esté visible en Athena.

  7. A continuación, revise los detalles del contenedor de enlaces de catálogo y elija Crear catálogo.

    A continuación, puede ver el nombre del contenedor de enlaces en la página Catálogos.

    Ahora puede crear enlaces de bases de datos y enlaces de tablas en el contenedor de enlaces de catálogo para permitir el acceso desde los motores de consulta.

Ejemplo de la CLI para la creación de un contenedor de enlaces de catálogo
  • En el siguiente ejemplo, el objeto TargetRedshiftCatalog especifica el ARN del catálogo federado de nivel de base de datos de Amazon Redshift (base de datos de Amazon Redshift). DataLakeAccess debe estar habilitado al crear el contenedor de enlaces de catálogo.

    aws glue create-catalog \
      --cli-input-json 
        '{
            "Name": "linkcontainer", 
            "CatalogInput": {
                "TargetRedshiftCatalog": {
                   "CatalogArn": "arn:aws:us-east-1:123456789012:catalog/nscatalog/dev"
                 },
                "CatalogProperties": {
                  "DataLakeAccessProperties" : {
                    "DataLakeAccess" : true,
                    "DataTransferRole" : "arn:aws:iam::111122223333:role/DataTransferRole"
                 } 
               }
            }
        }'
              

Puede crear enlaces a recursos para enlaces de bases de datos y tablas dentro de un contenedor de enlaces de catálogo. Al crear enlaces a recursos de base de datos o enlaces a recursos de tabla, debe especificar un recurso de destino que resida en el mismo catálogo de nivel de base de datos de Amazon Redshift de destino (base de datos de Amazon Redshift) que el enlace al que señala el contenedor.

Puede crear un enlace de recurso a una base de datos o tabla de Amazon Redshift compartida mediante la AWS Lake Formation consola, la API o AWS Command Line Interface ()AWS CLI.

  • Para obtener instrucciones detalladas, consulte Crear un enlace de recursos a una base de datos de Catálogo de datos compartida.

    A continuación se muestra un AWS CLI ejemplo de cómo crear un enlace a un recurso de base de datos en un contenedor de enlaces de catálogo.

    aws glue create-database \
      --cli-input-json \
        '{
            "CatalogId": "111122223333:linkcontainer",
            "DatabaseInput": {
                "Name": "dblink",
                 "TargetDatabase": {
                   "CatalogId": "123456789012:nscatalog/dev",
                    "DatabaseName": "schema1"
                 }
            }
        }'
            
  • Para crear un enlace de recursos de tabla en un contenedor de enlaces de catálogo, primero debe crear una AWS Glue base de datos en el entorno local AWS Glue Data Catalog que contenga el enlace de recursos de tabla.

    Para obtener más información sobre la creación de enlaces de recursos para tablas compartidas, consulte Crear un enlace de recursos a una tabla de Catálogo de datos compartida.

    • Ejemplo de la CLI para la creación de una base de datos que contenga el enlace a los recursos de tabla

      aws glue create-database \
        --cli-input-json \
            '{
                "CatalogId": "111122223333:linkcontainer",
                "DatabaseInput": {
                    "Name": "db1",
                    "Description": "creating parent database for table link"
                }
            }'
                    
    • Ejemplo de creación de enlaces de recursos de tabla

      aws glue create-table \
        --cli-input-json \
          '{
              "CatalogId": "111122223333:linkcontainer",
               "DatabaseName": "db1",
              "TableInput": {
                  "Name": "tablelink",
                  "TargetTable": {
                      "CatalogId": "123456789012:nscatalog/dev",
                     "DatabaseName": "schema1", 
                      "Name": "table1"
                   }
              }
          }'