Comment migrer et déployerAWS Encryption SDK - AWS Encryption SDK

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comment migrer et déployerAWS Encryption SDK

Lors de la migration depuis unAWS Encryption SDKversion ultérieure à 1.7.xvers la version 2.0.xou ultérieurement, vous devez passer en toute sécurité au chiffrement avecEngagement clé. Sinon, votre application rencontrera des textes chiffrés qu'elle ne pourra pas déchiffrer. Si vous utilisezAWS KMSfournisseurs de clés principales, vous devez passer à de nouveaux constructeurs qui créent des fournisseurs de clés principales en mode strict ou en mode découverte.

Note

Cette rubrique est destinée aux utilisateurs qui effectuent une migration depuis des versions antérieures deAWS Encryption SDKvers la version 2.0.xou plus tard. Si vous êtes un nouvel utilisateur duAWS Encryption SDK, vous pouvez commencer à utiliser la dernière version disponible immédiatement avec les paramètres par défaut.

Pour éviter une situation critique dans laquelle vous ne pouvez pas déchiffrer le texte chiffré que vous devez lire, nous vous recommandons de procéder à la migration et au déploiement en plusieurs étapes distinctes. Vérifiez que chaque étape est complète et entièrement déployée avant de commencer l'étape suivante. Cela est particulièrement important pour les applications distribuées avec plusieurs hôtes.

Étape 1 : : Mettez à jour votre application vers la dernière version.xversion

Mise à jour vers la dernière version 1.xversion pour votre langage de programmation. Testez attentivement, déployez vos modifications et confirmez que la mise à jour s'est propagée à tous les hôtes de destination avant de commencer l'étape 2.

Important

Vérifiez que votre dernier 1.xversion 1.7.xou une version ultérieure duAWS Encryption SDK.

Le dernier 1.xversions duAWS Encryption SDKsont rétrocompatibles avec les anciennes versions duAWS Encryption SDKet versions ultérieures compatibles avec les versions 2.0.xet plus tard. Ils incluent les nouvelles fonctionnalités de la version 2.0.x, mais incluez des paramètres par défaut sûrs conçus pour cette migration. Ils vous permettent de mettre à jour votreAWS KMSprincipaux fournisseurs de clés, si nécessaire, et pour un déploiement complet avec des suites d'algorithmes capables de déchiffrer le texte chiffré avec un engagement clé.

  • Remplacez les éléments obsolètes, y compris les constructeurs pour les anciensAWS KMSprincipaux fournisseurs de clés. DansPython, veillez à activer les avertissements d'obsolescence. Éléments de code obsolètes dans la dernière version 1.xles versions sont supprimées des versions 2.0.xet plus tard.

  • Définissez explicitement votre politique d'engagement pourForbidEncryptAllowDecrypt. Bien que ce soit la seule valeur valide dans la dernière valeur 1.xversions, ce paramètre est requis lorsque vous utilisez les API introduites dans cette version. Il empêche votre application de rejeter le texte chiffré crypté sans engagement clé lorsque vous migrez vers la version 2.0.xet plus tard. Pour plus d'informations, consultez.Définition de votre politique d'engagement

  • Si vous utilisez l'optionAWS KMSfournisseurs de clés principales, vous devez mettre à jour vos fournisseurs de clés principales existants pour qu'ils prennent en chargeMode strictetmode découverte. Cette mise à jour est requise pourKit SDK de chiffrement AWS pour Java,Kit SDK de chiffrement AWS pour Python, et leAWSCLI de chiffrement. Si vous utilisez des fournisseurs de clés principales en mode découverte, nous vous recommandons d'implémenter le filtre de découverte qui limite les clés d'encapsulation utilisées à ceux en particulierComptes AWS. Cette mise à jour est facultative, mais il s'agit d'unbonne pratiqueque nous recommandons. Pour plus d'informations, consultez.Mise à jourAWS KMS des fournisseurs de clés principales

  • Si vous utilisez l'optionAWS KMSporte-clés, nous vous recommandons d'inclure un filtre de découverte qui limite les clés d'encapsulage utilisées pour le déchiffrement à celles en particulierComptes AWS. Cette mise à jour est facultative, mais il s'agit d'unbonne pratiqueque nous recommandons. Pour plus d'informations, consultez.Mise à jour en coursAWS KMSporte-clés

Étape 2 : Mettez à jour votre application vers la dernière version

Après avoir déployé la dernière version 1.xversion réussie sur tous les hôtes, vous pouvez passer à la version 2.0.xet plus tard. Version 2.0xinclut des modifications majeures pour toutes les versions précédentes deAWS Encryption SDK. Toutefois, si vous apportez les modifications de code recommandées à l'étape 1, vous pouvez éviter les erreurs lors de la migration vers la dernière version.

Avant de passer à la dernière version, vérifiez que votre politique d'engagement est toujours définie surForbidEncryptAllowDecrypt. Ensuite, en fonction de la configuration de vos données, vous pouvez migrer à votre rythme versRequireEncryptAllowDecryptpuis au réglage par défaut,RequireEncryptRequireDecrypt. Nous recommandons une série d'étapes de transition, comme le modèle suivant.

  1. Commencez par votrepolitique d'engagementparamétré surForbidEncryptAllowDecrypt. Dans laAWS Encryption SDKpeut décrypter les messages avec un engagement clé, mais il ne le chiffre pas encore avec un engagement clé.

  2. Une fois que vous êtes prêt, mettez à jour votre politique d'engagement pourRequireEncryptAllowDecrypt. Dans laAWS Encryption SDKcommence à chiffrer vos données avecEngagement clé. Il peut déchiffrer le texte chiffré avec et sans engagement clé.

    Avant de mettre à jour votre politique d'engagement pourRequireEncryptAllowDecrypt, vérifiez que votre dernier numéro 1.xLa version est déployée sur tous les hôtes, y compris les hôtes de toutes les applications qui déchiffrent le texte chiffré que vous produisez. Versions duAWS Encryption SDKavant la version 1.7.xImpossible de décrypter les messages cryptés avec un engagement clé.

    C'est également le bon moment pour ajouter des mesures à votre application afin de déterminer si vous êtes toujours en train de traiter du texte chiffré sans engagement clé. Cela vous aidera à déterminer quand il est sûr de mettre à jour les paramètres de votre politique d'engagement pourRequireEncryptRequireDecrypt. Pour certaines applications, telles que celles qui cryptent les messages dans une file d'attente Amazon SQS, cela peut impliquer d'attendre suffisamment longtemps pour que tout le texte chiffré sous les anciennes versions soit recrypté ou supprimé. Pour d'autres applications, telles que les objets S3 cryptés, vous devrez peut-être télécharger, chiffrer à nouveau et charger à nouveau tous les objets.

  3. Lorsque vous êtes certain qu'aucun message n'est crypté sans engagement clé, vous pouvez mettre à jour votre politique d'engagement pourRequireEncryptRequireDecrypt. Cette valeur garantit que vos données sont toujours cryptées et décryptées avec un engagement clé. Il s'agit du paramètre par défaut, vous n'êtes donc pas obligé de le définir explicitement, mais nous le recommandons. Un paramètre explicite seradébogageet toutes les annulations potentielles qui pourraient être nécessaires si votre application reçoit du texte chiffré sans engagement de clé.