Comment migrer et déployer le AWS 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éployer le AWS Encryption SDK

Lors de la migration depuis une AWS Encryption SDK version antérieure à 1.7. x vers la version 2.0. x ou version ultérieure, vous devez passer en toute sécurité au chiffrement avec engagement clé. Dans le cas contraire, votre application rencontrera des textes chiffrés qu'elle ne pourra pas déchiffrer. Si vous utilisez des fournisseurs de clés AWS KMS 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 migrent des versions antérieures de la version 2.0 AWS Encryption SDK vers la version 2.0. x ou version ultérieure. Si vous débutez avec le AWS 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 terminée et entièrement déployée avant de passer à l'étape suivante. Cela est particulièrement important pour les applications distribuées comportant plusieurs hôtes.

Étape 1 : Mettez à jour votre application avec la dernière version 1. version x

Mise à jour vers la dernière version 1. version x pour votre langage de programmation. Testez soigneusement, déployez vos modifications et vérifiez 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. La version x est la version 1.7. x ou une version ultérieure du AWS Encryption SDK.

Le dernier 1. Les versions x du AWS Encryption SDK sont rétrocompatibles avec les anciennes versions du AWS Encryption SDK et rétrocompatibles avec les versions 2.0. x et versions ultérieures. Ils incluent les nouvelles fonctionnalités présentes dans la version 2.0. x, mais incluez les valeurs par défaut sécurisées conçues pour cette migration. Ils vous permettent de mettre à niveau vos fournisseurs de clés AWS KMS principales, si nécessaire, et de les déployer entièrement 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 des anciens fournisseurs de clés AWS KMS principales. En Python, veillez à activer les avertissements d'obsolescence. Éléments de code déconseillés dans la dernière version 1. les versions x sont supprimées des versions 2.0. x et versions ultérieures.

  • Définissez explicitement votre politique d'engagement surForbidEncryptAllowDecrypt. Bien que ce soit la seule valeur valide dans le dernier 1. x versions, ce paramètre est obligatoire lorsque vous utilisez le paramètre APIs introduit dans cette version. Cela empêche votre application de rejeter le texte chiffré sans engagement de clé lors de la migration vers la version 2.0. x et versions ultérieures. Pour plus de détails, consultez Définition de votre politique d'engagement.

  • Si vous utilisez des fournisseurs de clés AWS KMS principales, vous devez mettre à jour vos anciens fournisseurs de clés principales pour qu'ils prennent en charge le mode strict et le mode découverte. Cette mise à jour est requise pour le Kit SDK de chiffrement AWS pour Java Kit SDK de chiffrement AWS pour Python, et la CLI de AWS 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 à ces fournisseurs en particulier Comptes AWS. Cette mise à jour est facultative, mais c'est une bonne pratique que nous recommandons. Pour plus de détails, consultez Mise à jour des fournisseurs de clés AWS KMS principales.

  • Si vous utilisez des trousseaux de AWS KMS découverte, nous vous recommandons d'inclure un filtre de découverte qui limite les clés d'encapsulage utilisées pour le déchiffrement à celles-ci en particulier. Comptes AWS Cette mise à jour est facultative, mais c'est une bonne pratique que nous recommandons. Pour plus de détails, consultez Mise à jour des AWS KMS porte-clés.

Étape 2 : mettez à jour votre application avec la dernière version

Après avoir déployé le dernier 1. version x avec succès sur tous les hôtes, vous pouvez passer à la version 2.0. x et versions ultérieures. La version 2.0. x inclut les modifications majeures apportées à toutes les versions antérieures du AWS 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 propre rythme vers RequireEncryptAllowDecrypt puis vers le paramètre par défaut,RequireEncryptRequireDecrypt. Nous recommandons une série d'étapes de transition comme le modèle suivant.

  1. Commencez par définir votre politique d'engagement surForbidEncryptAllowDecrypt. Il AWS Encryption SDK peut déchiffrer les messages avec un engagement clé, mais il ne le fait pas encore avec un engagement clé.

  2. Lorsque vous êtes prêt, mettez à jour votre politique d'engagement àRequireEncryptAllowDecrypt. Le chiffrement de vos données AWS Encryption SDK commence par un engagement clé. Il peut déchiffrer le texte chiffré avec et sans engagement clé.

    Avant de mettre à jour votre politique d'engagement enRequireEncryptAllowDecrypt, vérifiez que votre dernière version 1. La version x 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 AWS Encryption SDK antérieures à la version 1.7. x ne peut pas déchiffrer les messages chiffrés avec clé d'engagement.

    C'est également le bon moment pour ajouter des métriques à votre application afin de déterminer si vous traitez toujours du texte chiffré sans engagement clé. Cela vous aidera à déterminer à quel moment vous pouvez mettre à jour les paramètres de votre politique d'engagement en toute sécuritéRequireEncryptRequireDecrypt. Pour certaines applications, telles que celles qui chiffrent des 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 rechiffré ou supprimé. Pour les autres applications, telles que les objets S3 chiffrés, vous devrez peut-être télécharger, rechiffrer et charger à nouveau tous les objets.

  3. Lorsque vous êtes certain qu'aucun message n'est crypté sans clé d'engagement, vous pouvez mettre à jour votre politique d'engagement enRequireEncryptRequireDecrypt. Cette valeur garantit que vos données sont toujours cryptées et déchiffré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 vous le recommandons. Un paramètre explicite facilitera le débogage et les éventuelles annulations qui pourraient être nécessaires si votre application détecte du texte chiffré sans engagement de clé.