

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

# Armazenamento em cache de chaves de dados
<a name="data-key-caching"></a>

O *armazenamento em cache de chaves de dados* armazena [chaves de dados](concepts.md#DEK) e o [material criptográfico relacionado](data-caching-details.md#cache-entries) em um cache. Quando você criptografa ou descriptografa dados, ele AWS Encryption SDK procura uma chave de dados correspondente no cache. Se encontrar uma correspondência, ele usará a chave de dados armazenada em cache em vez de gerar uma nova. O armazenamento em cache de chaves de dados pode melhorar o desempenho, reduzir os custos e ajudar você a manter os limites do serviço à medida que seu aplicativo é escalado. 

O aplicativo poderá se beneficiar do armazenamento em cache de chaves de dados se:
+ Puder reutilizar chaves de dados.
+ Gerar várias chaves de dados. 
+ As operações de criptografia estiverem inaceitavelmente lentas, caras, limitadas ou usarem recursos de forma intensiva.

O armazenamento em cache pode reduzir o uso de serviços criptográficos, como AWS Key Management Service ()AWS KMS. Se você está atingindo seu [AWS KMS requests-per-secondlimite](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#requests-per-second), o armazenamento em cache pode ajudar. Seu aplicativo pode usar chaves em cache para atender a algumas de suas solicitações de chave de dados em vez de chamar AWS KMS. (Você também pode criar um caso no [AWS Support Center](https://console.aws.amazon.com/support/home#/) para aumentar o limite da conta.)

 AWS Encryption SDK Isso ajuda você a criar e gerenciar seu cache de chaves de dados. Ele fornece um [cache local](data-caching-details.md#simplecache) e um [gerenciador de armazenamento em cache de materiais criptográficos](data-caching-details.md#caching-cmm) (CMM de armazenamento em cache) que interage com o cache e impõe [limites de segurança](thresholds.md) definidos por você. Juntos, esses componentes ajudam você a se beneficiar da eficiência de reutilização de chaves de dados mantendo a segurança do sistema.

O armazenamento em cache da chave de dados é um recurso opcional do AWS Encryption SDK que você deve usar com cautela. Por padrão, AWS Encryption SDK gera uma nova chave de dados para cada operação de criptografia. Essa técnica é compatível com as melhores práticas criptográficas, que desencorajam a reutilização excessiva de chaves de dados. Em geral, use o armazenamento em cache de chaves de dados somente quando ele for necessário para atender às suas metas de desempenho. Em seguida, use os [limites de segurança](thresholds.md) do armazenamento em cache de chaves de dados para garantir que você use a quantidade mínima de armazenamento em cache necessário para atender a suas metas de desempenho e custo. 

Versão 3. *x* of the suporta AWS Encryption SDK for Java apenas o CMM de armazenamento em cache com a interface antiga de provedores de chaves mestras, não a interface de chaveiro. No entanto, versão 4. *x* e versões posteriores do AWS Encryption SDK para .NET, versão 3. *x* do AWS Encryption SDK for Java, versão 4. *x* do AWS Encryption SDK for Python, versão 1. *x* do AWS Encryption SDK para Rust e versão 0.1. *x* ou versões posteriores do AWS Encryption SDK for Go suportam o [AWS KMS chaveiro hierárquico](use-hierarchical-keyring.md), uma solução alternativa de cache de materiais criptográficos. O conteúdo criptografado com o AWS KMS chaveiro hierárquico só pode ser descriptografado com o chaveiro hierárquico. AWS KMS 

Para ver uma discussão detalhada dessas vantagens e desvantagens de segurança, consulte [AWS Encryption SDK: Como decidir se o armazenamento em cache de chaves de dados é ideal para sua aplicação](https://aws.amazon.com/blogs/security/aws-encryption-sdk-how-to-decide-if-data-key-caching-is-right-for-your-application/) no Blog de segurança da AWS .

**Topics**
+ [Como usar o armazenamento em cache de chaves de dados](implement-caching.md)
+ [Definir limites de segurança do cache](thresholds.md)
+ [Detalhes do armazenamento em cache de chaves de dados](data-caching-details.md)
+ [Exemplo de armazenamento em cache de chaves de dados](sample-cache-example.md)