

 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 ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Usar o AWS KMS com a API de dados do Amazon Redshift
<a name="data-api-kms"></a>

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 name="data-api-kms-grants"></a>

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 [https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 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 [https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) ao AWS KMS para criptografar os metadados da consulta com sua chave gerenciada pelo cliente.
+ Enviar solicitações [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) ao AWS KMS para gerar chaves de dados criptografadas pela chave gerenciada pelo cliente.
+ Enviar solicitações [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) ao 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
<a name="data-api-kms-policy"></a>

As políticas de chaves controlam o acesso à chave gerenciada pelo 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, é possível especificar uma política de chave. Para saber mais, consulte [Chaves mestras do cliente (CMKs)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key) 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](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations).

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
<a name="data-api-kms-encryption"></a>

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](https://docs.aws.amazon.com/kms/latest/cryptographic-details/intro.html). 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](https://docs.aws.amazon.com/kms/latest/developerguide/services-redshift.html). 