Criptografia do lado do cliente e do lado do servidor - AWS SDK de criptografia de banco de dados

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 do lado do cliente e do lado do servidor

Nossa biblioteca de criptografia do lado do cliente foi renomeada como SDK de criptografia de banco de dados da AWS. Este guia do desenvolvedor ainda fornece informações sobre o DynamoDB Encryption Client.

O SDK de criptografia de banco de dados da AWS oferece suporte à criptografia do lado do cliente, onde você criptografa os dados da tabela antes de enviá-los ao seu banco de dados. Contudo, o DynamoDB fornece um atributo de criptografia em repouso que criptografa a tabela de forma transparente quando ela é mantida no disco e a descriptografa quando você a acessa.

As ferramentas escolhidas dependem da confidencialidade dos seus dados e dos requisitos de segurança do seu aplicativo. É possível usar o SDK de criptografia de banco de dados da AWS para DynamoDB e a criptografia em repouso. Quando você envia itens criptografados e assinados ao DynamoDB, o DynamoDB não os reconhece como itens protegidos. Ele apenas detecta itens típicos da tabela com valores de atributo binários.

Criptografia do lado do servidor em repouso

O DynamoDB é compatível com a criptografia em repouso, um atributo de criptografia do lado do servidor no qual o DynamoDB criptografa suas tabelas de forma transparente quando elas são mantidas no disco e as descriptografa quando você acessa os dados da tabela.

Quando você usa um SDK da AWS para interagir com o DynamoDB, por padrão, os dados são criptografados em trânsito em uma conexão HTTPS, descriptografados no endpoint do DynamoDB e, depois, criptografados novamente antes de serem armazenados no DynamoDB.

  • Criptografia por padrão. O DynamoDB criptografa e descriptografa de forma transparente todas as tabelas quando elas são gravadas. Não há nenhuma opção para habilitar ou desabilitar a criptografia em repouso.

  • O DynamoDB cria e gerencia as chaves de criptografia.A chave exclusiva de cada tabela é protegida por uma AWS KMS key que nunca deixa o AWS Key Management Service (AWS KMS) descriptografado. Por padrão, o DynamoDB usa uma Chave pertencente à AWS na conta do serviço do DynamoDB, mas é possível escolher uma Chave gerenciada pela AWS ou uma chave gerenciada pelo cliente na conta para proteger algumas ou todas as suas tabelas.

  • Todos os dados da tabela são criptografados no disco. Quando uma tabela criptografada é salva no disco, o DynamoDB criptografa todos os dados da tabela, incluindo a chave primária e os índices secundários locais e globais. Se sua tabela tem uma chave de classificação, algumas dessas chaves que marcam os limites de intervalo são armazenadas em textos simples nos metadados da tabela.

  • Os objetos relacionados a tabelas também são criptografados. A criptografia em repouso protege os streams do DynamoDB, as tabelas globais e os backups sempre que eles estão gravados em mídia durável.

  • Os itens são descriptografados quando você os acessa. Quando você acessa a tabela, o DynamoDB descriptografa a parte da tabela que inclui o item de destino e retorna o item em texto sem formatação para você.

SDK de criptografia de banco de dados da AWS para DynamoDB

A criptografia do lado do cliente fornece proteção de ponta a ponta para seus dados, em trânsito e em repouso, desde sua origem até o armazenamento no DynamoDB. Seus dados em texto simples nunca são expostos a terceiros, incluindo a AWS. É possível usar o SDK de criptografia de banco de dados da AWS para DynamoDB com novas tabelas do DynamoDB, ou é possível migrar suas tabelas existentes do Amazon DynamoDB para a versão 3.x da biblioteca de criptografia do lado do cliente Java para o DynamoDB.

  • Seus dados são protegidos em trânsito e em repouso. Eles nunca são expostos a terceiros, incluindo a AWS.

  • É possível assinar os itens da tabela. É possível direcionar o SDK de criptografia de banco de dados da AWS para calcular uma assinatura em todo ou em parte de um item da tabela, incluindo os atributos de chave primária e o nome da tabela. Essa assinatura permite que você detecte alterações não autorizadas no item como um todo, incluindo a adição ou a exclusão de atributos ou a troca de valores de atributos.

  • Você determina como seus dados são protegidos selecionando um token de autenticação. O token de autenticação determina as chaves de empacotamento que protegem as chaves de dados e, em última análise, os dados. Use as chaves de empacotamento mais seguras e práticas para sua tarefa.

  • O SDK de criptografia de banco de dados da AWS para DynamoDB não criptografa a tabela inteira. Você escolhe quais atributos são criptografados em seus itens. O SDK de criptografia de banco de dados da AWS para DynamoDB não criptografa um item inteiro. Ele não criptografa nomes de atributo ou nomes e valores dos atributos da chave primária (chave de partição e de classificação).

AWS Encryption SDK

Se você estiver criptografando dados armazenados no DynamoDB, recomendamos o SDK de criptografia de banco de dados da AWS para DynamoDB.

O AWS Encryption SDK é uma biblioteca de criptografia do lado do cliente que ajuda você a criptografar e descriptografar dados genéricos. Embora possa proteger qualquer tipo de dado, ele não foi projetado para trabalhar com dados estruturados, como registros de banco de dados. Ao contrário do SDK de criptografia de banco de dados da AWS para DynamoDB, o AWS Encryption SDK não pode fornecer a verificação de integridade em nível de item e não tem nenhuma lógica para reconhecer atributos ou evitar a criptografia de chaves primárias.

Se você utilizar o AWS Encryption SDK para criptografar qualquer elemento de sua tabela, lembre-se de que ele não é compatível com o SDK de criptografia de banco de dados da AWS. Não é possível criptografar com uma biblioteca e descriptografar com uma diferente.