

# Creación de integraciones sin ETL de Aurora con un Amazon SageMaker Lakehouse
<a name="zero-etl.creating-smlh"></a>

Cuando crea una integración sin ETL de Aurora con un Amazon SageMaker Lakehouse, debe especificar un clúster de base de datos de Aurora de origen y el catálogo administrado por AWS Glue de destino. También puede personalizar la configuración de cifrado y añadir etiquetas. Aurora crea una integración entre el clúster de base de datos de origen y su destino. Una vez que la integración esté activa, todos los datos que inserte en el clúster de base de datos de origen se replicarán en el destino configurado.

## Requisitos previos
<a name="zero-etl.create-prereqs-smlh"></a>

Antes de crear una integración sin ETL con un Amazon SageMaker Lakehouse, debe crear un clúster de base de datos de origen y un catálogo administrado por AWS Glue de destino. También debe permitir la replicación en el catálogo agregando el clúster de base de datos como origen de integración autorizado.

Para obtener instrucciones para completar cada uno de estos pasos, consulte [Introducción a las integraciones sin ETL de Aurora](zero-etl.setting-up.md).

## Permisos necesarios
<a name="zero-etl.create-permissions-smlh"></a>

Se necesitan determinados permisos de IAM para crear una integración sin ETL con un Amazon SageMaker Lakehouse. Como mínimo, necesita permisos para realizar las siguientes acciones:
+ Crear integraciones sin ETL para el clúster de base de datos de Aurora de origen.
+ Ver y eliminar todas las integraciones sin ETL.
+ Cree integraciones entrantes en el catálogo administrado por AWS Glue de destino.
+ Acceda a los buckets de Amazon S3 que utiliza el catálogo administrado por AWS Glue.
+ Utilice claves de AWS KMS para el cifrado si está configurado un cifrado personalizado.
+ Registre recursos con Lake Formation.
+ Incluya la política de recursos en el catálogo administrado por AWS Glue para autorizar las integraciones entrantes.

La política de ejemplo siguiente demuestra los [permisos con privilegios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) necesarios para crear y administrar integraciones con un Amazon SageMaker Lakehouse. Es posible que no necesite estos permisos exactos si su usuario o rol tiene permisos más amplios, como una política administrada `AdministratorAccess`.

Además, debe configurar una política de recursos en el catálogo administrado por AWS Glue de destino para autorizar las integraciones entrantes. Use el comando de la AWS CLI siguiente para aplicar la política de recursos.

### Comando de la AWS CLI de ejemplo para autorizar las integraciones entrantes en el catálogo de destino
<a name="zero-etl.create-sample-policy-smlh"></a>

```
aws glue put-resource-policy \
      --policy-in-json  '{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Principal": {
            "Service": "glue.amazonaws.com"
        },
        "Action": [
            "glue:AuthorizeInboundIntegration"
        ],
        "Resource": ["arn:aws:glue:region:account_id:catalog/catalog_name"],
        "Condition": {
            "StringEquals": {
                "aws:SourceArn": "arn:aws:rds:region:account_id:db:source_name"
            }
        }
    },
    {
        "Effect": "Allow",
        "Principal": {
            "AWS": "account_id"
        },
        "Action": ["glue:CreateInboundIntegration"],
        "Resource": ["arn:aws:glue:region:account_id:catalog/catalog_name"]
    }
    ]
}' \
      --region region
```

**nota**  
Los nombres de recurso de Amazon (ARN) del catálogo de Glue tienen el siguiente formato:  
Catálogo de Glue: `arn:aws:glue:{region}:{account-id}:catalog/catalog-name`

### Elección de un catálogo administrado por AWS Glue de destino en una cuenta diferente
<a name="zero-etl.create-permissions-cross-account-smlh"></a>

Si piensa especificar un catálogo administrado por AWS Glue de destino que está en otra Cuenta de AWS, debe crear un rol que permita a los usuarios de la cuenta actual acceder a los recursos de la cuenta de destino. Para obtener más información, consulte [Proporcionar acceso a un usuario de IAM a otra Cuenta de AWS propia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html).

