Criar uma integração ETL zero para o DynamoDB
Antes de criar uma integração ETL zero, analise as considerações e os requisitos descritos em Considerações ao usar integrações ETL zero com o Amazon Redshift. Siga esse fluxo geral para criar uma integração ETL zero do DynamoDB no Amazon Redshift
Para replicar dados do DynamoDB para o Amazon Redshift com integração ETL zero
Confirme que suas credenciais de login permitem que as permissões funcionem com integrações ETL zero com o Amazon Redshift e o DynamoDB. Para ver um exemplo de política do IAM, consulte Política do IAM para trabalhar com integrações ETL zero do DynamoDB.
-
No console do DynamoDB, configure sua tabela do DynamoDB para ter recuperação para um ponto no tempo (PITR), políticas de recursos, políticas baseadas em identidade e permissões de chave de criptografia, conforme descrito no Guia do desenvolvedor do Amazon DynamoDB.
-
No console do Amazon Redshift: Criar e configurar um data warehouse do Amazon Redshift de destino.
-
Na AWS CLI ou no console do Amazon Redshift: Ative a diferenciação entre letras maiúsculas e minúsculas no data warehouse.
-
No console do Amazon Redshift: Configurar a autorização para o data warehouse do Amazon Redshift.
-
-
No console do Amazon Redshift, crie a integração ETL zero conforme descrito mais adiante neste tópico.
-
No console do Amazon Redshift, crie o banco de dados de destino em seu data warehouse do Amazon Redshift. Para obter mais informações, consulte Criar bancos de dados de destino no Amazon Redshift.
-
No console do Amazon Redshift, consulte seus dados replicados no data warehouse do Amazon Redshift. Para obter mais informações, consulte Consulta de dados replicados no Amazon Redshift.
Nesta etapa, você cria uma integração ETL zero do Amazon DynamoDB com o Amazon Redshift.
Para criar uma integração ETL zero do Amazon DynamoDB com o Amazon Redshift usando o console do Amazon Redshift
No console do Amazon Redshift, escolha Integrações ETL zero. No painel com a lista de integrações ETL zero, escolha Criar integração ETL zero, Criar integração do DynamoDB.
Nas páginas para criar uma integração, insira as respectivas informações a seguir:
Insira um nome de integração, que é um nome exclusivo que pode ser usado para referenciar sua integração.
Insira uma descrição, que descreve os dados que devem ser replicados da origem para o destino.
Escolha a tabela de origem do DynamoDB; uma tabela do DynamoDB pode ser escolhida. A recuperação para um ponto no tempo (PITR) precisa estar habilitada na tabela. Somente são mostradas tabelas com tamanho de até 100 tebibytes (TiB). A tabela de origem do DynamoDB precisa ser criptografada. A origem também precisa ter uma política de recursos com entidades principais e origens de integração autorizadas. Se a política não estiver correta, você verá a opção Corrigir isso para mim.
Escolha o data warehouse do Amazon Redshift de destino: o data warehouse pode ser um cluster provisionado do Amazon Redshift ou um grupo de trabalho do Redshift sem servidor. Se o Amazon Redshift de destino estiver na mesma conta, você poderá selecionar o destino. Se o destino estiver em uma conta diferente, especifique o ARN do data warehouse do Redshift. O destino deve ter uma política de recursos com entidades principais e origem de integração autorizadas e o parâmetro
enable_case_sensitive_identifier
definido como verdadeiro. Se você não tiver as políticas de recursos corretas no destino e ele estiver na mesma conta, selecione a opção Corrigir isso para mim para aplicar automaticamente as políticas de recursos durante o processo de criação da integração. Se o destino estiver em uma Conta da AWS diferente, você precisará aplicar manualmente a política de recursos no warehouse do Amazon Redshift. Se seu data warehouse de destino do Amazon Redshift não tiver a opção correta do grupo de parâmetrosenable_case_sensitive_identifier
configurada comotrue
, você poderá selecionar a opção Corrigir isso para mim para atualizar automaticamente esse grupo de parâmetros e reinicializar o warehouse durante o processo de criação da integração.Insira até 50 Chaves de tag e com um valor opcional para fornecer metadados adicionais sobre a integração. Para obter mais informações, consulte Marcar recursos no Amazon Redshift.
Escolha as opções de Criptografia para criptografar a integração. Para obter mais informações, consulte Criptografar integrações do DynamoDB com uma chave gerenciada pelo cliente.
Ao criptografar a integração, você também pode adicionar Contextos de criptografia adicionais. Para obter mais informações, consulte Contexto de criptografia.
É exibida uma página de revisão na qual você pode escolher Criar integração do DynamoDB.
É exibida uma página de progresso na qual você pode ver o progresso das várias tarefas para criar a integração ETL zero.
Depois que a integração for criada e ativada, na página de detalhes da integração, escolha Conectar-se ao banco de dados. Quando seu data warehouse do Amazon Redshift foi criado pela primeira vez, um banco de dados também foi criado. Você precisa se conectar a qualquer banco de dados em seu data warehouse de destino para criar outro banco de dados para a integração. Na página Conectar-se ao banco de dados, determine se você pode usar uma conexão recente e escolher um método de Autenticação. Dependendo do seu método de autenticação, insira as informações para se conectar a um banco de dados existente no destino. Essas informações de autenticação podem incluir o Nome do banco de dados existente (normalmente
dev
) e o Usuário do banco de dados especificado quando o banco de dados foi criado com o data warehouse do Amazon Redshift.Depois de se conectar a um banco de dados, escolha Criar banco de dados a partir da integração para criar o banco de dados que recebe os dados da origem. Ao criar o banco de dados, você fornece a ID de integração, o Nome do data warehouse e o Nome do banco de dados.
Depois que o status da integração e o banco de dados de destino passarem a
Active
, será iniciada a replicação dos dados da tabela do DynamoDB para a tabela de destino. Conforme você adiciona dados à origem, eles são replicados automaticamente no data warehouse do Amazon Redshift de destino.
Política do IAM para trabalhar com integrações ETL zero do DynamoDB
Ao criar integrações ETL zero, suas credenciais de login devem ter permissão nas ações do DynamoDB e do Amazon Redshift e também nos recursos envolvidos como origens e destinos da integração. Veja a seguir um exemplo que demonstra as permissões mínimas necessárias.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:ListTables"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"dynamodb:GetResourcePolicy",
"dynamodb:PutResourcePolicy",
"dynamodb:UpdateContinuousBackups"
],
"Resource": [
"arn:aws:dynamodb:<region>
:<account>
:table/my-ddb-table"
]
},
{
"Sid": "AllowRedshiftDescribeIntegration",
"Effect": "Allow",
"Action": [
"redshift:DescribeIntegrations"
],
"Resource": "*"
},
{
"Sid": "AllowRedshiftCreateIntegration",
"Effect": "Allow",
"Action": "redshift:CreateIntegration",
"Resource": "arn:aws:redshift:<region>
:<account>
:integration:*"
},
{
"Sid": "AllowRedshiftModifyDeleteIntegration",
"Effect": "Allow",
"Action": [
"redshift:ModifyIntegration",
"redshift:DeleteIntegration"
],
"Resource": "arn:aws:redshift:<region>
:<account>
:integration:<uuid>
"
},
{
"Sid": "AllowRedshiftCreateInboundIntegration",
"Effect": "Allow",
"Action": "redshift:CreateInboundIntegration",
"Resource": "arn:aws:redshift:<region>
:<account>
:namespace:<uuid>
"
}
]
}
Criptografar integrações do DynamoDB com uma chave gerenciada pelo cliente
Se você especificar uma chave do KMS personalizada em vez de uma Chave pertencente à AWS ao criar uma Integração ETL zero do DynamoDB, a política de chave deverá fornecer à entidade principal do serviço Amazon Redshift um acesso à ação CreateGrant
. Além disso, ela deve permitir que a conta ou o perfil do solicitante execute as ações DescribeKey
e CreateGrant
.
Os exemplos de declaração de política de chave a seguir demonstram as permissões necessárias em sua política. Alguns exemplos incluem chaves de contexto para reduzir ainda mais o escopo das permissões.
A declaração de política a seguir permite que a conta ou o perfil do solicitante recupere informações sobre uma chave do KMS.
{
"Effect":"Allow",
"Principal":{
"AWS":"arn:aws:iam::{account-ID}
:role/{role-name}
"
},
"Action":"kms:DescribeKey",
"Resource":"*"
}
A declaração de política a seguir permite que a conta ou o perfil do solicitante adicione uma concessão a uma chave do KMS. A chave de condição kms:ViaService
limita o uso da chave do KMS para solicitações provenientes do Amazon Redshift.
{
"Effect":"Allow",
"Principal":{
"AWS":"arn:aws:iam::{account-ID}
:role/{role-name}
"
},
"Action":"kms:CreateGrant",
"Resource":"*",
"Condition":{
"StringEquals":{
"kms:EncryptionContext:{context-key}
":"{context-value}
",
"kms:ViaService":"redshift.{region}
.amazonaws.com"
},
"ForAllValues:StringEquals":{
"kms:GrantOperations":[
"Decrypt",
"GenerateDataKey",
"CreateGrant"
]
}
}
}
A declaração de política a seguir permite que a entidade principal do serviço Amazon Redshift adicione uma concessão a uma chave do KMS.
{
"Effect":"Allow",
"Principal":{
"Service":"redshift.amazonaws.com"
},
"Action":"kms:CreateGrant",
"Resource":"*",
"Condition":{
"StringEquals":{
"kms:EncryptionContext:{context-key}
":"{context-value}
",
"aws:SourceAccount":"{account-ID}
"
},
"ForAllValues:StringEquals":{
"kms:GrantOperations":[
"Decrypt",
"GenerateDataKey",
"CreateGrant"
]
},
"ArnLike":{
"aws:SourceArn":"arn:aws:*:{region}
:{account-ID}
:integration:*"
}
}
}
Para obter mais informações, consulte Criar uma política de chave no Guia do desenvolvedor do AWS Key Management Service.
Contexto de criptografia
Ao criptografar uma integração ETL zero, você pode adicionar pares de valores-chave como um Contexto de criptografia adicional. Talvez você queira adicionar esses pares de valores-chave para adicionar informações contextuais adicionais sobre os dados que estão sendo replicados. Para obter mais informações, consulte Contexto de criptografia no Guia do desenvolvedor AWS Key Management Service.
O Amazon Redshift adiciona os seguintes pares de contexto de criptografia, além dos adicionados por você:
-
aws:redshift:integration:arn
-IntegrationArn
-
aws:servicename:id
-Redshift
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 no Guia do desenvolvedor do AWS Key Management Service.