

# Criar Integrações ETL zero entre o Aurora e um lakehouse do Amazon SageMaker
<a name="zero-etl.creating-smlh"></a>

Ao criar uma Integração ETL zero entre o Aurora e um lakehouse do Amazon SageMaker, você deve especificar o cluster do banco de dados do Aurora de origem e o catálogo de destino gerenciado pelo AWS Glue. Você também pode personalizar as configurações de criptografia e adicionar etiquetas. O Aurora cria uma integração entre o cluster de banco de dados de origem e o destino. Quando a integração estiver ativa, todos os dados inseridos no cluster de banco de dados de origem serão replicados no destino configurado.

## Pré-requisitos
<a name="zero-etl.create-prereqs-smlh"></a>

Antes de criar uma Integração ETL zero com um lakehouse do Amazon SageMaker, você deve criar um cluster de banco de dados de origem e um catálogo de destino gerenciado pelo AWS Glue. Também é necessário permitir a replicação no catálogo adicionando o cluster de banco de dados como uma origem de integração autorizada.

Para obter instruções sobre como concluir cada uma dessas etapas, consulte [Conceitos básicos sobre Integrações ETL zero do Aurora](zero-etl.setting-up.md).

## Permissões obrigatórias
<a name="zero-etl.create-permissions-smlh"></a>

Algumas permissões do IAM são necessárias para criar uma Integração ETL zero com o lakehouse do Amazon SageMaker. No mínimo, são necessárias permissões para executar as seguintes ações:
+ Crie integrações ETL zero para o cluster de banco de dados do Aurora de origem.
+ Visualizar e excluir todas as integrações ETL zero.
+ Criar integrações de entrada no catálogo de destino gerenciado pelo AWS Glue.
+ Acessar os buckets do Amazon S3 usados pelo catálogo gerenciado pelo AWS Glue.
+ Usar chaves do AWS KMS para criptografia se a criptografia personalizada estiver configurada.
+ Registrar recursos com o Lake Formation.
+ Inserir a política de recursos no catálogo gerenciado pelo AWS Glue para autorizar integrações de entrada.

O exemplo de política a seguir demonstra as [permissões de privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) necessárias para criar e gerenciar integrações com um lakehouse do Amazon SageMaker. Talvez você não precise dessas permissões exatas se o usuário ou o perfil tiver permissões mais amplas, como uma política gerenciada `AdministratorAccess`.

Além disso, você deve configurar uma política de recursos no catálogo de destino gerenciado pelo AWS Glue para autorizar integrações de entrada. Use o comando da AWS CLI a seguir para aplicar a política de recursos.

### Exemplo de comando da AWS CLI para autorizar integrações de entrada no 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**  
Os nomes de recurso da Amazon (ARNs) do catálogo do Glue têm o seguinte formato:  
Catálogo do Glue: `arn:aws:glue:{region}:{account-id}:catalog/catalog-name`.

### Escolher um catálogo de destino gerenciado pelo AWS Glue em uma conta diferente
<a name="zero-etl.create-permissions-cross-account-smlh"></a>

Se você planeja especificar um catálogo de destino gerenciado pelo AWS Glue que esteja em outra Conta da AWS, deverá criar um perfil que permita que os usuários da conta atual acessem os recursos na conta de destino. Para obter mais informações, consulte [Fornecer acesso a um usuário do IAM em outra Conta da AWS de sua propriedade](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html).

O perfil deve ter as permissões a seguir, que possibilitam ao usuário visualizar os catálogos disponíveis do AWS Glue na conta de destino.

#### Permissões necessárias e política de confiança
<a name="zero-etl.cross-account-sample-policy-smlh"></a>

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

****  

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

------

O perfil deve ter a seguinte política de confiança, que especifica o ID da conta de destino.

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

****  

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

------

Para obter instruções sobre como criar o perfil, consulte [Criar um perfil usando políticas de confiança personalizadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html).

## Criar Integrações ETL zero com um lakehouse do Amazon SageMaker
<a name="zero-etl.create-smlh"></a>

É possível criar uma Integração ETL zero com um lakehouse do Amazon SageMakerusando o Console de gerenciamento da AWS, a AWS CLI ou a API do RDS.

