Conceitos do Amazon DynamoDB Encryption Client - AWS Criptografia de banco SDK

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

Conceitos do Amazon DynamoDB Encryption Client

nota

Nossa biblioteca de criptografia do lado do cliente foi renomeada como SDK de criptografia de banco de dados da AWS. O tópico a seguir fornece informações sobre as versões 1.x—2.x do DynamoDB Encryption Client para Java e versões 1.x—3x do DynamoDB Encryption Client para Python. Para obter mais informações, consulte SDK de criptografia de banco de dados da AWS para obter suporte à versão do DynamoDB.

Este tópico explica a terminologia e os conceitos usados no Amazon DynamoDB Encryption Client.

Para saber como os componentes do DynamoDB Encryption Client interagem, consulte Como o DynamoDB Encryption Client funciona.

Provedor de materiais de criptografia (CMP)

Ao implementar o DynamoDB Encryption Client, uma das suas primeiras tarefas é selecionar um provedor de materiais de criptografia (CMP) (também conhecido como provedor de materiais criptográficos). Sua escolha determina muito do restante da implementação.

O provedor de materiais de criptografia (CMP) coleta, monta e retorna os materiais criptográficos que o criptografador de itens usa para criptografar e assinar os itens de sua tabela. O CMP determina os algoritmos de criptografia a serem usados e como gerar e proteger a criptografia e as chaves de assinatura.

O CMP interage com o criptografador do item. O criptografador do item solicita materiais de criptografia ou de descriptografia do CMP, e o CMP os retorna ao criptografador do item. Então, o criptografador do item usa os materiais de criptografia para criptografar e assinar, ou verificar e descriptografar, o item.

Você especifica o CMP ao configurar o cliente. É possível criar um CMP compatível personalizado ou usar um dos muitos CMPs da biblioteca. A maioria dos CMPs está disponível para várias linguagens de programação.

Criptografadores de itens

O criptografador do itens é um componente de nível inferior que executa operações de criptografia para o DynamoDB Encryption Client. Ele solicita materiais de criptografia de um provedor de materiais de criptografia (CMP) e usa os materiais que o CMP retorna para criptografar e assinar, ou verificar e descriptografar, o item da tabela.

É possível interagir com o criptografador do item diretamente ou usar os auxiliares fornecidos pela biblioteca. Por exemplo, o DynamoDB Encryption Client para Java inclui uma classe auxiliar AttributeEncryptor que é possível usar com o DynamoDBMapper, em vez de interagir diretamente com o criptografador de itens DynamoDBEncryptor. A biblioteca Python inclui as classes auxiliares EncryptedTable, EncryptedClient e EncryptedResource que interagem com o criptografador do item para você.

Ações de atributos

As Ações de atributos informam ao criptografador de itens quais ações executar em cada atributo de item.

Os valores das ações de atributo podem ser um destes:

  • Criptografar e assinar – Criptografa o valor do atributo. Incluir o atributo (nome e valor) na assinatura do item.

  • Apenas assinar – Inclui o atributo na assinatura do item.

  • Não fazer nada – Não criptografa nem assina o atributo.

Para qualquer atributo que possa armazenar dados confidenciais, use Criptografar e assinar. Para atributos de chave primária (chave de partição e chave de classificação), use Apenas assinar. O atributo de descrição do material e o atributo de assinatura não são assinados nem criptografados. Não é necessário especificar ações para esses atributos.

Escolha suas ações de atributos com cuidado. Em caso de dúvida, use Criptografar e assinar. Depois de usar o DynamoDB Encryption Client para proteger seus itens de tabela, não será possível alterar a ação de um atributo sem arriscar um erro de validação de assinatura. Para obter mais detalhes, consulte Alterar seu modelo de dados.

Atenção

Não criptografe os atributos da chave primária. Eles devem permanecer em texto simples para que o DynamoDB possa encontrar o item sem executar uma varredura completa da tabela.

Se o contexto de criptografia do DynamoDB identificar os atributos de chave primária, o cliente gerará um erro se você tentar criptografá-los.

A técnica usada para especificar as ações de atributo é diferente para cada linguagem de programação. Ela também pode ser específica das classes auxiliares que você usa.

