Cómo migrar e implementar el AWS Encryption SDK - AWS Encryption SDK

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo migrar e implementar el AWS Encryption SDK

Al migrar desde una AWS Encryption SDK versión anterior a la 1.7.x a la versión 2.0.x o posterior, debe realizar la transición al cifrado de forma segura con un compromiso de clave. De lo contrario, la aplicación encontrará textos cifrados que no podrá descifrar. Si utiliza proveedores de claves AWS KMS maestras, debe actualizar a nuevos constructores que creen proveedores de claves maestras en modo estricto o modo de detección.

nota

Este tema está diseñado para los usuarios que migran de versiones anteriores AWS Encryption SDK a la versión 2.0.x o posterior. Si es la primera vez que utiliza elAWS Encryption SDK, puede empezar a utilizar la última versión disponible inmediatamente con la configuración predeterminada.

Para evitar una situación crítica en la que no pueda descifrar el texto cifrado que necesita leer, le recomendamos que migre e implemente en varias etapas distintas. Compruebe que cada etapa esté completa y completamente implementada antes de comenzar la siguiente. Esto es particularmente importante en el caso de las aplicaciones distribuidas con varios hosts.

Etapa 1: actualice su aplicación a la última versión 1.x

Actualice a la versión más reciente 1.versión x para su lenguaje de programación. Pruébelo detenidamente, implemente los cambios y confirme que la actualización se ha propagado a todos los hosts de destino antes de comenzar la fase 2.

importante

Verifique que su último 1.La versión x es la 1.7.x o una versión posterior deAWS Encryption SDK.

Las últimas versiones 1.x de AWS Encryption SDK son compatibles con versiones anteriores de AWS Encryption SDK y posteriores con las versiones 2.0.x y versiones posteriores. Incluyen las características nuevas que están presentes en la versión 2.0.x, pero incluyen valores predeterminados seguros diseñados para esta migración. Permiten actualizar sus proveedores de claves maestras de AWS KMS, si es necesario, e implementarlos completamente con conjuntos de algoritmos que pueden descifrar el texto cifrado con el compromiso de clave.

  • Sustituya los elementos obsoletos, incluidos los constructores de proveedores de claves maestras heredados de AWS KMS. En Python, asegúrese de activar las advertencias de obsolescencia. Elementos de código que están en desuso en la última versión 1.Las versiones x se han eliminado de las versiones 2.0.x y versiones posteriores.

  • Establezca explícitamente su política de compromiso en ForbidEncryptAllowDecrypt. Aunque este es el único valor válido en el último número 1.x versiones, esta configuración es obligatoria cuando se utilizan las API introducidas en esta versión. Evita que su aplicación rechace el texto cifrado sin compromiso de clave al migrar a la versión 2.0.x y versiones posteriores. Para obtener más información, consulte Establecer su política de compromiso.

  • Si utiliza proveedores de claves AWS KMS maestras, debe actualizar los proveedores de claves maestras antiguos a proveedores de claves maestras que admitan el modo estricto y el modo de detección. Esta actualización es necesaria para SDK de cifrado de AWS para Java, SDK de cifrado de AWS para Python, y la CLI de cifrado de AWS. Si utiliza proveedores de claves maestras en modo de detección, le recomendamos que implemente el filtro de detección que limite las claves de encapsulación utilizadas a esas claves en particular Cuentas de AWS. Esta actualización es opcional, pero es una práctica recomendada. Para obtener más información, consulte Actualización de los proveedores de claves maestras AWS KMS.

  • Si utiliza conjuntos de claves de AWS KMS detección, le recomendamos que incluya un filtro de detección que limite las claves de encapsulación utilizadas en el descifrado a aquellas en particular.Cuentas de AWS Esta actualización es opcional, pero es una práctica que recomendamos. Para obtener más información, consulte Actualización de los conjuntos de clave AWS KMS.

Etapa 2: Actualice la aplicación a la versión más reciente

Después de implementar la última 1.La versión x se ha instalado correctamente en todos los hosts, puede actualizarla a la versión 2.0.x y versiones posteriores. La versión 2.0.x incluye cambios importantes en todas las versiones anteriores deAWS Encryption SDK. Sin embargo, si realiza los cambios de código recomendados en la fase 1, puede evitar errores al migrar a la última versión.

Antes de actualizar a la última versión, compruebe que su política de compromiso esté establecida de forma coherente en ForbidEncryptAllowDecrypt. A continuación, dependiendo de su configuración de datos, puede migrar a su propio ritmo a RequireEncryptAllowDecrypt y luego a la configuración predeterminada, RequireEncryptRequireDecrypt. Recomendamos una serie de pasos de transición como el siguiente patrón.

  1. Comience con su política de compromiso establecida en ForbidEncryptAllowDecrypt. El AWS Encryption SDK puede descifrar los mensajes con un compromiso de clave, pero aún no lo hace con un compromiso de clave.

  2. Cuando esté listo, actualice su política de compromisos a RequireEncryptAllowDecrypt. El AWS Encryption SDK empieza a cifrar sus datos con un compromiso clave. Puede descifrar texto cifrado con y sin compromiso de clave.

    Antes de actualizar su política de compromiso aRequireEncryptAllowDecrypt, compruebe que su última 1.La versión x está implementada en todos los hosts, incluidos los servidores de cualquier aplicación que descifre el texto cifrado que genere. Versiones AWS Encryption SDK anteriores a la 1.7.x no puede descifrar los mensajes cifrados con un compromiso de clave.

    También es un buen momento para añadir métricas a su aplicación para medir si sigue procesando texto cifrado sin compromiso clave. Esto lo ayudará a determinar cuándo es seguro actualizar la configuración de su política de compromiso a RequireEncryptRequireDecrypt. En el caso de algunas aplicaciones, como las que cifran los mensajes de una cola de Amazon SQS, esto puede implicar esperar el tiempo suficiente para volver a cifrar o eliminar todo el texto cifrado en versiones anteriores. En el caso de otras aplicaciones, como los objetos S3 cifrados, es posible que tenga que descargar, volver a cifrar y volver a cargar todos los objetos.

  3. Cuando esté seguro de que no tiene ningún mensaje cifrado sin un compromiso de clave, puede actualizar su política de compromiso a RequireEncryptRequireDecrypt. Este valor garantiza que sus datos estén siempre cifrados y descifrados con el compromiso de clave. Esta configuración es la predeterminada, por lo que no es necesario que la establezca de forma explícita, pero le recomendamos que la configure. Una configuración explícita ayudará a la depuración y a cualquier posible reversión que pueda ser necesaria si su aplicación encuentra texto cifrado sin compromiso de clave.