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 descubrimiento.
nota
Este tema está diseñado para los usuarios que migran de versiones anteriores del AWS Encryption SDK a la versión 2.0.x o posterior. Si es la primera vez que utiliza el AWS Encryption SDK, puede empezar a utilizar inmediatamente la última versión disponible 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.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 última versión 1.x es 1.7.x o una versión posterior de AWS Encryption SDK.
La última 1. Las versiones x AWS Encryption SDK son compatibles con versiones anteriores 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 AWS KMS maestras, si es necesario, e implementarlos completamente con conjuntos de algoritmos que pueden descifrar el texto cifrado con un compromiso 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.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 necesaria cuando se utiliza la versión APIs introducida en esta versión. Evita que su aplicación rechace el texto cifrado sin compromiso 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 descubrimiento. Esta actualización es necesaria para la SDK de cifrado de AWS para Java SDK de cifrado de AWS para Python, y la CLI de AWS cifrado. 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 encapsulamiento 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 AWS KMS maestras.
-
Si utiliza conjuntos de claves de detección de AWS KMS, le recomendamos que incluya un filtro de detección que limite las claves de encapsulamiento utilizadas en el descifrado a aquellas 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 AWS KMS llaveros.
Etapa 2: actualice la aplicación a la versión más reciente
Después de implementar la última versión 1.x correctamente en todos los hosts, puede actualizarla a la versión 2.0.x y versiones posteriores. Versión 2.0. x incluye cambios importantes en todas las versiones anteriores de AWS 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.
-
Comience con su política de compromiso establecida en
ForbidEncryptAllowDecrypt
. El AWS Encryption SDK puede descifrar los mensajes con un compromiso clave, pero aún no lo hace con un compromiso clave. -
Cuando esté listo, actualice su política de compromisos a
RequireEncryptAllowDecrypt
. AWS Encryption SDK Comienza a cifrar sus datos con un compromiso clave. Puede descifrar texto cifrado con y sin compromiso clave.Antes de actualizar su política de compromiso a
RequireEncryptAllowDecrypt
, compruebe que su última versión 1.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. -
Cuando esté seguro de que no tiene ningún mensaje cifrado sin un compromiso 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 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 clave.