Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Criar uma integração ETL zero para o DynamoDB - Amazon Redshift

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
  1. 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.

  2. 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.

  3. No console do Amazon Redshift: Criar e configurar um data warehouse do Amazon Redshift de destino.

  4. No console do Amazon Redshift, crie a integração ETL zero conforme descrito mais adiante neste tópico.

  5. 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.

  6. 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.

Amazon Redshift console
Para criar uma integração ETL zero do Amazon DynamoDB com o Amazon Redshift usando o console do Amazon Redshift
  1. 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.

  2. 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âmetros enable_case_sensitive_identifier configurada como true, 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.

  3. É exibida uma página de revisão na qual você pode escolher Criar integração do DynamoDB.

  4. É exibida uma página de progresso na qual você pode ver o progresso das várias tarefas para criar a integração ETL zero.

  5. 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.

  6. 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.

  7. 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.

AWS CLI

Para criar uma integração ETL zero do Amazon DynamoDB com o Amazon Redshift usando a AWS CLI, use o comando create-integration com as seguintes opções:

  • integration-name: especifique um nome para a integração.

  • source-arn: especifique o ARN de origem do DynamoDB.

  • target-arn: especifique o ARN do namespace do cluster provisionado do Amazon Redshift ou do destino do grupo de trabalho do Redshift sem servidor.

O exemplo a seguir cria uma integração fornecendo o nome da integração, o ARN de origem e o ARN de destino. A integração não é criptografada.

aws redshift create-integration \ --integration-name ddb-integration \ --source-arn arn:aws:dynamodb:us-east-1:123456789012:table/books \ --target-arn arn:aws:redshift:us-east-1:123456789012:namespace:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 { "Status": "creating", "IntegrationArn": "arn:aws:redshift:us-east-1:123456789012:integration:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Errors": [], "ResponseMetadata": { "RetryAttempts": 0, "HTTPStatusCode": 200, "RequestId": "132cbe27-fd10-4f0a-aacb-b68f10bb2bfb", "HTTPHeaders": { "x-amzn-requestid": "132cbe27-fd10-4f0a-aacb-b68f10bb2bfb", "date": "Sat, 24 Aug 2024 05:44:08 GMT", "content-length": "934", "content-type": "text/xml" } }, "Tags": [], "CreateTime": "2024-08-24T05:44:08.573Z", "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "AdditionalEncryptionContext": {}, "TargetArn": "arn:aws:redshift:us-east-1:123456789012:namespace:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "IntegrationName": "ddb-integration", "SourceArn": "arn:aws:dynamodb:us-east-1:123456789012:table/books" }

O exemplo a seguir cria uma integração usando uma chave gerenciada pelo cliente para criptografia. Antes de criar a integração:

  • Crie uma chave gerenciada pelo cliente (chamada “CMCMK” no exemplo) na mesma conta (chamada “AccountA” no exemplo) na tabela de origem do DynamoDB.

  • Certifique-se de que o usuário/perfil (chamado de “RoleA” no exemplo) esteja sendo usado para criar a integração tendo as permissões kms:CreateGrant e kms:DescribeKey nessa chave do KMS.

  • Adicione o seguinte à política de chave.

{ "Sid": "Enable RoleA to create grants with key", "Effect": "Allow", "Principal": { "AWS": "RoleA-ARN" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { // Add "StringEquals" condition if you plan to provide additional encryption context // for the zero-ETL integration. Ensure that the key-value pairs added here match // the key-value pair you plan to use while creating the integration. // Remove this if you don't plan to use additional encryption context "StringEquals": { "kms:EncryptionContext:context-key1": "context-value1" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Enable RoleA to describe key", "Effect": "Allow", "Principal": { "AWS": "RoleA-ARN" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "Allow use by RS SP", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*" }
aws redshift create-integration \ --integration-name ddb-integration \ --source-arn arn:aws:dynamodb:us-east-1:123456789012:table/books \ --target-arn arn:aws:redshift:us-east-1:123456789012:namespace:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 \ --kms-key-id arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333 \ --additional-encryption-context key33=value33 // This matches the condition in the key policy. { "IntegrationArn": "arn:aws:redshift:us-east-1:123456789012:integration:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "IntegrationName": "ddb-integration", "SourceArn": "arn:aws:dynamodb:us-east-1:123456789012:table/books", "SourceType": "dynamodb", "TargetArn": "arn:aws:redshift:us-east-1:123456789012:namespace:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Status": "creating", "Errors": [], "CreateTime": "2024-10-02T18:29:26.710Z", "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "AdditionalEncryptionContext": { "key33": "value33" }, "Tags": [] }
Para criar uma integração ETL zero do Amazon DynamoDB com o Amazon Redshift usando o console do Amazon Redshift
  1. 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.

  2. 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âmetros enable_case_sensitive_identifier configurada como true, 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.

  3. É exibida uma página de revisão na qual você pode escolher Criar integração do DynamoDB.

  4. É exibida uma página de progresso na qual você pode ver o progresso das várias tarefas para criar a integração ETL zero.

  5. 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.

  6. 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.

  7. 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:*" } } }

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.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.