El rol debe tener los siguientes permisos, que permiten al usuario ver los catálogos de AWS Glue disponibles en la cuenta de destino.

#### Permisos necesarios y política de confianza
<a name="zero-etl.cross-account-sample-policy-smlh"></a>

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "glue:GetCatalog"
         ],
         "Resource":[
            "*"
         ]
      }
   ]
}
```

------

El rol debe tener la siguiente política de confianza, que especifica el ID de la cuenta de destino.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "AWS": "arn:aws:iam::111122223333:root"
         },
         "Action":"sts:AssumeRole"
      }
   ]
}
```

------

Para obtener instrucciones sobre cómo crear los roles, consulte [Creación de un rol mediante políticas de confianza personalizadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html).

## Creación de integraciones sin ETL con un Amazon SageMaker Lakehouse
<a name="zero-etl.create-smlh"></a>

Puede crear una integración sin ETL con un Amazon SageMaker Lakehouse mediante la Consola de administración de AWS, la AWS CLI o la API de RDS.

**importante**  
Las integraciones sin ETL con un Amazon SageMaker Lakehouse no admiten operaciones de actualización o resincronización. Si encuentra problemas con una integración después de la creación, debe eliminarla y crear una nueva.

### Consola de RDS
<a name="zero-etl.create-console-smlh"></a>

**Creación de una integración sin ETL con un Amazon SageMaker Lakehouse**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación izquierdo, elija **Integraciones sin ETL**.

1. Elija **Crear integración sin ETL**.

1. En **Identificador de la integración**, introduzca un nombre para la integración. El nombre puede tener hasta 63 caracteres alfanuméricos y puede incluir guiones.

1. Elija **Siguiente**.

