Como posso resolver o erro de descriptografia do AWS KMS “InvalidCiphertextException”?

2 minuto de leitura
0

Tentei descriptografar variáveis de ambiente usando os auxiliares de criptografia do AWS Lambda e recebi o erro “InvalidCiphertextException”. Todas as permissões do AWS Identity and Access Management (IAM) e do AWS Key Management Service (AWS KMS) estão corretas.

Breve descrição

O erro de ação da API do AWS KMS InvalidCiphertextException indica que a solicitação de descriptografia falhou porque o Lambda atualizou a forma de criptografar variáveis de ambiente. O Lambda passa o nome da função como o contexto de criptografia que faz a chamada de criptografia para o AWS KMS. Para funções de descriptografia criadas antes dessa alteração, você deve atualizar o código para descriptografia e passar o nome da função do Lambda como contexto de criptografia.

Resolução

Para obter o código com a chamada de descriptografia para o AWS KMS para um SDK específico com o contexto de criptografia, siga estas etapas:

  1. Abra o console do Lambda e escolha Funções.
  2. Em Nome da função, escolha a função do Lambda.
  3. Em Variável de ambiente, escolha Editar, em seguida, escolha Adicionar variável de ambiente.
  4. Insira uma Chave e um Valor e, em seguida, expanda Configuração de criptografia.
  5. Escolha Ativar auxiliares para criptografia em trânsito e, em seguida, escolha Criptografar.
  6. Expanda Descriptografar trecho de segredo, copie e cole o trecho semelhante ao seguinte:
DECRYPTED = boto3.client('kms').decrypt(
    CiphertextBlob=b64decode(ENCRYPTED),
    EncryptionContext={'LambdaFunctionName': os.environ['AWS_LAMBDA_FUNCTION_NAME']}
)['Plaintext'].decode('utf-8')

Use esse trecho de código para Descriptografar novas variáveis de ambiente criptografadas com auxiliares de criptografia.

Certifique-se de criptografar novamente as variáveis de ambiente antigas para que funcionem com as novas variáveis de ambiente.

Para mais informações, consulte Uso de variáveis de ambiente do AWS Lambda.


Informações relacionadas

Como posso verificar se a criptografia autenticada com criptografia de dados associada é usada ao chamar as APIs do AWS KMS?

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos