

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criptografia em repouso no Amazon Keyspaces
<a name="EncryptionAtRest"></a>

A *criptografia em repouso* do Amazon Keyspaces (para Apache Cassandra) fornece segurança aprimorada ao criptografar seus dados em repouso usando chaves de criptografia armazenadas no [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/). Essa funcionalidade ajuda a reduzir a carga e complexidade operacionais necessárias para proteger dados confidenciais. Com a criptografia de dados em repouso, você pode criar aplicativos confidenciais que atendem a requisitos rigorosos de conformidade e regulamentação de criptografia para proteção de dados. 

 A criptografia em repouso do Amazon Keyspaces usa o Advanced Encryption Standard de 256 bits (AES-256). Isso ajuda a proteger seus dados contra o acesso não autorizado ao armazenamento subjacente. 

O Amazon Keyspaces criptografa e descriptografa os dados em tabelas e streams de forma transparente. O Amazon Keyspaces usa criptografia envelopada e uma hierarquia de chaves para proteger as chaves de criptografia de dados. Ele se integra ao AWS KMS para armazenar e gerenciar a chave de criptografia raiz. Para obter mais informações sobre a hierarquia de chaves da criptografia, consulte o [Criptografia em repouso: como funciona no Amazon Keyspaces](encryption.howitworks.md). Para obter mais informações sobre AWS KMS conceitos como criptografia de envelope, consulte [conceitos AWS KMS de serviços de gerenciamento](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) no *Guia do AWS Key Management Service desenvolvedor*.

 Ao criar uma nova tabela, você pode escolher uma das seguintes *chaves AWS KMS (chaves KMS)*: 
+ Chave pertencente à AWS — Esse é o tipo de criptografia padrão. A chave é de propriedade do Amazon Keyspaces (sem custo adicional). 
+ Chave gerenciada pelo cliente: a chave é armazenada na sua conta e é você que a cria, detém e gerencia. Você tem controle total sobre a chave gerenciada pelo cliente (AWS KMS taxas aplicáveis).