1. En **Origen**, seleccione el clúster de base de datos de Aurora donde se originarán los datos.
**nota**  
RDS le avisa si los parámetros del clúster de base de datos no están configurados correctamente. Si aparece este mensaje, puede elegir la opción **Corregir automáticamente** o configurarlos manualmente. Para obtener instrucciones sobre cómo corregirlos manualmente, consulte [Crear un grupo de parámetros de clúster de base de datos personalizado](zero-etl.setting-up.md#zero-etl.parameters).  
Para modificar los parámetros del clúster de base de datos es necesario reiniciar. Para crear la integración, es necesario completar el reinicio y aplicar correctamente los nuevos valores de parámetros en el clúster.

1. (Opcional) Seleccione **Personalizar las opciones de filtrado de datos** y agregue filtros de datos a la integración. Puede usar filtros de datos para definir el alcance de la replicación en el Amazon SageMaker Lakehouse de destino. Para obtener más información, consulte [Filtrado de datos para integraciones sin ETL de Aurora](zero-etl.filtering.md).

1. Cuando el clúster de base de datos de origen esté configurado correctamente, seleccione **Siguiente**.

1. En **Destino**, haga lo siguiente:

   1. (Opcional) Para utilizar una Cuenta de AWS diferente para el Amazon SageMaker Lakehouse de destino, elija **Especificar una cuenta diferente**. A continuación, ingrese el ARN de un rol de IAM con permisos para mostrar los catálogos de AWS Glue. Para obtener instrucciones para crear el rol de IAM, consulte [Elección de un catálogo administrado por AWS Glue de destino en una cuenta diferente](#zero-etl.create-permissions-cross-account-smlh).

   1. Para el **catálogo de AWS Glue**, seleccione el destino de los datos replicados del clúster de la base de datos de origen. Puede elegir un catálogo administrado por AWS Glue existente como destino.

   1. El rol de IAM de destino necesita permisos de descripción en el catálogo de destino y debe tener los siguientes permisos:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "VisualEditor0",
                  "Effect": "Allow",
                  "Action": "glue:GetCatalog",
                  "Resource": [
                      "arn:aws:glue:us-east-1:111122223333:catalog/*",
                      "arn:aws:glue:us-east-1:111122223333:catalog"
                  ]
              }
          ]
      }
      ```

------

      El rol de IAM de destino debe tener la siguiente relación de confianza:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "glue.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Debe conceder al rol de IAM de destino permisos de descripción para el catálogo administrado por AWS Glue de destino con el rol de administrador de Lake Formation creado en [Paso 3b: creación de un catálogo de AWS Glue para una integración sin ETL de Amazon SageMaker Lakehouse](zero-etl.setting-up.md#zero-etl-setting-up.sagemaker).
**nota**  
RDS le notificará si la política de recursos o la configuración del catálogo administrado por AWS Glue especificado no están configurados correctamente. Si aparece este mensaje, puede elegir la opción **Corregir automáticamente** o configurarlas manualmente.  
Si el origen y el destino seleccionados están en Cuentas de AWS diferentes, Amazon RDS no podrá corregir esta configuración automáticamente. Debe acceder a la otra cuenta y corregirla manualmente en SageMaker Unified Studio.

1. Una vez que el catálogo administrado por AWS Glue de destino esté configurado correctamente, elija **Siguiente**.

1. (Opcional) En **Etiquetas**, añada una o más etiquetas al trabajo de integración. Para obtener más información, consulte [Etiquetado de los recursos de Amazon Aurora y Amazon RDS](USER_Tagging.md).

1. En el caso del **cifrado**, especifique cómo desea que se cifra la integración. De forma predeterminada, RDS cifra todas las integraciones con una Clave propiedad de AWS. Para elegir una clave administrada por el cliente en su lugar, active **Personalizar la configuración de cifrado** y elija una clave de KMS para usarla en el cifrado. Para obtener más información, consulte [Cifrado de recursos de Amazon Aurora](Overview.Encryption.md).

   Si lo desea, añada un contexto de cifrado. Para obtener más información, consulte [Contexto de cifrado](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) en la *Guía para desarrolladores de AWS Key Management Service*.
**nota**  
Amazon RDS añade los siguientes pares de contexto de cifrado (además de los que usted incluya):  
`aws:glue:integration:arn` - `IntegrationArn`
`aws:servicename:id` - `glue`
Esto reduce el número total de pares que se pueden añadir (de 8 a 6) y contribuye al límite total de caracteres en la restricción de concesiones. Para obtener más información, consulte [Uso de restricciones de concesiones](https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints) en la *Guía para desarrolladores de AWS Key Management Service*.

1. Elija **Siguiente**.

1. Revise la configuración de integración y elija **Crear integración sin ETL**.

   Si se produce un error en la creación, consulte [Solución de problemas de integraciones sin ETL de Aurora](zero-etl.troubleshooting.md) para ver los pasos de solución de problemas.

La integración tiene un estado de `Creating` mientras se crea y el Amazon SageMaker Lakehouse de destino tiene un estado de `Modifying`. Durante este tiempo, no puede consultar el catálogo ni realizar ningún cambio de configuración en él.

Cuando la integración se crea correctamente, el estado de la integración y el Amazon SageMaker Lakehouse de destino cambian a `Active`.

### AWS CLI
<a name="zero-etl.create-cli-smlh"></a>

Para preparar un catálogo administrado por AWS Glue de destino para una integración sin ETL utilizando la AWS CLI, primero debe utilizar el comando [create-integration-resource-property](https://docs.aws.amazon.com/cli/latest/reference/rds/create-integration.html) con las siguientes opciones:
+ `--resource-arn`: especifique el ARN del catálogo administrado por AWS Glue que será el destino de la integración.
+ `--target-processing-properties`: especifique el ARN del rol de IAM para acceder al catálogo administrado por AWS Glue de destino 

```
aws glue create-integration-resource-property --region us-east-1
 --resource-arn arn:aws:glue:region:account_id:catalog/catalog_name \
 --target-processing-properties '{"RoleArn" : "arn:aws:iam::account_id:role/TargetIamRole"}'
