Creazione di integrazioni Zero-ETL di Aurora con Amazon Redshift - Amazon Aurora

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

Creazione di integrazioni Zero-ETL di Aurora con Amazon Redshift

Quando crei un'integrazione Zero-ETL di Aurora, specifichi il di origine, il cluster Aurora DB e il data warehouse Amazon Redshift di destinazione. Puoi anche personalizzare le impostazioni di crittografia e aggiungere tag. Aurora crea un'integrazione tra il cluster DB del database di e la sua destinazione. Una volta che l'integrazione è attiva, tutti i dati inseriti nel cluster DB del di origine verranno replicati nel target Amazon Redshift configurato.

Prerequisiti

Prima di creare un'integrazione zero-ETL, devi creare un cluster DB di di origine e un data warehouse Amazon Redshift di destinazione. È inoltre necessario consentire la replica nel data warehouse aggiungendo il cluster DB del come fonte di integrazione autorizzata.

Per istruzioni su come completare ciascuno di questi passaggi, consulta Guida introduttiva alle integrazioni Zero-ETL di Aurora con Amazon Redshift.

Autorizzazioni richieste

Per creare un'integrazione Zero-ETL, occorrono alcune autorizzazioni IAM. Come requisito minimo, dovrai disporre delle autorizzazioni per eseguire le seguenti operazioni:

  • Crea integrazioni zero-ETL per il cluster Aurora DB del RDS di origine.

  • Visualizzazione ed eliminazione di tutte le integrazioni Zero-ETL.

  • Creazione di integrazioni in entrata nel data warehouse di destinazione. Non hai bisogno di questa autorizzazione se lo stesso account possiede il data warehouse Amazon Redshift e questo account è il principale autorizzato di tale data warehouse. Per informazioni sull'aggiunta di principali autorizzati, consulta Configurazione dell'autorizzazione per il data warehouse Amazon Redshift.

La seguente policy di esempio mostra le autorizzazioni con privilegi minimi richieste per creare e gestire le integrazioni. Potresti non aver bisogno di queste autorizzazioni esatte se il tuo utente o ruolo dispone di autorizzazioni più ampie, come una policy gestita. AdministratorAccess

Nota

Redshift Amazon Resource Names (ARNs) hanno il seguente formato. Nota l'uso di una barra ((/) anziché dei due punti (:) prima dell'UUID dello spazio dei nomi serverless.

  • Cluster con provisioning: arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid

  • Serverless: arn:aws:redshift-serverless:{region}:{account-id}:namespace/namespace-uuid

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "rds:CreateIntegration" ], "Resource": [ "arn:aws:rds:{region}:{account-id}:cluster:source-db", "arn:aws:rds:{region}:{account-id}:integration:*" ] }, { "Effect": "Allow", "Action": [ "rds:DescribeIntegrations" ], "Resource": ["*"] }, { "Effect": "Allow", "Action": [ "rds:DeleteIntegration", "rds:ModifyIntegration" ], "Resource": [ "arn:aws:rds:{region}:{account-id}:integration:*" ] }, { "Effect": "Allow", "Action": [ "redshift:CreateInboundIntegration" ], "Resource": [ "arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid" ] }] }

Scelta di un data warehouse di destinazione in un account diverso

Se prevedi di specificare un data warehouse Amazon Redshift di destinazione che si trova in un altro Account AWS, devi creare un ruolo che consenta agli utenti dell'account corrente di accedere alle risorse nell'account di destinazione. Per ulteriori informazioni, consulta Fornire l'accesso a un utente IAM in un altro utente Account AWS di tua proprietà.

Il ruolo deve disporre delle seguenti autorizzazioni, che consentono all'utente di visualizzare i cluster Amazon Redshift con provisioning e gli spazi dei nomi Redshift Serverless disponibili nell'account di destinazione.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:DescribeClusters", "redshift-serverless:ListNamespaces" ], "Resource":[ "*" ] } ] }

Il ruolo deve avere la seguente policy di attendibilità, che specifica l'ID dell'account di destinazione.

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

Per istruzioni sulla creazione del ruolo, consulta Creazione di un ruolo utilizzando policy di attendibilità personalizzate.

Creazione di integrazioni Zero-ETL

Puoi creare un'integrazione zero-ETL utilizzando l'API AWS Management Console AWS CLI, the o RDS.