O Amazon Keyspaces criptografa automaticamente os fluxos de captura de dados alterados (CDC) com a mesma chave da tabela subjacente. Para obter mais informações sobre o CDC, consulte[Trabalhando com fluxos de captura de dados de alteração (CDC) no Amazon Keyspaces](cdc.md).

 Você pode alternar entre a chave gerenciada pelo cliente Chave pertencente à AWS e a chave gerenciada pelo cliente a qualquer momento. É possível especificar uma chave gerenciada pelo cliente quando você cria uma nova tabela ou alterou a chave KMS de uma tabela existente usando o console ou programaticamente usando as instruções CQL. Para saber como, consulte [Criptografia em repouso: como usar chaves gerenciadas pelo cliente para criptografar tabelas no Amazon Keyspaces](encryption.customermanaged.md).

 A criptografia em repouso usando a opção padrão de Chaves pertencentes à AWS é oferecida sem custo adicional. No entanto, as cobranças do AWS KMS se aplicam a chaves gerenciadas pelo cliente. Para obter mais informações sobre preços, consulte [Preços do AWS KMS](https://aws.amazon.com/kms/pricing).

A criptografia em repouso do Amazon Keyspaces está disponível em todas Regiões da AWS, incluindo as regiões da AWS China (Pequim) e AWS China (Ningxia). Para obter mais informações, consulte [Criptografia em repouso: como funciona no Amazon Keyspaces](encryption.howitworks.md).

**Topics**
+ [Criptografia em repouso: como funciona no Amazon Keyspaces](encryption.howitworks.md)
+ [Criptografia em repouso: como usar chaves gerenciadas pelo cliente para criptografar tabelas no Amazon Keyspaces](encryption.customermanaged.md)

# Criptografia em repouso: como funciona no Amazon Keyspaces
<a name="encryption.howitworks"></a>

A *criptografia em repouso* do Amazon Keyspaces (para Apache Cassandra) criptografa seus dados usando Advanced Encryption Standard (AES-256) de 256 bits. Isso ajuda a proteger seus dados contra o acesso não autorizado ao armazenamento subjacente. Todos os dados do cliente nas tabelas do Amazon Keyspaces são criptografados em repouso por padrão, e a criptografia do lado do servidor é transparente, o que significa que não são necessárias alterações nos aplicativos.

A criptografia em repouso se integra com AWS Key Management Service (AWS KMS) para gerenciar a chave de criptografia usada para criptografar suas tabelas. Ao criar uma nova tabela ou atualizar uma tabela existente, você pode escolher uma das seguintes opções de *chave AWS KMS *:
+ Chave pertencente à AWS — Esse é o tipo de criptografia padrão. A chave é de propriedade do Amazon Keyspaces (sem custo adicional).
+ Chave gerenciada pelo cliente: a chave é armazenada na sua conta e é você que a cria, detém e gerencia. Você tem controle total sobre a chave gerenciada pelo cliente (AWS KMS taxas aplicáveis).

**AWS KMS chave (chave KMS)**  
A criptografia em repouso protege todos os seus dados do Amazon Keyspaces com uma AWS KMS chave. Por padrão, o Amazon Keyspaces usa uma [Chave pertencente à AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk), uma chave de criptografia multilocatário que é criada e gerenciada em uma conta de serviço do Amazon Keyspaces.   
No entanto, você pode criptografar suas tabelas do Amazon Keyspaces usando [uma chave gerenciada pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) na sua Conta da AWS. Você pode selecionar uma chave do KMS diferente para cada tabela em uma keyspace. A chave do KMS selecionada para uma tabela também é usada para criptografar todos os metadados e backups restauráveis.   
Você seleciona a chave do KMS para uma tabela ao criar ou atualizar essa tabela. É possível alterar a chave do KMS de uma tabela a qualquer momento, seja no console do Amazon Keyspaces ou usando a instrução [ALTER TABLE](cql.ddl.keyspace.md#cql.ddl.keyspace.alter). O processo de alternar chaves KMS é facilitado e não exige tempo de inatividade ou causa serviço de degradação.

**Hierarquia de chaves**  
O Amazon Keyspaces usa uma hierarquia de chaves para criptografar dados. Nessa hierarquia de chaves, a chave KMS é a chave raiz. É usado para criptografar e descriptografar a chave de criptografia de tabela do Amazon Keyspaces. A chave de criptografia da tabela é usada para criptografar as chaves de criptografia usadas internamente pelo Amazon Keyspaces para criptografar e descriptografar dados ao realizar operações de leitura e gravação.   
Com a hierarquia de chaves de criptografia, você pode fazer alterações na chave KMS sem precisar recriptografar os dados ou afetar os aplicativos e as operações de dados em andamento.   

![\[Hierarquia de chaves mostrando a chave raiz, a chave de criptografia de tabela e a chave de criptografia de dados usada para criptografia em repouso.\]](http://docs.aws.amazon.com/pt_br/keyspaces/latest/devguide/images/keyspaces_encryption.png)


**Chave de tabela**  
A chave de tabela do Amazon Keyspaces é usada como uma chave de criptografia de chaves. O Amazon Keyspaces usa a chave de tabela para proteger as chaves de criptografia de dados internas usadas para criptografar os dados armazenados em tabelas, arquivos de log e backups restauráveis. O Amazon Keyspaces gera uma chave de criptografia de dados exclusiva para cada estrutura subjacente em uma tabela. No entanto, várias linhas da tabela podem ser protegidas pela mesma chave de criptografia de dados.  
Quando você define pela primeira vez a chave KMS como uma chave gerenciada pelo cliente, AWS KMS gera uma *chave de dados*. A chave AWS KMS de dados se refere à chave da tabela no Amazon Keyspaces.  
Quando você acessa uma tabela criptografada, o Amazon Keyspaces envia uma solicitação para usar a chave KMS AWS KMS para descriptografar a chave da tabela. Ele usa a chave de tabela de texto simples para descriptografar as chaves de criptografia de dados do Amazon Keyspaces e usa as chaves de criptografia de dados de texto simples para descriptografar os dados da tabela.  
O Amazon Keyspaces usa e armazena a chave da tabela e as chaves de criptografia de dados fora do. AWS KMS Ele protege todas as chaves com a criptografia [Advanced Encryption Standard](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) (AES) e chaves de criptografia de 256 bits. Depois, armazena as chaves criptografadas com os dados criptografados para que estejam disponíveis para descriptografar os dados da tabela sob demanda.

**Armazenamento em cache de chave de tabela**  
Para evitar a chamada AWS KMS para cada operação do Amazon Keyspaces, o Amazon Keyspaces armazena em cache as chaves da tabela de texto simples para cada conexão na memória. Se o Amazon Keyspaces receber uma solicitação para a chave da tabela em cache após cinco minutos de inatividade, ele enviará uma nova solicitação para AWS KMS descriptografar a chave da tabela. Essa chamada captura todas as alterações feitas nas políticas de acesso da chave KMS em AWS KMS ou AWS Identity and Access Management (IAM) desde a última solicitação para descriptografar a chave da tabela.

**criptografia envelopada**  
Se você alterar a chave da tabela gerenciada pelo cliente, o Amazon Keyspaces gera outra chave de tabela. Depois, ele usa a nova chave de tabela para criptografar novamente as chaves de criptografia de dados. Ele também usa a nova chave de tabela para criptografar chaves de tabela anteriores que são usadas para proteger backups restauráveis. Esse processo é chamado de criptografia envelopada. Isso garante que você possa acessar backups restauráveis mesmo se você alternar a chave gerenciada pelo cliente. Para obter mais informações sobre a criptografia envelopada, consulte [Criptografia de envelope](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) no *Guia do desenvolvedor do AWS Key Management Service *.

**Topics**
+ [AWS chaves de propriedade](#keyspaces-owned)
+ [Chaves gerenciadas pelo cliente](#customer-managed)
+ [Notas de uso de criptografia em repouso](#encryption.usagenotes)

## AWS chaves de propriedade
<a name="keyspaces-owned"></a>

Chaves pertencentes à AWS não estão armazenados no seu Conta da AWS. Elas fazem parte de uma coleção de chaves KMS que AWS possui e gerencia para uso em várias Contas da AWS. AWS serviços que você pode Chaves pertencentes à AWS usar para proteger seus dados.

Você não pode visualizar, gerenciar Chaves pertencentes à AWS, usar ou auditar seu uso. No entanto, você não precisa fazer nenhum trabalho nem alterar nenhum programa para proteger as chaves que criptografam seus dados.

Não é cobrada uma taxa mensal ou uma taxa de uso pelo uso de Chaves pertencentes à AWS, e elas não são contabilizadas nas AWS KMS cotas da sua conta.

## Chaves gerenciadas pelo cliente
<a name="customer-managed"></a>

As chaves gerenciadas pelo cliente são chaves Conta da AWS que você cria, possui e gerencia. Você tem controle total sobre essas chaves KMS. 

Use uma chave gerenciada pelo cliente para obter os seguintes recursos:
+ Você cria e gerencia a chave gerenciada pelo cliente, incluindo a configuração e a manutenção de [políticas de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), [políticas do IAM](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) e [concessões](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) para controlar o acesso à chave gerenciada pelo cliente. Você pode [habilitar e desabilitar](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html) a chave gerenciada pelo cliente, habilitar e desabilitar a [alternância automática de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) e [programar a chave gerenciada pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) para ser deletada quando ela não estiver mais em uso. Você pode criar tags e aliases para as chaves gerenciadas pelo cliente que você gerencia.
+ Você pode usar uma chave gerenciada pelo cliente com [material de chave importado](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) ou uma chave gerenciada pelo cliente em um [armazenamento de chaves personalizado](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) que você possui e gerencia. 
+ Você pode usar o AWS CloudTrail Amazon CloudWatch Logs para rastrear as solicitações que o Amazon Keyspaces envia AWS KMS em seu nome. Para obter mais informações, consulte [Etapa 6: Configurar o monitoramento com AWS CloudTrail](encryption.customermanaged.md#encryption-cmk-trail).

As chaves gerenciadas pelo cliente são [cobradas](https://aws.amazon.com/kms/pricing/) por cada chamada de API, e as AWS KMS cotas se aplicam a essas chaves do KMS. Para obter mais informações, consulte [Cotas AWS KMS de recurso ou de solicitação](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html).

Quando você especifica uma chave gerenciada pelo cliente como a chave de criptografia raiz de uma tabela, os backups restauráveis são criptografados com a mesma chave de criptografia especificada para a tabela no momento em que o backup é criado. Se a chave KMS da tabela for alternada, o envelopamento da chave garante que a chave KMS mais recente tenha acesso a todos os backups restauráveis.

O Amazon Keyspaces deve ter acesso à sua chave gerenciada pelo cliente para fornecer acesso aos dados da sua tabela. Se o estado da chave de criptografia estiver definido como desativado ou programado para exclusão, o Amazon Keyspaces não conseguirá criptografar ou descriptografar dados. Como resultado, você não consegue realizar operações de leitura e gravação na tabela. Assim que o serviço detectar que a chave de criptografia está inacessível, o Amazon Keyspaces enviará uma notificação por e-mail para alertar você. 

Você deve restaurar a acesso à sua chave de criptografia dentro de sete dias ou o Amazon Keyspaces excluirá sua tabela automaticamente. Como precaução, o Amazon Keyspaces cria um backup restaurável dos dados da tabela antes de excluí-la. O Amazon Keyspaces mantém o backup restaurável por 35 dias. Depois de 35 dias, você não poderá mais restaurar os dados da tabela. Você não é cobrado pelo backup restaurável, mas [cobranças de restauração](https://aws.amazon.com/keyspaces/pricing) padrão se aplicam. 

É possível usar esse backup restaurável e restaurar seus dados para uma nova tabela. Para iniciar a restauração, a última chave gerenciada pelo cliente usada na tabela deve estar habilitada e o Amazon Keyspaces deve ter acesso a ela.

**nota**  
Quando vovê cria uma tabela criptografada usando uma chave gerenciada pelo cliente que está inacessível ou programada para ser excluída antes da conclusão do processo de criação, ocorre um erro. A operação de criação de tabela falha e você recebe uma notificação por e-mail.

## Notas de uso de criptografia em repouso
<a name="encryption.usagenotes"></a>

Considere o seguinte ao usar criptografia em repouso no Amazon Keyspaces.
+ A criptografia do lado do servidor em repouso está habilitada em todas as tabelas do Amazon Keyspaces e não pode ser desabilitada. A tabela inteira é criptografada em repouso, você não pode selecionar colunas ou linhas específicas para criptografia.
+ Por padrão, o Amazon Keyspaces usa uma chave padrão de serviço único (Chave pertencente à AWS) para criptografar todas as suas tabelas. Se essa chave não existir, ela é criada para você. As chaves padrão do serviço não podem ser desabilitadas. 
+ A criptografia em repouso só criptografa dados enquanto eles estão estáticos (em repouso) em uma mídia de armazenamento persistente. Se a segurança dos dados for motivo de preocupação para dados em trânsito ou dados em uso, será necessário tomar outras medidas:
  + Dados em trânsito: todos os dados no Amazon Keyspaces são criptografados em trânsito. Por padrão, as comunicações com o Amazon Keyspaces são protegidas com a criptografia Secure Sockets Layer (SSL) /Transport Layer Security (TLS).
  + Dados em uso: proteja seus dados antes de enviá-los ao Amazon Keyspaces usando a criptografia do lado do cliente. 
  + Chaves gerenciadas pelo cliente: os dados em repouso em suas tabelas são sempre criptografados usando suas chaves gerenciadas pelo cliente. No entanto, as operações que realizam atualizações atômicas de várias linhas criptografam os dados temporariamente usando Chaves pertencentes à AWS durante o processamento. Isso inclui operações de exclusão de intervalos e operações que acessam simultaneamente dados estáticos e não estáticos.
+ Uma única chave gerenciada pelo cliente pode ter até 50.000 [concessões](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html). Cada tabela do Amazon Keyspaces associada a uma chave gerenciada pelo cliente consome 2 concessões. Uma concessão é liberada quando a tabela é excluída. A segunda concessão é usada para criar um snapshot automático da tabela para proteger contra perda de dados caso o Amazon Keyspaces perca o acesso à chave gerenciada pelo cliente acidentalmente. Essa concessão é liberada 42 dias após a exclusão da tabela.

# Criptografia em repouso: como usar chaves gerenciadas pelo cliente para criptografar tabelas no Amazon Keyspaces
<a name="encryption.customermanaged"></a>

Você pode usar o console ou as instruções CQL para especificar as AWS KMS key para novas tabelas e atualizar as chaves de criptografia das tabelas existentes no Amazon Keyspaces. O tópico a seguir descreve como implementar chaves gerenciadas pelo cliente para tabelas novas e existentes. 

**Topics**
+ [Pré-requisitos: Crie uma chave gerenciada pelo cliente usando AWS KMS e conceda permissões ao Amazon Keyspaces](#encryption.createCMKMS)
+ [Etapa 3: Especificar uma chave gerenciada pelo cliente para uma nova tabela](#encryption.tutorial-creating)
+ [Etapa 4: Atualizar a chave de criptografia de uma tabela existente](#encryption.tutorial-update)
+ [Etapa 5: Usar o contexto de criptografia do Amazon Keyspaces nos logs](#encryption-context)
+ [Etapa 6: Configurar o monitoramento com AWS CloudTrail](#encryption-cmk-trail)

## Pré-requisitos: Crie uma chave gerenciada pelo cliente usando AWS KMS e conceda permissões ao Amazon Keyspaces
<a name="encryption.createCMKMS"></a>

Antes de proteger uma tabela do Amazon Keyspaces com uma [chave gerenciada pelo cliente](encryption.howitworks.md#customer-managed), você deve primeiro criar a chave em AWS Key Management Service (AWS KMS) e depois autorizar o Amazon Keyspaces a usar essa chave.

### Etapa 1: criar uma chave gerenciada pelo cliente usando AWS KMS
<a name="encryption-create-key"></a>

Para criar uma chave gerenciada pelo cliente para ser usada para proteger uma tabela do Amazon Keyspaces, você pode seguir as etapas em [Criação de chaves KMS de criptografia simétrica](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) usando o console ou a API. AWS 

### Etapa 2: Autorizar o uso da chave gerenciada pelo cliente
<a name="encryption-authz"></a>

Antes de escolher uma [chave gerenciada pelo cliente](encryption.howitworks.md#customer-managed) para proteger uma tabela do Amazon Keyspaces, as políticas nessa chave gerenciada pelo cliente devem conceder ao Amazon Keyspaces permissão para usá-la em seu nome. Você tem controle total sobre as políticas e concessões em uma chave gerenciada pelo cliente. É possível fornecer essas permissões em uma [política de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), em uma [política do IAM](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) ou em uma [concessão](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html).

O Amazon Keyspaces não precisa de autorização adicional para usar o padrão [Chave pertencente à AWS](encryption.howitworks.md#keyspaces-owned) para proteger as tabelas do Amazon Keyspaces em sua conta AWS .

Os tópicos a seguir mostram como configurar as permissões necessárias usando concessões e políticas do IAM que permitem que as tabelas do Amazon Keyspaces usem uma chave gerenciada pelo cliente.

**Topics**
+ [Política de chaves para chaves gerenciadas pelo cliente](#encryption-customer-managed-policy)
+ [Exemplo de política de chave do](#encryption-customer-managed-policy-sample)
+ [Como usar concessões para autorizar o Amazon Keyspaces](#encryption-grants)

#### Política de chaves para chaves gerenciadas pelo cliente
<a name="encryption-customer-managed-policy"></a>

Ao escolher uma [chave gerenciada pelo cliente](encryption.howitworks.md#customer-managed) para proteger uma tabela do Amazon Keyspaces, o Amazon Keyspaces obtém permissão para usar a chave gerenciada pelo cliente em nome da entidade principal que faz a seleção. Essa entidade principal, um usuário ou um perfil deve ter as permissões na chave gerenciada pelo cliente exigida pelo Amazon Keyspaces. 

No mínimo, o Amazon Keyspaces exige as seguintes permissões em uma chave gerenciada pelo cliente:
+ [kms:Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
+ [kms: ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) \$1 (para kms: ReEncryptFrom e kms:ReEncryptTo)
+ kms: GenerateDataKey \$1 (para [kms: GenerateDataKey e [kms](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html):](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)) GenerateDataKeyWithoutPlaintext
+ [kms: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [kms: CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)

#### Exemplo de política de chave do
<a name="encryption-customer-managed-policy-sample"></a>

Por exemplo, a política de chaves de exemplo a seguir fornece somente as permissões necessárias. A política tem os seguintes efeitos:
+ Permite que o Amazon Keyspaces use a chave gerenciada pelo cliente em operações criptográficas e cria concessões, mas somente quando está atuando em nome de entidades principais na conta que tem permissão para usar o Amazon Keyspaces. Se as entidades principais especificados na instrução da política não tiverem permissão para usar o Amazon Keyspaces, a chamada falhará, mesmo se vier do serviço do Amazon Keyspaces. 
+ A chave de ViaService condição [kms:](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) permite as permissões somente quando a solicitação vem do Amazon Keyspaces em nome dos diretores listados na declaração de política. Essas entidades principais não podem chamar essas operações diretamente. Observe que o valor de `kms:ViaService`, `cassandra.*.amazonaws.com`, tem um asterisco (\$1) na posição da região. O Amazon Keyspaces exige a permissão para ser independente de qualquer coisa específica. Região da AWS
+ Concede aos administradores da chave gerenciada pelo cliente (usuários que podem assumir o perfil `db-team`) acesso somente leitura à chave gerenciada pelo cliente e permissão para revogar concessões, incluindo as [concessões exigidas pelo Amazon Keyspaces](#encryption-grants) para proteger a tabela.
+ Concede ao Amazon Keyspaces acesso somente leitura à chave gerenciada pelo cliente. Nesse caso, o Amazon Keyspaces pode chamar essas operações diretamente. Ele não precisa atuar em nome da entidade principal de uma conta.

Antes de usar um exemplo de política de chaves, substitua os diretores de exemplo pelos diretores reais do seu. Conta da AWS

```
{
  "Id": "key-policy-cassandra",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid" : "Allow access through Amazon Keyspaces for all principals in the account that are authorized to use Amazon Keyspaces",
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::111122223333:user/db-lead"},
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey",
        "kms:CreateGrant"
      ],
      "Resource": "*",      
      "Condition": { 
         "StringLike": {
           "kms:ViaService" : "cassandra.*.amazonaws.com"
         }
      }
    },
    {
      "Sid":  "Allow administrators to view the customer managed key and revoke grants",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/db-team"
       },
      "Action": [
        "kms:Describe*",
        "kms:Get*",
        "kms:List*",
        "kms:RevokeGrant"
      ],
      "Resource": "*"
    }
  ]
}
```

#### Como usar concessões para autorizar o Amazon Keyspaces
<a name="encryption-grants"></a>

Além de políticas de chaves, o Amazon Keyspaces usa concessões para definir permissões em uma chave gerenciada pelo cliente. Para visualizar as concessões em uma chave gerenciada pelo cliente na sua conta, use a operação [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html). O Amazon Keyspaces não precisa de concessões ou permissões adicionais para usar a [Chave pertencente à AWS](encryption.howitworks.md#keyspaces-owned) para proteger sua tabela.

O Amazon Keyspaces usa as permissões de concessão ao executar manutenção do sistema e tarefas de proteção de dados contínua em segundo plano. Usa também concessões para gerar chaves de tabela.

Cada concessão é específica a uma tabela. Se a conta inclui várias tabelas criptografadas na mesma chave gerenciada pelo cliente, há uma concessão de cada tipo para cada tabela. A concessão é restringida pelo contexto de [criptografia do Amazon Keyspaces](https://docs.aws.amazon.com/kms/latest/developerguide/encryption-context.html), que inclui o nome da tabela e Conta da AWS o ID. A concessão inclui permissão para [retirar a concessão](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html) se ela não for mais necessária. 

Para criar as concessões, o Amazon Keyspaces deve ter permissão para chamar `CreateGrant` em nome do usuário que criou a tabela criptografada.

A política de chaves também pode permitir que a conta [revogue a concessão](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html) na chave gerenciada pelo cliente. No entanto, se você revogar a concessão em uma tabela criptografada ativa, o Amazon Keyspaces não poderá proteger e manter a tabela.

## Etapa 3: Especificar uma chave gerenciada pelo cliente para uma nova tabela
<a name="encryption.tutorial-creating"></a>

Siga estas etapas para especificar a chave gerenciada pelo cliente em uma nova tabela usando o console do Amazon Keyspaces ou o CQL.

### Crie uma tabela criptografada usando uma chave gerenciada pelo cliente (console)
<a name="encryption.tutorial-console"></a>

1. [Faça login no Console de gerenciamento da AWS e abra o console do Amazon Keyspaces em casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. No painel de navegação, selecione **Tabelas** e **Criar tabela**.

1. Na página **Criar tabela**, na seção **Detalhes da tabela**, selecione um espaço de chaves e forneça um nome para a nova tabela.

1. Na seção **Esquema**, crie o esquema para sua tabela.

1. Na seção **Configurações da tabela**, selecione **Personalizar configurações**.

1. Continue com as **configurações de criptografia**.

   Nesta etapa, você seleciona as configurações de criptografia para a tabela. 

   Na seção **Criptografia em repouso**, em **Escolha uma AWS KMS key**, escolha a opção **Escolha uma chave KMS diferente (avançada)** e, no campo de pesquisa, escolha AWS KMS key ou insira um nome de recurso da Amazon (ARN).
**nota**  
Se a chave selecionada não estiver acessível ou não tiver as permissões necessárias, consulte [Solução de problemas de acesso à chave](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) no Guia do AWS Key Management Service desenvolvedor.

1. Selecione **Create (Criar)** para criar a tabela criptografada. 

### Crie uma nova tabela usando uma chave gerenciada pelo cliente para criptografia em repouso (CQL)
<a name="encryption.tutorial-cql"></a>

Para criar uma nova tabela que usa uma chave gerenciada pelo cliente para criptografia em repouso, você pode usar a instrução `CREATE TABLE` como no exemplo a seguir. Certifique-se de substituir o ARN da chave por um ARN para uma chave válida com permissões concedidas ao Amazon Keyspaces.

```
CREATE TABLE my_keyspace.my_table(id bigint, name text, place text STATIC, PRIMARY KEY(id, name)) WITH CUSTOM_PROPERTIES = {
        'encryption_specification':{
                'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 
                'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111'
            }
    };
```

Se você receber uma `Invalid Request Exception`, precisará confirmar que a chave gerenciada pelo cliente é válida e que o Amazon Keyspaces tem as permissões necessárias. Para confirmar se a chave foi configurada corretamente, consulte [Solução de problemas de acesso à chave](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) no Guia do AWS Key Management Service desenvolvedor. 

## Etapa 4: Atualizar a chave de criptografia de uma tabela existente
<a name="encryption.tutorial-update"></a>

Você também pode usar o console do Amazon Keyspaces ou o CQL para alterar as chaves de criptografia de uma tabela existente entre uma chave KMS gerenciada pelo cliente Chave pertencente à AWS e uma chave KMS gerenciada pelo cliente a qualquer momento.

### Atualizar uma tabela existente com a nova chave gerenciada pelo cliente (console)
<a name="encryption.tutorial-update-console"></a>

1. [Faça login no Console de gerenciamento da AWS e abra o console do Amazon Keyspaces em casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1.  No painel de navegação, selecione **Tabelas**.

1. Escolha a tabela com a qual você deseja trabalhar e selecione a guia **Configurações adicionais**.

1. Na seção **Criptografia em repouso**, escolha **Gerenciar criptografia** para editar as configurações de criptografia da tabela.

   Em **Escolher uma AWS KMS key**, escolha a opção **Escolha uma chave KMS diferente (avançada)** e, no campo de pesquisa, escolha uma AWS KMS key ou insira um Nome de recurso da Amazon (ARN).
**nota**  
Se a chave selecionada não for válida, consulte [Solução de problemas de acesso à chave](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) no Guia do AWS Key Management Service desenvolvedor.

   Como alternativa, você pode escolher um Chave pertencente à AWS para uma tabela criptografada com uma chave gerenciada pelo cliente.

1. Selecione **Salvar** para salvar as alterações. 

### Atualizar a chave de criptografia usada para uma tabela existente
<a name="encryption.tutorial-update-cql"></a>

Para alterar a chave de criptografia de uma tabela existente, use a instrução `ALTER TABLE` para especificar uma chave gerenciada pelo cliente para criptografia em repouso. Certifique-se de substituir o ARN da chave por um ARN para uma chave válida com permissões concedidas ao Amazon Keyspaces.

```
ALTER TABLE my_keyspace.my_table WITH CUSTOM_PROPERTIES = {     
              'encryption_specification':{ 
                      'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 
                      'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111'     
                  } 
         };
```

Se você receber uma `Invalid Request Exception`, precisará confirmar que a chave gerenciada pelo cliente é válida e que o Amazon Keyspaces tem as permissões necessárias. Para confirmar se a chave foi configurada corretamente, consulte [Solução de problemas de acesso à chave](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) no Guia do AWS Key Management Service desenvolvedor. 

Para alterar a chave de criptografia de volta para a opção padrão de criptografia em repouso com Chaves pertencentes à AWS, você pode usar a `ALTER TABLE` instrução conforme mostrado no exemplo a seguir.

```
ALTER TABLE my_keyspace.my_table WITH CUSTOM_PROPERTIES = {
                'encryption_specification':{
                      'encryption_type' : 'AWS_OWNED_KMS_KEY' 
                    } 
         };
```

## Etapa 5: Usar o contexto de criptografia do Amazon Keyspaces nos logs
<a name="encryption-context"></a>

Um [contexto de criptografia](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) é um conjunto de pares de chave-valor que contêm dados arbitrários não secretos. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, vincula AWS KMS criptograficamente o contexto de criptografia aos dados criptografados. Para descriptografar os dados, é necessário passar o mesmo contexto de criptografia. 

O Amazon Keyspaces usa o mesmo contexto de criptografia em todas as operações AWS KMS criptográficas. Se você usar uma [chave gerenciada pelo cliente](encryption.howitworks.md#customer-managed) para proteger a tabela do Amazon Keyspaces, é possível usar o contexto de criptografia para identificar o uso da chave gerenciada pelo cliente em logs e registros de auditoria. Ela também aparece em texto simples em registros, como em registros para e [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)[Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) Logs. 

Em suas solicitações para AWS KMS, o Amazon Keyspaces usa um contexto de criptografia com três pares de chave-valor.

```
"encryptionContextSubset": {
    "aws:cassandra:keyspaceName": "my_keyspace",
    "aws:cassandra:tableName": "mytable"
    "aws:cassandra:subscriberId": "111122223333"
}
```
+ **Espaço de chaves**: O primeiro par de chave-valor identifica o espaço de chaves que inclui a tabela que o Amazon Keyspaces está criptografando. A chave é `aws:cassandra:keyspaceName`. O valor é o nome do espaço de chaves.

  ```
  "aws:cassandra:keyspaceName": "<keyspace-name>"
  ```

  Por exemplo:

  ```
  "aws:cassandra:keyspaceName": "my_keyspace"
  ```
+ **Tabela**: o segundo par de chave/valor identifica a tabela que o Amazon Keyspaces está criptografando. A chave é `aws:cassandra:tableName`. O valor é o nome da tabela.

  ```
  "aws:cassandra:tableName": "<table-name>"
  ```

  Por exemplo:

  ```
  "aws:cassandra:tableName": "my_table"
  ```
+ **Conta**: o terceiro par de chave-valor identifica a Conta da AWS. A chave é `aws:cassandra:subscriberId`. O valor é o ID de conta.

  ```
  "aws:cassandra:subscriberId": "<account-id>"
  ```

  Por exemplo:

  ```
  "aws:cassandra:subscriberId": "111122223333"
  ```

## Etapa 6: Configurar o monitoramento com AWS CloudTrail
<a name="encryption-cmk-trail"></a>

Se você usa uma [chave gerenciada pelo cliente](encryption.howitworks.md#customer-managed) para proteger suas tabelas do Amazon Keyspaces, você pode usar AWS CloudTrail logs para rastrear as solicitações que o Amazon Keyspaces envia em seu nome. AWS KMS 

As solicitações `GenerateDataKey`, `DescribeKey`, `Decrypt`, e `CreateGrant` são discutidas nesta seção. Além disso, o Amazon Keyspaces usa uma [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)operação para remover uma concessão quando você exclui uma tabela. 

**nota**  
Quando você trabalha com o Amazon Keyspaces, algumas operações podem gerar CloudTrail eventos com um `invokedBy` campo de. `dynamodb.amazonaws.com` Isso é esperado e ocorre porque o Amazon Keyspaces se integra ao Amazon DynamoDB para fornecer seu serviço.

**GenerateDataKey**  
O Amazon Keyspaces cria uma chave de tabela exclusiva para criptografar dados em repouso. Ele envia uma *[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)*solicitação para AWS KMS que especifique a chave KMS para a tabela.   
O evento que registra a operação `GenerateDataKey` é semelhante ao evento de exemplo a seguir. O usuário é a conta de serviço do Amazon Keyspaces. Os parâmetros incluem o Nome do recurso da Amazon (ARN) da chave gerenciada pelo cliente, um especificador de chave que requer uma chave de 256 bits e o [contexto de criptografia](#encryption-context) que identifica a tabela e a conta da Conta da AWS.  

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-04-16T04:56:05Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "keySpec": "AES_256",
        "encryptionContext": {
            "aws:cassandra:keyspaceName": "my_keyspace",
            "aws:cassandra:tableName": "my_table",
            "aws:cassandra:subscriberId": "123SAMPLE012"
        },
        "keyId": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
    },
    "responseElements": null,
    "requestID": "5e8e9cb5-9194-4334-aacc-9dd7d50fe246",
    "eventID": "49fccab9-2448-4b97-a89d-7d5c39318d6f",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123SAMPLE012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "123SAMPLE012",
    "sharedEventID": "84fbaaf0-9641-4e32-9147-57d2cb08792e"
}
```

**DescribeKey**  
O Amazon Keyspaces usa uma [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)operação para determinar se a chave KMS que você selecionou existe na conta e na região.   
O evento que registra a operação `DescribeKey` é semelhante ao evento de exemplo a seguir. O usuário é a conta de serviço do Amazon Keyspaces. Os parâmetros incluem o ARN da chave gerenciada pelo cliente e um especificador de chaves que requer uma chave de 256 bits.  

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAZ3FNIIVIZZ6H7CFQG",
        "arn": "arn:aws:iam::123SAMPLE012:user/admin",
        "accountId": "123SAMPLE012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "admin",
        "sessionContext": {
            "sessionIssuer": {},
            "webIdFederationData": {},
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2021-04-16T04:55:42Z"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-04-16T04:55:58Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "DescribeKey",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "keyId": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
    },
    "responseElements": null,
    "requestID": "c25a8105-050b-4f52-8358-6e872fb03a6c",
    "eventID": "0d96420e-707e-41b9-9118-56585a669658",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123SAMPLE012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "123SAMPLE012"
}
```

**Decrypt**  
Quando você acessa uma tabela criptografada do Amazon Keyspaces, o Amazon Keyspaces precisa descriptografar a chave da tabela para que possa descriptografar as chaves abaixo dela na hierarquia. Descriptografa os dados na tabela. Para descriptografar a chave da tabela, o Amazon Keyspaces envia uma solicitação [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) AWS KMS que especifica a chave KMS para a tabela.  
O evento que registra a operação `Decrypt` é semelhante ao evento de exemplo a seguir. O usuário é o principal usuário Conta da AWS que está acessando a tabela. Os parâmetros incluem a chave da tabela criptografada (como um blob de texto cifrado) e o [contexto de criptografia](#encryption-context) que identifica a tabela e o. Conta da AWS AWS KMS deriva a ID da chave gerenciada pelo cliente do texto cifrado.   

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-04-16T05:29:44Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "encryptionContext": {
            "aws:cassandra:keyspaceName": "my_keyspace",
            "aws:cassandra:tableName": "my_table",
            "aws:cassandra:subscriberId": "123SAMPLE012"
        },
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "50e80373-83c9-4034-8226-5439e1c9b259",
    "eventID": "8db9788f-04a5-4ae2-90c9-15c79c411b6b",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123SAMPLE012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "123SAMPLE012",
    "sharedEventID": "7ed99e2d-910a-4708-a4e3-0180d8dbb68e"
}
```

**CreateGrant**  
Quando você usa uma [chave gerenciada pelo cliente](encryption.howitworks.md#customer-managed) para proteger sua tabela do Amazon Keyspaces, o Amazon Keyspaces usa [concessões](#encryption-grants) para permitir que o serviço execute a proteção de dados e tarefas de manutenção e durabilidade contínuas. Essas concessões não são necessárias em [Chaves pertencentes à AWS](encryption.howitworks.md#keyspaces-owned).  
As concessões que o Amazon Keyspaces cria são específicas a uma tabela. A entidade principal na solicitação [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) é o usuário que criou a tabela.   
O evento que registra a operação `CreateGrant` é semelhante ao evento de exemplo a seguir. Os parâmetros incluem o nome de recurso da Amazon (ARN) da chave gerenciada pelo cliente para a tabela, a entidade principal favorecida e a entidade principal que está sendo retirada (o serviço do Amazon Keyspaces) e as operações que a concessão abrange. Inclui também uma restrição que requer que todas as operações de criptografia usem o [contexto de criptografia](#encryption-context).  

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAZ3FNIIVIZZ6H7CFQG",
        "arn": "arn:aws:iam::arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111:user/admin",
        "accountId": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111",
        "accessKeyId": "AKIAI44QH8DHBEXAMPLE",
        "userName": "admin",
        "sessionContext": {
            "sessionIssuer": {},
            "webIdFederationData": {},
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2021-04-16T04:55:42Z"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-04-16T05:11:10Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "keyId": "a7d328af-215e-4661-9a69-88c858909f20",
        "operations": [
            "DescribeKey",
            "GenerateDataKey",
            "Decrypt",
            "Encrypt",
            "ReEncryptFrom",
            "ReEncryptTo",
            "RetireGrant"
        ],
        "constraints": {
            "encryptionContextSubset": {
                "aws:cassandra:keyspaceName": "my_keyspace",
                "aws:cassandra:tableName": "my_table",
                "aws:cassandra:subscriberId": "123SAMPLE012"
            }
        },
        "retiringPrincipal": "cassandratest.us-east-1.amazonaws.com",
        "granteePrincipal": "cassandratest.us-east-1.amazonaws.com"
    },
    "responseElements": {
        "grantId": "18e4235f1b07f289762a31a1886cb5efd225f069280d4f76cd83b9b9b5501013"
    },
    "requestID": "b379a767-1f9b-48c3-b731-fb23e865e7f7",
    "eventID": "29ee1fd4-28f2-416f-a419-551910d20291",
    "readOnly": false,
    "resources": [
        {
            "accountId": "123SAMPLE012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "123SAMPLE012"
}
```