```

Para crear una integración sin ETL mediante un Amazon SageMaker Lakehouse, utilice la AWS CLI, use el comando [create-integration](https://docs.aws.amazon.com/cli/latest/reference/rds/create-integration.html) con las siguientes opciones:
+ `--integration-name`: especifique un nombre para la integración.
+ `--source-arn`: especifique el ARN de la del clúster de base de datos de Aurora que será el origen de la integración.
+ `--target-arn`: especifique el ARN del catálogo administrado por AWS Glue que será el destino de la integración.

**Example**  
Para Linux, macOS o Unix:  

```
aws rds create-integration \
    --integration-name my-sagemaker-integration \
    --source-arn arn:aws:rds:{region}:{account-id}:cluster:my-db \
    --target-arn arn:aws:glue:{region}:{account-id}:catalog/catalog-name
```
Para Windows:  

```
aws rds create-integration ^
    --integration-name my-sagemaker-integration ^
    --source-arn arn:aws:rds:{region}:{account-id}:cluster:my-db ^
    --target-arn arn:aws:glue:{region}:{account-id}:catalog/catalog-name
```

### API de RDS
<a name="zero-etl.create-api-smlh"></a>

Para crear una integración sin ETL con Amazon SageMaker mediante la API de Amazon RDS, utilice la operación [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html) con los siguientes parámetros:

**nota**  
Los nombres de catálogo están limitados a 19 caracteres. Asegúrese de que el parámetro IntegrationName cumpla este requisito si se va a utilizar como nombre de catálogo.
+ `IntegrationName`: especifique un nombre para la integración.
+ `SourceArn`: especifique el ARN de la del clúster de base de datos de Aurora que será el origen de la integración.
+ `TargetArn`: especifique el ARN del catálogo administrado por AWS Glue que será el destino de la integración.

## Cifrado de integraciones con una clave administrada por el cliente
<a name="zero-etl.create-encrypt-smlh"></a>

Si especifica una clave de KMS personalizada en lugar de una Clave propiedad de AWS al crear una integración con Amazon SageMaker, la política de claves debe proporcionar a la entidad principal de servicio SageMaker Unified Studio acceso a la acción `CreateGrant`. Además, debe permitir al usuario actual realizar las acciones `DescribeKey` y `CreateGrant`.

En la siguiente política de muestra se demuestra cómo proporcionar los permisos necesarios en su política de claves. Incluye claves de contexto que sirven para reducir aún más el alcance de los permisos.

### Política de claves de muestra
<a name="zero-etl.kms-sample-policy"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Key policy",
    "Statement": [
        {
            "Sid": "EnablesIAMUserPermissions",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "GlueServicePrincipalAddGrant",
            "Effect": "Allow",
            "Principal": {
                "Service": "glue.amazonaws.com"
            },
            "Action": "kms:CreateGrant",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:{context-key}":"{context-value}"
                },
                "ForAllValues:StringEquals": {
                    "kms:GrantOperations": [
                        "Decrypt",
                        "GenerateDataKey",
                        "CreateGrant"
                    ]
                }
            }
        },
        {
            "Sid": "AllowsCurrentUserRoleAddGrantKMSKey",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/{role-name}"
            },
            "Action": "kms:CreateGrant",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:{context-key}":"{context-value}",
                    "kms:ViaService": "rds.us-east-1.amazonaws.com"
                },
                "ForAllValues:StringEquals": {
                    "kms:GrantOperations": [
                        "Decrypt",
                        "GenerateDataKey",
                        "CreateGrant"
                    ]
                }
            }
        },
        {
            "Sid": "AllowsCurrentUserRoleRetrieveKMSKeyInformation",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/{role-name}"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*"
        }
    ]
}
```

------

Para obtener más información, consulte [Creating a key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) en la *Guía del desarrollador de AWS Key Management Service*.

## Siguientes pasos
<a name="zero-etl.create-next-smlh"></a>

Después de crear correctamente una integración sin ETL con Amazon SageMaker, puede comenzar a agregar datos a clúster de base de datos de Aurora de destino, y consultarlos en el Amazon SageMaker Lakehouse. Los datos se replicarán automáticamente y estarán disponibles para las cargas de trabajo de análisis y machine learning.