Para ver detalhes, consulte a documentação da sua linguagem de programação.

Descrição do material

A descrição do material para um item de tabela criptografado consiste em informações, como algoritmos de criptografia, sobre como o item de tabela é criptografado e assinado. O provedor de materiais de criptografia (CMP) registra a descrição do material à medida que monta os materiais para criptografia e assinatura. Depois, quando precisar montar materiais de criptografia para verificar e descriptografar o item, ele usará a descrição do material como guia.

No DynamoDB Encryption Client, a descrição do material refere-se a três elementos relacionados:

Descrição do material solicitado

Alguns provedores de materiais de criptografia (CMPs) permitem especificar opções avançadas, como um algoritmo de criptografia. Para indicar suas opções, adicione pares de nome-valor à propriedade de descrição do material do contexto de criptografia do DynamoDB na solicitação para criptografar um item da tabela. Esse elemento é conhecido como a descrição do material solicitado. Os valores válidos na descrição solicitada do material são definidos pelo CMP escolhido.

nota

Como a descrição do material pode substituir valores padrão seguros, recomendamos que você omita a descrição solicitada do material, a menos que tenha um bom motivo para usá-la.

Descrição real do material

A descrição do material que os provedores de materiais de criptografia (CMPs) retornam é conhecida como a descrição real do material. Ela descreve os valores reais que o CMP usou quando montou os materiais de criptografia. Ela consiste na descrição solicitada do material, se houver, com adições e alterações.

Atributo de descrição do material

O cliente salva a descrição real do material no atributo de descrição do material do item criptografado. O nome do atributo de descrição do material é amzn-ddb-map-desc, e seu valor é a descrição real do material. O cliente usa os valores do atributo de descrição do material para verificar e descriptografar o item.

Contexto de criptografia do DynamoDB

O contexto de criptografia do DynamoDB fornece informações sobre a tabela e o item ao provedor de materiais de criptografia (CMP). Em implementações avançadas, o contexto de criptografia do DynamoDB pode incluir uma descrição do material solicitado.

Quando você criptografa itens de tabela, o contexto de criptografia do DynamoDB é vinculado criptograficamente aos valores dos atributos criptografados. Ao descriptografar, se o contexto de criptografia do DynamoDB não for correspondência exata de maiúsculas e minúsculas do contexto de criptografia do DynamoDB usado para criptografar, a operação de descriptografia falhará. Se você interagir com o criptografador de itens diretamente, forneça um contexto de criptografia do DynamoDB ao chamar um método de criptografia ou de descriptografia. A maioria das classes auxiliares cria o contexto de criptografia do DynamoDB para você.

nota

O contexto de criptografia do DynamoDB no DynamoDB Encryption Client não está relacionado ao contexto de criptografia no AWS Key Management Service (AWS KMS) e no AWS Encryption SDK.

O contexto de criptografia do DynamoDB pode incluir os campos a seguir. Todos os campos e valores são opcionais.

Armazenamento de provedores

O armazenamento do provedor é um componente que retorna provedores de materiais de criptografia (CMPs). O armazenamento do provedor pode criar os CMPs ou obtê-los de outra origem, como o armazenamento de outro provedor. O armazenamento do provedor salva versões dos CMPs que cria no armazenamento persistente em que cada CMP armazenado é identificado pelo nome do material do número da versão e do solicitante.

O Provedor mais recente no DynamoDB Encryption Client obtém os CMPs de um armazenamento de provedor, mas é possível usar o armazenamento de provedor para fornecer CMPs a qualquer componente. Cada provedor mais recente está associado a um armazenamento de provedores, mas um armazenamento de provedores pode fornecer CMPs a muitos solicitantes em diversos hosts.

O armazenamento do provedor cria novas versões dos CMPs sob demanda e retorna versões novas e existentes. Ele também retorna o número da versão mais recente de um determinado nome de material. Assim, o solicitante sabe quando o armazenamento do provedor tem uma nova versão do CMP que ele pode solicitar.

O DynamoDB Encryption Client inclui um MetaStore, que é um armazenamento de provedor que cria CMPs empacotados com chaves que são armazenadas no DynamoDB e criptografadas com um DynamoDB Encryption Client interno.

Saiba mais: