Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Crea un'integrazione zero-ETL per DynamoDB - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un'integrazione zero-ETL per DynamoDB

Prima di creare un'integrazione zero-ETL, esamina le considerazioni e i requisiti descritti in. Considerazioni sull'utilizzo delle integrazioni Zero-ETL con Amazon Redshift Segui questo flusso generale per creare un'integrazione zero-ETL da DynamoDB ad Amazon Redshift

Per replicare i dati DynamoDB su Amazon Redshift con integrazione zero-ETL
  1. Conferma le tue credenziali di accesso e consenti le autorizzazioni per funzionare con integrazioni zero-ETL con Amazon Redshift e DynamoDB. Vedi Policy IAM per lavorare con le integrazioni Zero-ETL di DynamoDB per un esempio di policy IAM.

  2. Dalla console DynamoDB, configura la tabella DynamoDB per point-in-time disporre di autorizzazioni per il ripristino (PITR), le politiche delle risorse, le politiche basate sull'identità e le autorizzazioni per le chiavi di crittografia, come descritto nella Amazon DynamoDB Developer Guide.

  3. Dalla console Amazon Redshift: Creazione e configurazione di un data warehouse Amazon Redshift di destinazione.

  4. Dalla console Amazon Redshift, crea l'integrazione Zero-ETL come descritto più avanti in questo argomento.

  5. Dalla console Amazon Redshift, crea il database di destinazione nel tuo data warehouse Amazon Redshift. Per ulteriori informazioni, consulta Creazione di database di destinazione in Amazon Redshift.

  6. Dalla console Amazon Redshift, interroga i dati replicati nel data warehouse di Amazon Redshift. Per ulteriori informazioni, consulta Esecuzione di query sui dati replicati in Amazon Redshift.

In questa fase, crei un'integrazione Zero-ETL di Amazon DynamoDB con Amazon Redshift.

