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á.
Como migrar e implantar o AWS Encryption SDK
Ao migrar de uma AWS Encryption SDK versão anterior à 1.7. x até a versão 2.0. x ou mais tarde, você deve fazer a transição segura para a criptografia com comprometimento de chave. Caso contrário, a aplicação encontrará textos cifrados que não poderá descriptografar. Se você estiver usando provedores de chave AWS KMS mestra, deverá atualizar para novos construtores que criam provedores de chave mestra no modo estrito ou no modo de descoberta.
nota
Este tópico foi desenvolvido para usuários que estão migrando de versões anteriores do AWS Encryption SDK para a versão 2.0. x posterior. Se você é novo no AWS Encryption SDK, pode começar a usar a versão mais recente disponível imediatamente com as configurações padrão.
Para evitar uma situação crítica na qual você não possa descriptografar o texto cifrado que precisa ler, recomendamos que você migre e implante em várias etapas distintas. Verifique se cada etapa está completa e totalmente implantada antes de iniciar a próxima etapa. Isso é particularmente importante para aplicações distribuídas com vários hosts.
Etapa 1: atualize a aplicação para a versão 1.x mais recente
Atualize para a versão 1.x mais recente para sua linguagem de programação. Teste com cuidado, implante suas alterações e confirme se a atualização foi propagada para todos os hosts de destino antes de iniciar a etapa 2.
Importante
Verifique se a sua versão 1.x mais recente é a versão 1.7.x ou versão posterior do AWS Encryption SDK.
O mais recente 1. As versões x do AWS Encryption SDK são compatíveis com versões anteriores do AWS Encryption SDK e versões anteriores com as versões 2.0. x e mais tarde. Elas incluem os novos atributos presentes na versão 2.0.x, mas inclui padrões seguros projetados para essa migração. Eles permitem que você atualize seus provedores de chave AWS KMS mestra, se necessário, e implante totalmente pacotes de algoritmos que podem decifrar texto cifrado com comprometimento de chave.
-
Substitua elementos descontinuados, incluindo construtores para provedores de chaves metras do AWS KMS herdados. Em Python,ative os avisos de descontinuidade
. Elementos de código que foram descontinuados na mais recente versão 1.x foram removidos das versões 2.0. x e posteriores. -
Defina explicitamente sua política de compromisso como
ForbidEncryptAllowDecrypt
. Embora esse seja o único valor válido no último 1. Nas versões x, essa configuração é necessária quando você usa a APIs introduzida nesta versão. Isso impede que a aplicação rejeite texto cifrado criptografado sem confirmação de chave quando você migra para a versão 2.0.x e versões posteriores. Para obter detalhes, consulte Como definir sua política de compromisso. -
Se você usa provedores de chave AWS KMS mestra, deve atualizar seus provedores de chave mestra legados para provedores de chave mestra que ofereçam suporte ao modo estrito e ao modo de descoberta. Essa atualização é necessária para o AWS Encryption SDK for Java AWS Encryption SDK for Python, e para a CLI AWS de criptografia. Se você usa provedores de chave mestra no modo de descoberta, recomendamos que implemente o filtro de descoberta que limita as chaves de encapsulamento usadas àquelas presentes em Contas da AWS. Essa atualização é opcional, mas é uma prática recomendada que incentivamos. Para obter detalhes, consulte Atualizando provedores de chaves AWS KMS mestras.
-
Se você usa token de autenticação de descoberta do AWS KMS, recomendamos que inclua um filtro de descoberta que limite as chaves de encapsulamento usadas na descriptografia a aquelas em particular. Contas da AWS Essa atualização é opcional, mas é uma prática recomendada que incentivamos. Para obter detalhes, consulte Atualizando AWS KMS chaveiros.
Etapa 2: atualize a aplicação para a versão mais recente
Depois que a implantação da mais recente versão 1.x for bem-sucedida em todos os hosts, você pode atualizar para as versões 2.0. x e posteriores. Versão 2.0. x inclui alterações significativas em todas as versões anteriores do AWS Encryption SDK. No entanto, se você fizer as alterações de código recomendadas na etapa 1, poderá evitar erros ao migrar para a versão mais recente.
Antes de atualizar para a versão mais recente, verifique se sua política de compromisso está consistentemente definida como ForbidEncryptAllowDecrypt
. Em seguida, dependendo da configuração de dados, você pode migrar no seu próprio ritmo para RequireEncryptAllowDecrypt
e depois para a configuração padrão, RequireEncryptRequireDecrypt
. Recomendamos uma série de etapas de transição, como o padrão a seguir.
-
Comece com sua política de compromisso definida como
ForbidEncryptAllowDecrypt
. O AWS Encryption SDK pode descriptografar mensagens com confirmação de chave, mas ainda não descriptografa com confirmação de chave. -
Quando estiver pronto, atualize a política de compromisso para
RequireEncryptAllowDecrypt
. AWS Encryption SDK Começa a criptografar seus dados com um compromisso fundamental. Ele poderá descriptografar textos cifrados criptografados com ou sem confirmação de chave.Antes de atualizar sua política de compromisso para
RequireEncryptAllowDecrypt
, verifique se sua versão 1x mais recente foi implantada em todos os hosts, incluindo os hosts de qualquer aplicação que decodifique o texto cifrado que você produz. Versões AWS Encryption SDK anteriores à versão 1.7. x não pode descriptografar mensagens criptografadas com comprometimento de chave.Esse também é um bom momento para adicionar métricas à sua aplicação para medir se você ainda está processando texto cifrado sem confirmação de chave. Isso ajudará você a determinar quando é seguro atualizar sua configuração de política de compromisso para
RequireEncryptRequireDecrypt
. Para algumas aplicações, como aquelas que criptografam mensagens em uma fila do Amazon SQS, isso pode significar esperar tempo suficiente para que todo o texto cifrado criptografado nas versões antigas seja recriptografado ou excluído. Para outras aplicações, como objetos criptografados do S3, talvez seja necessário baixar, recriptografar e recarregar todos os objetos. -
Quando tiver certeza de que não tem nenhuma mensagem criptografada sem confirmação de chave, você pode atualizar sua política de compromisso para
RequireEncryptRequireDecrypt
. Esse valor garante que seus dados sejam sempre criptografados e descriptografados com o confirmação de chave. Essa configuração é a padrão, então você não precisa defini-la explicitamente, mas recomendamos que faça isso. Uma configuração explícita ajudará na depuração e em quaisquer possíveis reversões que possam ser necessárias se a aplicação encontrar texto cifrado criptografado sem confirmação de chave.