Solução de problemas em seu aplicativo 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á.

Solução de problemas em seu aplicativo DynamoDB Encryption Client

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.

Esta seção descreve os problemas que você pode encontrar ao usar o DynamoDB Encryption Client e oferece sugestões para resolvê-los.

Para fornecer feedback sobre o DynamoDB Encryption Client, registre um problema no aws-dynamodb-encryption-javarepositório or. aws-dynamodb-encryption-python GitHub

Para fornecer feedback sobre esta documentação, use o link de feedback em qualquer página.

Acesso negado

Problema: o acesso a um recurso necessário é negado ao aplicativo.

Sugestão: saiba mais sobre as permissões necessárias e adicione-as ao contexto de segurança em que o aplicativo é executado.

Detalhes

Para executar um aplicativo que usa uma biblioteca do DynamoDB Encryption Client, o chamador deve ter permissão para usar os componentes. Caso contrário, eles terão o acesso negado aos elementos necessários.

  • O DynamoDB Encryption Client não exige uma conta Amazon Web Services (AWS) nem depende de nenhum serviço da AWS . No entanto, se seu aplicativo usa AWS, você precisa de um usuário Conta da AWS e que tenham permissão para usar a conta.

  • O DynamoDB Encryption Client não exige o Amazon DynamoDB. No entanto, se o aplicativo que usa o cliente criar tabelas do DynamoDB, colocar os itens em uma tabela ou obtiver itens de uma tabela, o chamador deverá ter permissão para usar as operações do DynamoDB necessárias em sua Conta da AWS. Para obter detalhes, consulte os tópicos de controle de acesso no Amazon DynamoDB Developer Guide.

  • Se seu aplicativo usa uma classe auxiliar de cliente no DynamoDB Encryption Client for Python, o chamador deverá ter permissão para chamar a operação do DynamoDB. DescribeTable

  • O DynamoDB Encryption Client não AWS Key Management Service exige ().AWS KMS No entanto, se seu aplicativo usa um provedor direto de KMS materiais ou usa um provedor mais recente com uma loja de provedores que usa AWS KMS, o chamador deve ter permissão para usar as operações AWS KMS GenerateDataKeye Decrypt.

Falhas na verificação da assinatura

Problema: um item não pode ser descriptografado porque ocorre uma falha na verificação de assinatura. O item também pode não ser criptografado e assinado como você deseja.

Sugestão: verifique se as ações de atributos fornecidas justificam todos os atributos no item. Ao descriptografar um item, forneça as ações de atributos que correspondam às ações usadas para criptografar o item.

Detalhes

As ações de atributos fornecidas informam ao DynamoDB Encryption Client quais atributos criptografar e assinar, quais atributos assinar (mas não criptografar) e quais ignorar.

Se as ações de atributo especificadas por você não justificam todos os atributos no item, ele não poderá ser criptografado nem assinado como você deseja. Se as ações de atributo fornecidas por você ao descriptografar um item são diferentes das ações de atributo fornecidas por você ao criptografar o item, pode ocorrer uma falha na verificação de assinatura. Este é um problema específico para aplicativos distribuídos em que novas ações de atributo talvez não tenham sigo propagadas para todos os hosts.

Erros de validação de assinatura são difíceis de resolver. Para ajudar a evitá-los, tome precauções extras ao alterar seu modelo de dados. Para obter detalhes, consulte Alterar seu modelo de dados.

Problemas com tabelas globais de versões mais antigas

Problema: os itens em uma versão mais antiga da tabela global do Amazon DynamoDB não podem ser descriptografados porque a verificação da assinatura falha.

Sugestão: defina ações de atributo para que os campos de replicação reservados não sejam criptografados ou assinados.

Detalhes

É possível usar o DynamoDB Encryption Client com as tabelas globais do DynamoDB. Recomendamos que você use tabelas globais com uma chave multirregional e replique a KMS KMS chave em todos os Regiões da AWS lugares onde a tabela global é replicada.

A partir da versão 2019.11.21 de tabelas globais, é possível usar tabelas globais com o DynamoDB Encryption Client sem nenhuma configuração especial. No entanto, se você usar tabelas globais versão 2017.11.29, deverá garantir que os campos de replicação reservados não sejam criptografados ou assinados.

Se você estiver usando a versão de tabelas globais 2017.11.29, deverá definir as ações de atributo para os atributos a seguir DO_NOTHING em Java ou @DoNotTouch em Python.

  • aws:rep:deleting

  • aws:rep:updatetime

  • aws:rep:updateregion

Se você estiver usando qualquer outra versão das tabelas globais, nenhuma ação será necessária.

Baixo desempenho do fornecedor mais recente

Problema: seu aplicativo responde menos, especialmente após a atualização para uma versão mais recente do DynamoDB Encryption Client.

Sugestão: ajuste o time-to-live valor e o tamanho do cache.

Detalhes

O provedor mais recente foi projetado para melhorar o desempenho dos aplicativos que usam o DynamoDB Encryption Client, permitindo a reutilização limitada de materiais criptográficos. Ao configurar o provedor mais recente para seu aplicativo, você precisa equilibrar o desempenho aprimorado com as preocupações de segurança decorrentes do armazenamento em cache e da reutilização.

Nas versões mais recentes do DynamoDB Encryption Client, time-to-live o valor TTL () determina por quanto tempo os provedores de material criptográfico em cache () podem ser usados. CMPs TTLTambém determina com que frequência o provedor mais recente verifica se há uma nova versão doCMP.

Se o seu TTL for muito longo, seu aplicativo poderá violar suas regras comerciais ou padrões de segurança. Se você TTL for muito breve, chamadas frequentes para a loja do provedor podem fazer com que a loja do provedor reduza as solicitações do seu aplicativo e de outros aplicativos que compartilham sua conta de serviço. Para resolver esse problema, ajuste o tamanho do TTL cache para um valor que atenda às suas metas de latência e disponibilidade e esteja em conformidade com seus padrões de segurança. Para obter mais detalhes, consulte Definir um valor de vida útil.