Creazione di un'integrazione Zero-ETL
  1. Accedi a AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel pannello di navigazione a sinistra, scegli Interfacce di rete.

  3. Scegli Crea un'integrazione Zero-ETL.

  4. In Identificatore dell'integrazione, inserisci un nome per l'integrazione. Il nome può contenere fino a 63 caratteri alfanumerici e può includere trattini.

  5. Scegli Next (Successivo).

  6. Per Origine, seleziona il cluster Aurora DB del da cui provengono i dati.

    Nota

    RDS avvisa l'utente se i parametri del cluster DB non sono configurati correttamente. Se ricevi questo messaggio, puoi scegliere Correggi per me o configurarli manualmente. Per istruzioni su come correggerli manualmente, consulta Fase 1: creazione di un gruppo di parametri del cluster DB personalizzato.

    La modifica dei parametri del cluster DB richiede un riavvio.

  7. (Facoltativo) Seleziona Personalizza le opzioni di filtraggio dei dati e aggiungi filtri di dati alla tua integrazione. Puoi utilizzare i filtri di dati per definire l'ambito della replica nel data warehouse di destinazione. Per ulteriori informazioni, consulta Filtraggio dei dati per le integrazioni zero di Aurora con Amazon ETL Redshift.

  8. Una volta configurato correttamente il cluster DB del di origine, scegli Avanti.

  9. Per Destinazione, esegui queste operazioni:

    1. (Facoltativo) Per utilizzare un account diverso Account AWS per il target Amazon Redshift, scegli Specificare un account diverso. Quindi, inserisci l'ARN di un ruolo IAM con le autorizzazioni per visualizzare i data warehouse. Per istruzioni su come creare il ruolo IAM, consulta Scelta di un data warehouse di destinazione in un account diverso.

    2. Per il data warehouse di Amazon Redshift, seleziona la destinazione per i dati replicati dal cluster DB del di origine. Puoi scegliere un cluster Amazon Redshift con provisioning o uno spazio dei nomi Redshift Serverless come destinazione.

    Nota

    RDS ti avvisa se le policy relative alle risorse o le impostazioni di distinzione tra maiuscole e minuscole per il data warehouse specificato non sono configurate correttamente. Se ricevi questo messaggio, puoi scegliere Correggi per me o configurarli manualmente. Per istruzioni su come correggerli manualmente, consulta Attivazione della distinzione tra maiuscole e minuscole per il data warehouse e Configurazione dell'autorizzazione per il data warehouse nella Guida alla gestione di Amazon Redshift.

    La modifica della distinzione tra maiuscole e minuscole per un cluster Redshift con provisioning richiede un riavvio. Prima di poter creare l'integrazione, è necessario completare il riavvio e applicare correttamente il nuovo valore del parametro al cluster.

    Se l'origine e la destinazione selezionate si trovano in Account AWS diversi, Amazon RDS non può correggere queste impostazioni per te. Devi accedere all'altro account e correggerle manualmente in Amazon Redshift.

  10. Una volta configurato correttamente il data warehouse di destinazione, scegli Avanti.

  11. (Facoltativo) In Tag, aggiungi uno o più tag all'integrazione. Per ulteriori informazioni, consulta Etichettatura di Amazon Aurora e risorse Amazon RDS.

  12. In Crittografia, specifica come eseguire la crittografia dell'integrazione. Per impostazione predefinita, RDS crittografa tutte le integrazioni con un. Chiave di proprietà di AWS Per scegliere invece una chiave gestita dal cliente, abilita Personalizza le impostazioni di crittografia e scegli una chiave KMS da utilizzare per la crittografia. Per ulteriori informazioni, consulta Crittografia delle risorse Amazon Aurora.

    Aggiungi un contesto di crittografia (facoltativo). Per ulteriori informazioni, consultare Contesto della crittografia nella Guida per gli sviluppatori di AWS Key Management Service .

    Nota

    Amazon RDS 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

  13. Scegli Next (Successivo).

  14. Rivedi le impostazioni dell'integrazione e scegli Crea un'integrazione Zero-ETL.

    Se la creazione ha esito negativo, consulta Non riesco a creare un'integrazione zero ETL per la procedura di risoluzione dei problemi.

Lo stato dell'integrazione è Creating mentre l'integrazione è in fase di creazione, mentre lo stato del data warehouse Amazon Redshift di destinazione è Modifying. Durante questo periodo, non puoi eseguire query sul data warehouse o apportare modifiche alla configurazione.

Quando la creazione dell'integrazione viene completata correttamente, lo stato dell'integrazione e del data warehouse Amazon Redshift di destinazione cambia in Active.

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

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

  • --source-arn— Specificare l'ARN del cluster Aurora DB che sarà l'origine dell'integrazione.

  • --target-arn: specifica l'ARN del data warehouse di Amazon Redshift che sarà la destinazione dell'integrazione.

In Linux, macOS, oppure Unix:

aws rds create-integration \ --integration-name my-integration \ --source-arn arn:aws:rds:{region}:{account-id}:my-db \ --target-arn arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid

In Windows:

aws rds create-integration ^ --integration-name my-integration ^ --source-arn arn:aws:rds:{region}:{account-id}:my-db ^ --target-arn arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid

Per creare un'integrazione Zero-ETL con l'API Amazon RDS, utilizza l'operazione CreateIntegration con i seguenti parametri:

  • IntegrationName: specifica un nome per l'integrazione.

  • SourceArn— Specificare l'ARN del cluster Aurora DB che sarà l'origine dell'integrazione.

  • TargetArn: specifica l'ARN del data warehouse di Amazon Redshift che sarà la destinazione dell'integrazione.

Crittografia delle integrazioni con una chiave gestita dal cliente

Se specifichi una chiave KMS personalizzata anziché una Chiave di proprietà di AWS quando crei un'integrazione, la policy chiave deve fornire al servizio Amazon Redshift l'accesso principale all'CreateGrantazione. Inoltre, deve consentire all'utente corrente di eseguire le azioni DescribeKey eCreateGrant.

La seguente politica di esempio mostra come fornire le autorizzazioni richieste nella politica chiave. Include chiavi contestuali per ridurre ulteriormente l'ambito delle autorizzazioni.

{ "Version": "2012-10-17", "Id": "Key policy", "Statement": [ { "Sid": "Enables IAM user permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allows the Redshift service principal to add a grant to a KMS key", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}":"{context-value}" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Allows the current user or role to add a grant to a KMS key", "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": "rds.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Allows the current uer or role to retrieve information about a KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:role/{role-name}" }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

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

Passaggi successivi

Dopo aver creato correttamente un'integrazione Zero-ETL, devi creare un database di destinazione all'interno del cluster o del gruppo di lavoro Amazon Redshift di destinazione. Quindi, puoi iniziare ad aggiungere dati al cluster Aurora DB del di origine e interrogarli in Amazon Redshift. Per istruzioni, consulta Creazione di database di destinazione in Amazon Redshift.