Amazon Redshift console
Per creare un'integrazione Zero-ETL di Amazon DynamoDB con Amazon Redshift utilizzando la console Amazon Redshift
  1. Dalla console Amazon Redshift, scegli le integrazioni Zero-ETL. Nel riquadro con l'elenco delle integrazioni zero-ETL, scegli Crea integrazione zero-ETL, Crea integrazione DynamoDB.

  2. Nelle pagine per creare un'integrazione, inserisci le informazioni sull'integrazione come segue:

    • Inserisci un nome di integrazione: si tratta di un nome univoco che può essere utilizzato per fare riferimento all'integrazione.

    • Inserisci una descrizione: descrive i dati che devono essere replicati dall'origine alla destinazione.

    • Scegli la tabella DynamoDB Source — È possibile scegliere una tabella DynamoDB. Point-in-timeil ripristino (PITR) deve essere abilitato sulla tabella. Vengono mostrate solo le tabelle con dimensioni fino a 100 tebibyte (TiB). La tabella DynamoDB di origine deve essere crittografata. La fonte deve inoltre avere una politica delle risorse con principali autorizzati e fonti di integrazione. Se queste politiche non sono corrette, ti viene presentata l'opzione Correggi per me.

    • Scegli il data warehouse Amazon Redshift di destinazione: il data warehouse può essere un cluster con provisioning di Amazon Redshift o un gruppo di lavoro Redshift Serverless. Se il tuo target Amazon Redshift si trova nello stesso account, puoi selezionare il target. Se la destinazione si trova in un account diverso, si specifica l'ARN del data warehouse Redshift. La destinazione deve avere una politica delle risorse con principi autorizzati e fonte di integrazione e il enable_case_sensitive_identifier parametro impostato su true. Se non disponi delle politiche relative alle risorse corrette sulla destinazione e la destinazione si trova nello stesso account, puoi selezionare l'opzione Correggi per me per applicare automaticamente le politiche sulle risorse durante il processo di creazione dell'integrazione. Se il tuo obiettivo è in un altro Account AWS, devi applicare manualmente la politica delle risorse sul magazzino Amazon Redshift. Se il tuo data warehouse Amazon Redshift di destinazione non ha l'opzione di gruppo di parametri corretta enable_case_sensitive_identifier configurata cometrue, puoi selezionare l'opzione Fix it for me per aggiornare automaticamente questo gruppo di parametri e riavviare il warehouse durante il processo di creazione dell'integrazione.

    • Inserisci fino a 50 chiavi di tag e con un valore opzionale, per fornire metadati aggiuntivi sull'integrazione. Per ulteriori informazioni, consulta Tagga le risorse in Amazon Redshift.

    • Scegli le opzioni di crittografia: per crittografare l'integrazione. Per ulteriori informazioni, consulta Crittografia delle integrazioni DynamoDB con una chiave gestita dal cliente.

      Quando crittografi l'integrazione, puoi anche aggiungere contesti di crittografia aggiuntivi. Per ulteriori informazioni, consulta Contesto di crittografia.

  3. Viene mostrata una pagina di revisione in cui è possibile scegliere Create DynamoDB integration.

  4. Viene visualizzata una pagina di avanzamento in cui è possibile visualizzare lo stato di avanzamento delle varie attività per creare l'integrazione zero-ETL.

  5. Dopo che l'integrazione è stata creata e attivata, nella pagina dei dettagli dell'integrazione, scegli Connetti al database. Quando il tuo data warehouse Amazon Redshift è stato creato per la prima volta, è stato creato anche un database. È necessario connettersi a qualsiasi database nel data warehouse di destinazione per creare un altro database per l'integrazione. Nella pagina Connetti al database, determina se è possibile utilizzare una connessione recente e scegli un metodo di autenticazione. A seconda del metodo di autenticazione, inserisci le informazioni per connetterti a un database esistente nella tua destinazione. Queste informazioni di autenticazione possono includere il nome del database esistente (in generedev) e l'utente del database specificato al momento della creazione del database con il data warehouse Amazon Redshift.

  6. Dopo esserti connesso a un database, scegli Crea database dall'integrazione per creare il database che riceve i dati dalla fonte. Quando crei il database, fornisci l'ID di integrazione, il nome del data warehouse e il nome del database.

  7. Dopo lo stato di integrazione e il database di destinazioneActive, i dati iniziano a replicarsi dalla tabella DynamoDB alla tabella di destinazione. Man mano che aggiungi dati all'origine, questi vengono replicati automaticamente nel data warehouse Amazon Redshift di destinazione.

AWS CLI

Per creare un'integrazione Amazon DynamoDB zero-ETL con Amazon AWS CLI Redshift utilizzando, utilizza il comando con le create-integration seguenti opzioni:

  • integration-name: specifica un nome per l'integrazione.

  • source-arn— Specificare l'ARN del sorgente DynamoDB.

  • target-arn— Specificare l'ARN dello spazio dei nomi del cluster con provisioning di Amazon Redshift o del gruppo di lavoro Redshift Serverless.

L'esempio seguente crea un'integrazione fornendo il nome dell'integrazione, l'ARN di origine e l'ARN di destinazione. L'integrazione non è crittografata.

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" }

L'esempio seguente crea un'integrazione utilizzando una chiave gestita dal cliente per la crittografia. Prima di creare l'integrazione:

  • Crea una chiave gestita dal cliente (chiamata «CMCMK» nell'esempio) nello stesso account (chiamato «AccounTa» nell'esempio) nella tabella DynamoDB di origine.

  • Assicurati che l'utente/ruolo (chiamato «roleA» nell'esempio) venga utilizzato per creare i permessi kms:CreateGrant e kms:DescribeKey i permessi di integrazione su questa chiave KMS.

  • Aggiungi quanto segue alla politica chiave.

