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á.
Uso do DynamoDB Encryption Client para Python
nota
Nossa biblioteca de criptografia do lado do cliente foi renomeada para AWS Database Encryption. SDK 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 AWS Database Encryption SDK for DynamoDB para suporte à versão.
Este tópico explica alguns dos recursos do DynamoDB Encryption Client para Python que talvez não sejam encontrados em outras implementações de linguagem de programação. Esses atributos são projetados para facilitar o uso do DynamoDB Encryption Client da forma mais confiável possível. A menos que você tenha um caso de uso incomum, recomendamos que você os use.
Para obter detalhes sobre a programação com o DynamoDB Encryption Client, consulte os exemplos do Python neste guia, os exemplos no repositório GitHub e a documentação do
Classes auxiliares do cliente
O DynamoDB Encryption Client para Python inclui várias classes auxiliares do cliente que espelham as classes do Boto 3 para o DynamoDB. Essas classes auxiliares são projetadas para facilitar a adição da criptografia e da assinatura ao seu aplicativo DynamoDB existente e evitar os problemas mais comuns:
-
Evite que você criptografe a chave primária em seu item, adicionando uma ação de substituição da chave primária ao AttributeActionsobjeto ou lançando uma exceção se seu
AttributeActions
objeto solicitar explicitamente ao cliente que criptografe a chave primária. Se a ação padrão no objetoAttributeActions
forDO_NOTHING
, as classes auxiliares do cliente usarão a ação para a chave primária. Caso contrário, eles usarãoSIGN_ONLY
. -
Crie um TableInfo objeto e preencha o contexto de criptografia do DynamoDB com base em uma chamada para o DynamoDB. Isso ajuda a garantir que o contexto de criptografia do DynamoDB seja preciso e o cliente possa identificar a chave primária.
-
Métodos de suporte, como
put_item
eget_item
, que criptografam e descriptografam de modo transparente os itens da tabela quando você grava ou lê em uma tabela do DynamoDB. Somente o métodoupdate_item
não é compatível.
É possível usar a classe auxiliar do cliente em vez de interagir diretamente com o criptografador de itens de nível inferior. Use essas classes a menos que você precise definir opções avançadas no criptografador do item.
As classes auxiliares do cliente incluem:
-
EncryptedTable
para aplicativos que usam o recurso Tabela no DynamoDB para processar uma tabela por vez. -
EncryptedResource
para aplicativos que usam a classe Service Resource no DynamoDB para processamento em lote. -
EncryptedClient
para aplicativos que usam o cliente de nível inferior no DynamoDB.
Para usar as classes auxiliares do cliente, o chamador deve ter permissão para chamar a operação do DynamoDB na tabela de destino. DescribeTable
TableInfo classe
A TableInfo
Se você utilizar uma classe auxiliar do cliente, ela criará e usará um objeto TableInfo
para você. Caso contrário, você pode criar um explicitamente. Para ver um exemplo, consulte Usar o criptografador de item.
Quando você chama o refresh_indexed_attributes
método em um TableInfo
objeto, ele preenche os valores da propriedade do objeto chamando a operação do DynamoDB. DescribeTable Consultar a tabela é muito mais confiável que consultar os nomes de índice de hard-coding. A classe TableInfo
também inclui uma propriedade encryption_context_values
que fornece os valores necessários para o contexto de criptografia do DynamoDB.
Para usar o refresh_indexed_attributes
método, o chamador deve ter permissão para chamar a operação do DescribeTableDynamoDB na tabela de destino.
Ações de atributos em Python
As Ações de atributos informam ao criptografador de itens quais ações executar em cada atributo de item. Para especificar ações de atributo em Python, crie um objeto AttributeActions
com uma ação padrão e todas as exceções dos atributos específicos. Os valores válidos estão definidos no tipo enumerado CryptoAction
.
Importante
Depois de usar as ações do atributo para criptografar os itens da tabela, adicionar ou remover atributos do modelo de dados poderá gerar um erro de validação de assinatura que impede a descriptografia dos dados. Para obter uma explicação detalhada, consulte Alterar seu modelo de dados.
DO_NOTHING = 0 SIGN_ONLY = 1 ENCRYPT_AND_SIGN = 2
Por exemplo, o objeto AttributeActions
estabelece ENCRYPT_AND_SIGN
como o padrão para todos os atributos e define as exceções para os atributos ISBN
e PublicationYear
.
actions = AttributeActions( default_action=CryptoAction.ENCRYPT_AND_SIGN, attribute_actions={ 'ISBN': CryptoAction.DO_NOTHING, 'PublicationYear': CryptoAction.SIGN_ONLY } )
Se você usar uma classe auxiliar do cliente, não será necessário especificar uma ação de atributo para os atributos de chave primária. As classes auxiliares do cliente evitam que você criptografe sua chave primária.
Se você não utiliza uma classe auxiliar do cliente e a ação padrão é ENCRYPT_AND_SIGN
, é necessário especificar uma ação para a chave primária. A ação recomendada para chaves primárias é SIGN_ONLY
. Para facilitar isso, use o set_index_keys
método, que usa SIGN _ ONLY para chaves primárias, ou DO_NOTHING, quando essa for a ação padrão.
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.
actions = AttributeActions( default_action=CryptoAction.ENCRYPT_AND_SIGN, ) actions.set_index_keys(*table_info.protected_index_keys())