**Importante**  
Em Integrações ETL zero com um lakehouse do Amazon SageMaker, não é possível usar operações de atualização ou ressincronização. Se você encontrar problemas com uma integração após a criação, deverá excluir a integração e criar outra.

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

**Como criar Integrações ETL zero com um lakehouse do Amazon SageMaker**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação à esquerda, escolha **Integrações ETL zero**.

1. Escolha **Criar integração ETL zero**.

1. Em **Nome da integração**, insira um nome para a integração. O nome pode ter até 60 caracteres alfanuméricos e pode incluir hifens.

1. Escolha **Próximo**.

1. Em **Origem**, selecione o cluster de banco de dados do Aurora de onde os dados serão originados.
**nota**  
O RDS notifica você se os parâmetros do cluster de banco de dados não estiverem configurados corretamente. Se você receber essa mensagem, poderá escolher **Corrigir para mim** ou configurá-las manualmente. Para obter instruções sobre como corrigi-los manualmente, consulte[Etapa 1: criar um grupo de parâmetros de cluster de banco de dados personalizado](zero-etl.setting-up.md#zero-etl.parameters).  
A modificação dos parâmetros do cluster de banco de dados requer uma reinicialização. Antes de criar a integração, a reinicialização deve ser concluída e os valores do novo parâmetro deve ser aplicado com êxito ao cluster.

1. (Opcional) Selecione **Personalizar opções de filtragem de dados** e adicione filtros de dados à integração. É possível usar filtros de dados para definir o escopo da replicação para o lakehouse de destino do Amazon SageMaker. Para obter mais informações, consulte [Filtragem de dados para Integrações ETL zero do Aurora](zero-etl.filtering.md).

1. Depois que o cluster de banco de dados de origem for configurado com êxito, selecione **Próximo**.

1. Em **Destino 1**, faça o seguinte:

   1. (Opcional) Para usar uma Conta da AWS diferente para o lakehouse de destino do Amazon SageMaker, escolha **Especificar uma conta diferente**. Depois, insira o ARN de um perfil do IAM com permissões para exibir seus catálogos do AWS Glue. Para obter instruções sobre como criar um perfil do IAM, consulte [Escolher um catálogo de destino gerenciado pelo AWS Glue em uma conta diferente](#zero-etl.create-permissions-cross-account-smlh).

   1. Em **Catálogo do AWS Glue**, selecione o destino para os dados replicados do cluster de banco de dados de origem. Você pode escolher um catálogo existente gerenciado pelo AWS Glue como destino.

   1. O perfil do IAM de destino precisa de permissões de descrição no catálogo de destino e deve ter as seguintes permissões:

------
#### [ 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"
                  ]
              }
          ]
      }
      ```

------

      O perfil do IAM deve ter a seguinte relação de confiança:

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

****  

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

------

   1. Você deve conceder ao perfil do IAM de destino as permissões de descrição referentes ao catálogo de destino gerenciado pelo AWS Glue com o perfil de administrador do Lake Formation criado na seção [Etapa 3b: criar um catálogo do AWS Glue para uma Integração ETL zero do Amazon SageMaker Lakehouse](zero-etl.setting-up.md#zero-etl-setting-up.sagemaker).
**nota**  
O RDS notificará você se a política de recursos ou as configurações do catálogo gerenciado pelo AWS Glue especificado não estiverem configuradas corretamente. Se você receber essa mensagem, poderá escolher **Corrigir para mim** ou configurá-las manualmente.  
Se a origem e o destino selecionados estiverem em valores diferentesContas da AWS, o Amazon RDS não poderá corrigir essas configurações para você. Você deve navegar até a outra conta e corrigi-la manualmente no SageMaker Unified Studio.

1. Depois que o catálogo de destino gerenciado pelo AWS Glue estiver configurado corretamente, escolha **Próximo**.

1. (Opcional) Em **Etiquetas**, adicione uma ou mais etiquetas à integração. Para obter mais informações, consulte [Marcar recursos do Amazon Aurora e do Amazon RDS](USER_Tagging.md).

1. Em **Criptografia**, especifique como você deseja que sua integração seja criptografada. Por padrão, o RDS criptografa todas as integrações com uma Chave pertencente à AWS. Para escolher uma chave gerenciada pelo cliente em vez disso, habilite a opção **Personalizar configurações de criptografia** e escolha uma chave do KMS para criptografia. Para obter mais informações, consulte [Criptografar recursos do Amazon Aurora](Overview.Encryption.md).

   Como opção, adicione um contexto de criptografia. Para obter mais informações, consulte [Contexto de criptografia](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) no *Guia do desenvolvedor AWS Key Management Service*.
**nota**  
O Amazon RDS adiciona os seguintes pares de contexto de criptografia, além dos adicionados por você:  
`aws:glue:integration:arn` - `IntegrationArn`
`aws:servicename:id` - `glue`
Isso reduz o número geral de pares que você pode adicionar de oito para seis e contribui com o limite geral de caracteres da restrição de concessão. Para ter mais informações, consulte [Using grant constraints](https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints) no *Guia do desenvolvedor do AWS Key Management Service*.

1. Escolha **Próximo**.

1. Revise suas configurações de integração e escolha **Criar integração sem ETL**.

   Se a criação falhar, consulte [Solução de problemas em Integrações ETL zero do Aurora](zero-etl.troubleshooting.md) para conferir etapas de solução de problemas.

A integração tem o status `Creating` enquanto está sendo criada, e o lakehouse de destino do Amazon SageMaker tem o status `Modifying`. Durante esse período, não é possível consultar o catálogo nem alterar sua configuração.

Quando a integração é criada com êxito, o status da integração e o lakehouse de destino do Amazon SageMaker mudam para `Active`.

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

Para preparar um catálogo de destino gerenciado pelo AWS Glue para Integração ETL zero usando a AWS CLI, você deve primeiro usar o comando [create-integration-resource-property](https://docs.aws.amazon.com/cli/latest/reference/rds/create-integration.html) com as seguintes opções:
+ `--resource-arn`: especifique o ARN do catálogo gerenciado pelo AWS Glue que será o destino da integração.
+ `--target-processing-properties`: especifique o ARN do perfil do IAM para acessar o catálogo de destino gerenciado pelo AWS Glue. 

```
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 criar uma Integração ETL zero com um lakehouse do Amazon SageMaker usando a AWS CLI, use o comando [create-integration](https://docs.aws.amazon.com/cli/latest/reference/rds/create-integration.html) com as seguintes opções:
+ `--integration-name`— Especifique um nome para a integração.
+ `--source-arn`: especifique o ARN do cluster de banco de dados do Aurora que será a origem da integração.
+ `--target-arn`: especifique o ARN do catálogo gerenciado pelo AWS Glue que será o destino da integração.

**Example**  
Para Linux, macOS ou 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 do RDS
<a name="zero-etl.create-api-smlh"></a>

Para criar uma Integração ETL zero como Amazon SageMaker usando a API do Amazon RDS, use a operação [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html) com os seguintes parâmetros:

**nota**  
Os nomes de catálogo podem ter no máximo 19 caracteres. O parâmetro IntegrationName deve atender a esse requisito se for usado como nome de catálogo.
+ `IntegrationName`— Especifique um nome para a integração.
+ `SourceArn`: especifique o ARN do cluster de banco de dados do Aurora que será a origem da integração.
+ `TargetArn`: especifique o ARN do catálogo gerenciado pelo AWS Glue que será o destino da integração.

## Criptografar integrações com uma chave gerenciada pelo cliente
<a name="zero-etl.create-encrypt-smlh"></a>

Se você especificar uma chave do KMS personalizada em vez de uma Chave pertencente à AWS ao criar uma integração com o Amazon SageMaker, a política de chave deverá fornecer à entidade principal do serviço SageMaker Unified Studio acesso à ação `CreateGrant`. Além disso, ela deve permitir que o usuário atual execute as ações `DescribeKey` e `CreateGrant`.

O exemplo de política a seguir demonstra como conceder as permissões necessárias na política de chave. Ele inclui chaves de contexto para reduzir ainda mais o escopo das permissões.

### Exemplo de política de chave
<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 obter mais informações, consulte [Criar uma política de chave](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) no *Guia do desenvolvedor do AWS Key Management Service*.

## Próximas etapas
<a name="zero-etl.create-next-smlh"></a>

Depois de criar com sucesso uma Integração ETL zero com o Amazon SageMaker, você poderá começar a adicionar dados ao cluster do Aurora de origem e consultá-los no lakehouse do Amazon SageMaker. Os dados serão replicados automaticamente e disponibilizados para workloads de analytics e machine learning.