{ "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": [] }
Per creare un'integrazione Zero-ETL di Amazon DynamoDB con Amazon Redshift utilizzando la console Amazon Redshift
  1. Dalla console Amazon Redshift, scegli le integrazioni Zero-ETL. Nel riquadro con l'elenco delle integrazioni zero-ETL, scegli Crea integrazione zero-ETL, Crea integrazione DynamoDB.

  2. Nelle pagine per creare un'integrazione, inserisci le informazioni sull'integrazione come segue:

    • Inserisci un nome di integrazione: si tratta di un nome univoco che può essere utilizzato per fare riferimento all'integrazione.

    • Inserisci una descrizione: descrive i dati che devono essere replicati dall'origine alla destinazione.

    • Scegli la tabella DynamoDB Source — È possibile scegliere una tabella DynamoDB. Point-in-timeil ripristino (PITR) deve essere abilitato sulla tabella. Vengono mostrate solo le tabelle con dimensioni fino a 100 tebibyte (TiB). La tabella DynamoDB di origine deve essere crittografata. La fonte deve inoltre avere una politica delle risorse con principali autorizzati e fonti di integrazione. Se queste politiche non sono corrette, ti viene presentata l'opzione Correggi per me.

    • Scegli il data warehouse Amazon Redshift di destinazione: il data warehouse può essere un cluster con provisioning di Amazon Redshift o un gruppo di lavoro Redshift Serverless. Se il tuo target Amazon Redshift si trova nello stesso account, puoi selezionare il target. Se la destinazione si trova in un account diverso, si specifica l'ARN del data warehouse Redshift. La destinazione deve avere una politica delle risorse con principi autorizzati e fonte di integrazione e il enable_case_sensitive_identifier parametro impostato su true. Se non disponi delle politiche relative alle risorse corrette sulla destinazione e la destinazione si trova nello stesso account, puoi selezionare l'opzione Correggi per me per applicare automaticamente le politiche sulle risorse durante il processo di creazione dell'integrazione. Se il tuo obiettivo è in un altro Account AWS, devi applicare manualmente la politica delle risorse sul magazzino Amazon Redshift. Se il tuo data warehouse Amazon Redshift di destinazione non ha l'opzione di gruppo di parametri corretta enable_case_sensitive_identifier configurata cometrue, puoi selezionare l'opzione Fix it for me per aggiornare automaticamente questo gruppo di parametri e riavviare il warehouse durante il processo di creazione dell'integrazione.

    • Inserisci fino a 50 chiavi di tag e con un valore opzionale, per fornire metadati aggiuntivi sull'integrazione. Per ulteriori informazioni, consulta Tagga le risorse in Amazon Redshift.

    • Scegli le opzioni di crittografia: per crittografare l'integrazione. Per ulteriori informazioni, consulta Crittografia delle integrazioni DynamoDB con una chiave gestita dal cliente.

      Quando crittografi l'integrazione, puoi anche aggiungere contesti di crittografia aggiuntivi. Per ulteriori informazioni, consulta Contesto di crittografia.

  3. Viene mostrata una pagina di revisione in cui è possibile scegliere Create DynamoDB integration.

  4. Viene visualizzata una pagina di avanzamento in cui è possibile visualizzare lo stato di avanzamento delle varie attività per creare l'integrazione zero-ETL.

  5. Dopo che l'integrazione è stata creata e attivata, nella pagina dei dettagli dell'integrazione, scegli Connetti al database. Quando il tuo data warehouse Amazon Redshift è stato creato per la prima volta, è stato creato anche un database. È necessario connettersi a qualsiasi database nel data warehouse di destinazione per creare un altro database per l'integrazione. Nella pagina Connetti al database, determina se è possibile utilizzare una connessione recente e scegli un metodo di autenticazione. A seconda del metodo di autenticazione, inserisci le informazioni per connetterti a un database esistente nella tua destinazione. Queste informazioni di autenticazione possono includere il nome del database esistente (in generedev) e l'utente del database specificato al momento della creazione del database con il data warehouse Amazon Redshift.

  6. Dopo esserti connesso a un database, scegli Crea database dall'integrazione per creare il database che riceve i dati dalla fonte. Quando crei il database, fornisci l'ID di integrazione, il nome del data warehouse e il nome del database.

  7. Dopo lo stato di integrazione e il database di destinazioneActive, i dati iniziano a replicarsi dalla tabella DynamoDB alla tabella di destinazione. Man mano che aggiungi dati all'origine, questi vengono replicati automaticamente nel data warehouse Amazon Redshift di destinazione.

