O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a publicação de blog
Usar o AWS KMS com a API de dados do Amazon Redshift
Quando você criptografa o cluster do Amazon Redshift ou grupo de trabalho do Redshift sem servidor com uma chave gerenciada pelo cliente, a API de dados do Amazon Redshift usa essa mesma chave gerenciada pelo cliente para armazenar e criptografar suas consultas e resultados.
A API de dados criptografa seus dados por padrão para proteger informações sensíveis, como texto e resultados da consulta. Ela usa chaves de criptografia do AWS KMS de propriedade da AWS para essa proteção.
A criptografia de dados em repouso padrão reduz os custos operacionais e a complexidade envolvidos na proteção de dados sensíveis. Essa abordagem ajuda a criar aplicações seguras que atendam aos rigorosos requisitos regulatórios e de conformidade de criptografia.
Usar concessões no AWS KMS
A API de dados requer uma concessão para usar a chave gerenciada pelo cliente.
Quando você chama ExecuteStatement ou BatchExecuteStatement em um cluster criptografado com uma chave gerenciada pelo cliente, o Amazon Redshift cria uma concessão em seu nome enviando uma solicitação CreateGrant ao AWS KMS. O AWS KMS usa concessões para dar acesso à API de dados a uma chave do KMS em sua conta.
A API de dados exige concessões para usar sua chave gerenciada pelo cliente para as seguintes operações:
-
Enviar solicitações
Encryptao AWS KMS para criptografar os metadados da consulta com sua chave gerenciada pelo cliente. -
Enviar solicitações
GenerateDataKeyao AWS KMS para gerar chaves de dados criptografadas pela chave gerenciada pelo cliente. -
Enviar solicitações
Decryptao AWS KMS para descriptografar as chaves de dados criptografadas para que elas possam ser usadas para criptografar seus dados.
É possível revogar o acesso à concessão, ou remover o acesso do Amazon Redshift à chave gerenciada pelo cliente a qualquer momento. Se você fizer isso, a API de dados não poderá mais acessar dados criptografados pela chave gerenciada pelo cliente, o que afetará as operações que dependem desses dados. Por exemplo, se você tentar recuperar os resultados da consulta ou acompanhar o status da consulta depois de revogar a concessão, a API de dados exibirá uma AccessDeniedException.
Políticas de chave para a chave gerenciada pelo cliente
As políticas de chaves controlam o acesso à chave gerenciada pelo seu cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar a chave gerenciada pelo cliente, você pode especificar uma política de chaves. Para saber mais, consulte Chaves mestras do cliente (CMKs) no AWS Key Management Service Guia do desenvolvedor.
Para usar suas chaves gerenciadas pelo cliente com a API de dados, primeiro permita o acesso ao Amazon Redshift. As seguintes operações de API deverão ser permitidas na política de chave:
-
kms:CreateGrant: adiciona uma concessão a uma chave gerenciada pelo cliente. Concede controle de acesso a uma chave do AWS KMS especificada, que permite o acesso às operações de concessão exigidas pelo Amazon Redshift. Para obter mais informações, consulte Usar concessõesAWS KMS.
Veja a seguir um exemplo de política de chave.
"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":"*" } ]
Contexto de criptografia da API de dados
Um contexto de criptografia é um conjunto opcional de pares de chave-valor que pode conter mais informações contextuais sobre os dados. O AWS KMS usa o contexto de criptografia como dados autenticados adicionais para comportar criptografia autenticada. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, o AWS KMS vincula de forma criptográfica o contexto da criptografia aos dados criptografados. Para descriptografar os dados, você inclui o mesmo contexto de criptografia na solicitação.
A API de dados usa os mesmos três pares de chave-valor de contexto de criptografia em todas as operações criptográficas do AWS KMS para clusters provisionados:
-
aws:redshift:arn: o nome do recurso da Amazon (ARN) do cluster. -
aws:redshift:createtime: o carimbo de data/hora em que você solicitou a criação do cluster. -
serviceName–RedshiftDataAPI
"EncryptionContextSubset": { "aws:redshift:arn": "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster", "aws:redshift:createtime": "20250815T0000Z", "serviceName": "RedshiftDataAPI", }
A API de dados usa dois pares de chave-valor de contexto de criptografia em todas as operações criptográficas do AWS KMS para grupos de trabalho sem servidor:
-
aws:redshift-serverless:arn: o nome do recurso da Amazon (ARN) do namespace. -
serviceName: RedshiftDataAPI
"EncryptionContextSubset": { "aws:redshift-serverless:arn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace:12345678-1234-1234-1234-123456789012", "serviceName": "RedshiftDataAPI" }
Para acessar mais informações sobre criptografia, consulte Introdução aos detalhes criptográficos do AWS KMS. Para acessar mais informações sobre a integração do Amazon Redshift e do AWS KMS, consulte Como o Amazon Redshift usa o AWS KMS.