View a markdown version of this page

Utilizzo AWS KMS con l'API Amazon Redshift Data - Amazon Redshift

Amazon Redshift non supporterà più l'uso delle UDF Python dopo il 30 giugno 2026. Inizieremo ad applicarlo gradualmente. Per ulteriori informazioni sui dettagli della fine del ciclo di vita e sulle opzioni di migrazione di Python, consulta la post sul blog che è stato pubblicato il 30 giugno 2025.

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

Utilizzo AWS KMS con l'API Amazon Redshift Data

Quando crittografi il cluster Amazon Redshift o il gruppo di lavoro Redshift Serverless con una chiave gestita dal cliente, l'API Amazon Redshift Data utilizza la stessa chiave gestita dal cliente per archiviare e crittografare le tue domande e i risultati.

L'API Data crittografa i dati per impostazione predefinita per proteggere le informazioni sensibili, come il testo e i risultati delle query. Utilizza AWS KMS chiavi di crittografia di proprietà di AWS per questa protezione.

La crittografia predefinita per i dati inattivi riduce il sovraccarico operativo e la complessità quando si proteggono i dati sensibili. Questo approccio consente di creare applicazioni sicure che soddisfano severi requisiti normativi e di conformità alla crittografia.

L'utilizzo delle sovvenzioni in AWS KMS

La Data API richiede una concessione per utilizzare la chiave gestita dal cliente.

Quando chiami ExecuteStatement o BatchExecuteStatement su un cluster crittografato con una chiave gestita dal cliente, Amazon Redshift crea una sovvenzione per tuo conto inviando un CreateGrant richiesta a AWS KMS. AWS KMS utilizza le sovvenzioni per consentire alla Data API di accedere a una chiave KMS nel tuo account.

La Data API richiede la concessione per utilizzare la chiave gestita dal cliente per le seguenti operazioni:

  • Invia Encrypt richieste a AWS KMS per crittografare i metadati delle query con la chiave gestita dal cliente.

  • Invia GenerateDataKey richieste a AWS KMS per generare chiavi di dati crittografate dalla chiave gestita dal cliente.

  • Invia Decrypt richieste a AWS KMS per decrittografare le chiavi di dati crittografate in modo che possano crittografare i tuoi dati.

Puoi revocare l'accesso alla concessione o rimuovere l'accesso di Amazon Redshift alla chiave gestita dal cliente in qualsiasi momento. In tal caso, la Data API non può più accedere ai dati crittografati dalla chiave gestita dal cliente, il che influisce sulle operazioni che dipendono da tali dati. Ad esempio, se provi a recuperare i risultati delle query o a monitorare lo stato della query dopo aver revocato la concessione, Data API restituisce un AccessDeniedException.

Politiche chiave per la chiave gestita dal cliente

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, è possibile specificare una policy della chiave. Per ulteriori informazioni, consulta Customer managed keys nella Guida per sviluppatori AWS Key Management Service .

Per utilizzare le chiavi gestite dai clienti con l'API Data, devi prima consentire l'accesso ad Amazon Redshift. Le seguenti operazioni API devono essere consentite nella policy chiave:

  • kms:CreateGrant: aggiunge una concessione a una chiave gestita dal cliente. Concede l'accesso di controllo a uno specifico AWS KMS chiave, che consente l'accesso alle operazioni di concessione richieste da Amazon Redshift. Per ulteriori informazioni, consulta Utilizzo delle sovvenzioni in AWS KMS.

Di seguito è riportato un esempio di politica chiave:

"Statement":[ { "Sid":"Allow access to principals authorized to use Amazon Redshift", "Effect":"Allow", "Principal":{ "AWS":"*" }, "Action":[ "kms:DescribeKey", "kms:CreateGrant" ], "Resource":"*", "Condition":{ "StringEquals":{ "kms:ViaService":"redshift.amazonaws.com", "kms:CallerAccount":"111122223333" } } }, { "Sid":"AllowKeyAdministratorsAccess", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole" }, "Action":"kms:*", "Resource":"*" }, { "Sid":"AllowKeyUseForExampleRole", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action":[ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource":"*" } ]

Contesto di crittografia dell'API dei dati

Un contesto di crittografia è un set opzionale di coppie chiave-valore che contiene informazioni contestuali aggiuntive sui dati. AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi per supportare la crittografia autenticata. Quando si include un contesto di crittografia in una richiesta di crittografia dei dati, AWS KMS associa il contesto di crittografia ai dati crittografati. Per decrittografare i dati, è necessario includere lo stesso contesto di crittografia nella richiesta.

La Data API utilizza in tutto le stesse tre coppie chiave-valore del contesto di crittografia AWS KMS operazioni crittografiche per i cluster su cui è stato effettuato il provisioning:

  • aws:redshift:arn — Amazon Resource Name (ARN) del cluster

  • aws:redshift:createtime — Il timestamp in cui hai richiesto la creazione del cluster

  • serviceName – RedshiftDataAPI

"EncryptionContextSubset": { "aws:redshift:arn": "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster", "aws:redshift:createtime": "20250815T0000Z", "serviceName": "RedshiftDataAPI", }

L'API Data utilizza in tutto due coppie chiave-valore del contesto di crittografia AWS KMS operazioni crittografiche per gruppi di lavoro serverless:

  • aws:redshift-serverless:arn — Amazon Resource Name (ARN) dello spazio dei nomi

  • serviceName — RedshiftDataAPI

"EncryptionContextSubset": { "aws:redshift-serverless:arn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace:12345678-1234-1234-1234-123456789012", "serviceName": "RedshiftDataAPI" }

Per ulteriori informazioni sulla crittografia, vedere Introduzione ai dettagli crittografici di AWS KMS. Per ulteriori informazioni su Amazon Redshift e AWS KMS integrazione, consulta Come utilizza Amazon Redshift AWS KMS.