Policy IAM per lavorare con le integrazioni Zero-ETL di DynamoDB

Quando si creano integrazioni zero-ETL, le credenziali di accesso devono disporre dell'autorizzazione sia per le azioni di DynamoDB che per Amazon Redshift e anche per le risorse coinvolte come fonti e destinazioni dell'integrazione. Di seguito è riportato un esempio che illustra le autorizzazioni minime richieste.

{ "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>" } ] }

Crittografia delle integrazioni DynamoDB con una chiave gestita dal cliente

Se specifichi una chiave KMS personalizzata anziché una Chiave di proprietà di AWS quando crei un'integrazione DynamoDB zero-ETL, la policy chiave deve fornire al servizio Amazon Redshift l'accesso principale all'azione. CreateGrant Inoltre, deve consentire all'account o al ruolo del richiedente l'autorizzazione a eseguire le azioni and. DescribeKey CreateGrant

I seguenti esempi di istruzioni chiave illustrano le autorizzazioni richieste nella politica. Alcuni esempi includono chiavi contestuali per ridurre ulteriormente l'ambito delle autorizzazioni.

La seguente dichiarazione politica consente all'account o al ruolo del richiedente di recuperare informazioni su una chiave KMS.

{ "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::{account-ID}:role/{role-name}" }, "Action":"kms:DescribeKey", "Resource":"*" }

La seguente dichiarazione politica consente all'account o al ruolo del richiedente di aggiungere una concessione a una chiave KMS. La chiave di kms:ViaServicecondizione limita l'uso della chiave KMS alle richieste provenienti da 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" ] } } }

La seguente dichiarazione politica consente al responsabile del servizio Amazon Redshift di aggiungere una concessione a una chiave 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:*" } } }

La seguente dichiarazione politica consente all'account o al ruolo del richiedente di recuperare informazioni su una chiave KMS.

{ "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::{account-ID}:role/{role-name}" }, "Action":"kms:DescribeKey", "Resource":"*" }

La seguente dichiarazione politica consente all'account o al ruolo del richiedente di aggiungere una concessione a una chiave KMS. La chiave di kms:ViaServicecondizione limita l'uso della chiave KMS alle richieste provenienti da 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" ] } } }

La seguente dichiarazione politica consente al responsabile del servizio Amazon Redshift di aggiungere una concessione a una chiave 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:*" } } }

Per ulteriori informazioni, consulta Creazione di una policy delle chiavi nella Guida per gli sviluppatori di AWS Key Management Service .

Contesto di crittografia

Quando crittografi un'integrazione zero-ETL, puoi aggiungere coppie chiave-valore come contesto di crittografia aggiuntivo. Potresti voler aggiungere queste coppie chiave-valore per aggiungere ulteriori informazioni contestuali sui dati da replicare. Per ulteriori informazioni, consultare Contesto della crittografia nella Guida per gli sviluppatori di AWS Key Management Service .

Amazon Redshift aggiunge le seguenti coppie di contesti di crittografia oltre a quelle che aggiungi:

  • aws:redshift:integration:arn - IntegrationArn

  • aws:servicename:id - Redshift

Ciò riduce il numero complessivo di coppie che puoi aggiungere da 8 a 6 e contribuisce al limite complessivo di caratteri del vincolo di concessione. Per ulteriori informazioni, consulta Using grant constraints nella Developer Guide.AWS Key Management Service

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.