Chiffrez automatiquement les volumes Amazon EBS existants et nouveaux - Recommandations AWS

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.

Chiffrez automatiquement les volumes Amazon EBS existants et nouveaux

Créée par Tony DeMarco (AWS) et Josh Joy (AWS)

Dépôt de code : https://github.com/aws-samples/ aws-system-manager-automation - unencrypted-to-encrypted-resources /tree/main/ebs

Environnement : Production

Technologies : stockage et sauvegarde ; sécurité, identité, conformité ; gestion et gouvernance

Services AWS : AWS Config ; Amazon EBS ; AWS KMS ; AWS Organizations ; AWS Systems Manager

Récapitulatif

Le chiffrement des volumes Amazon Elastic Block Store (Amazon EBS) est important pour la stratégie de protection des données d'une entreprise. Il s'agit d'une étape importante dans la mise en place d'un environnement bien conçu. Bien qu'il n'existe aucun moyen direct de chiffrer des volumes ou des instantanés EBS non chiffrés existants, vous pouvez les chiffrer en créant un nouveau volume ou un nouvel instantané. Pour plus d'informations, consultez Encrypt EBS resources dans la documentation Amazon EC2. Ce modèle fournit des contrôles préventifs et de détection pour chiffrer vos volumes EBS, qu'ils soient nouveaux ou existants. Dans ce modèle, vous configurez les paramètres du compte, créez des processus de correction automatisés et implémentez des contrôles d'accès.

Conditions préalables et limitations

Prérequis

  • Un compte Amazon Web Services (AWS) actif

  • Interface de ligne de commande AWS (AWS CLI), installée et configurée sous macOS, Linux ou Windows

  • jq, installé et configuré sur macOS, Linux ou Windows

  • Les autorisations AWS Identity and Access Management (IAM) sont accordées pour avoir un accès en lecture et en écriture à AWS, CloudFormation Amazon Elastic Compute Cloud (Amazon EC2), AWS Systems Manager, AWS Config et AWS Key Management Service (AWS KMS)

  • AWS Organizations est configuré avec toutes les fonctionnalités activées, ce qui est une exigence des politiques de contrôle des services

  • AWS Config est activé dans les comptes cibles

Limites

  • Dans votre compte AWS cible, il ne doit pas y avoir de règles AWS Config nommées encrypted-volumes. Cette solution déploie une règle portant ce nom. Les règles préexistantes portant ce nom peuvent entraîner l'échec du déploiement et entraîner des frais inutiles liés au traitement de la même règle plusieurs fois.

  • Cette solution chiffre tous les volumes EBS avec la même clé AWS KMS.

  • Si vous activez le chiffrement des volumes EBS pour le compte, ce paramètre est spécifique à la région. Si vous l'activez pour une région AWS, vous ne pouvez pas le désactiver pour des volumes ou des instantanés individuels dans cette région. Pour plus d'informations, consultez la section Chiffrement par défaut dans la documentation Amazon EC2.

  • Lorsque vous corrigez des volumes EBS non chiffrés existants, assurez-vous que l'instance EC2 n'est pas utilisée. Cette automatisation arrête l'instance afin de détacher le volume non chiffré et d'attacher le volume chiffré. Il y a des temps d'arrêt pendant que la correction est en cours. S'il s'agit d'un élément d'infrastructure essentiel pour votre entreprise, assurez-vous que des configurations de haute disponibilité manuelles ou automatiques sont en place afin de ne pas affecter la disponibilité des applications exécutées sur l'instance. Nous vous recommandons de corriger les ressources critiques uniquement pendant les fenêtres de maintenance standard.

Architecture

Flux de travail d'automatisation

Schéma d'architecture de haut niveau illustrant le processus et les services d'automatisation
  1. AWS Config détecte un volume EBS non chiffré.

  2. Un administrateur utilise AWS Config pour envoyer une commande de correction à Systems Manager.

  3. L'automatisation de Systems Manager prend un instantané du volume EBS non chiffré.

  4. L'automatisation de Systems Manager utilise AWS KMS pour créer une copie chiffrée de l'instantané.

  5. L'automatisation de Systems Manager effectue les opérations suivantes :

    1. Arrête l'instance EC2 affectée si elle est en cours d'exécution

    2. Attache la nouvelle copie cryptée du volume à l'instance EC2

    3. Rétablit l'état d'origine de l'instance EC2

Outils

Services AWS

  • CLI AWS — L'interface de ligne de commande AWS (AWS CLI) fournit un accès direct aux interfaces de programmation d'applications (API) publiques des services AWS. Vous pouvez explorer les fonctionnalités d'un service avec l'interface de ligne de commande AWS et développer des scripts shell pour gérer vos ressources. Outre les commandes équivalentes aux API de bas niveau, plusieurs services AWS proposent des personnalisations pour l'AWS CLI. Ces personnalisations peuvent inclure des commandes de plus haut niveau qui facilitent l'utilisation d'un service à l'aide d'une API complexe.

  • AWS CloudFormation — AWS CloudFormation est un service qui vous aide à modéliser et à configurer vos ressources AWS. Vous créez un modèle qui décrit toutes les ressources AWS que vous souhaitez (telles que les instances Amazon EC2), puis vous provisionnez et CloudFormation configurez ces ressources pour vous.

  • AWS Config — AWS Config fournit une vue détaillée de la configuration des ressources AWS dans votre compte AWS. Elle indique comment les ressources sont liées entre elles et comment elles ont été configurées dans le passé, pour que vous puissiez observer comment les configurations et les relations changent au fil du temps.

  • Amazon EC2 — Amazon Elastic Compute Cloud (Amazon EC2) est un service Web qui fournit une capacité de calcul redimensionnable que vous utilisez pour créer et héberger vos systèmes logiciels.

  • AWS KMS — AWS Key Management Service (AWS KMS) est un service de chiffrement et de gestion des clés adapté au cloud. Les clés et fonctionnalités AWS KMS sont utilisées par d'autres services AWS, et vous pouvez les utiliser pour protéger les données dans votre environnement AWS.

  • AWS Organizations — AWS Organizations est un service de gestion de comptes qui vous permet de consolider plusieurs comptes AWS au sein d'une organisation que vous créez et gérez de manière centralisée.

  • AWS Systems Manager Automation — Systems Manager Automation simplifie les tâches courantes de maintenance et de déploiement pour les instances Amazon EC2 et les autres ressources AWS.

Autres services

  • jq — jq est un processeur JSON en ligne de commande léger et flexible. Vous utilisez cet outil pour extraire des informations clés de la sortie de l'AWS CLI.

Code

Épopées

TâcheDescriptionCompétences requises

Téléchargez des scripts et CloudFormation des modèles.

Téléchargez le script shell, le fichier JSON et les CloudFormation modèles depuis le référentiel Corriger GitHub automatiquement les volumes EBS non chiffrés à l'aide des clés KMS du client.

Administrateur AWS, AWS général

Identifiez l'administrateur de la clé AWS KMS.

  1. Connectez-vous à la console de gestion AWS et ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Identifiez un utilisateur ou un rôle qui sera l'administrateur des clés AWS KMS. Si un nouvel utilisateur ou un nouveau rôle doit être créé à cette fin, créez-le maintenant. Pour plus d'informations, consultez la section Identités IAM dans la documentation IAM. Cette automatisation crée une nouvelle clé AWS KMS.

  3. Une fois identifié, copiez le nom de ressource Amazon (ARN) de l'utilisateur ou du rôle. Pour plus d'informations, consultez la section ARN IAM dans la documentation IAM. Vous utiliserez cet ARN à l'étape suivante.

Administrateur AWS, AWS général

Déployez le modèle Stack1 CloudFormation .

  1. Ouvrez la CloudFormation console AWS à l'adresse https://console.aws.amazon.com/cloudformation/.

  2. Dans CloudFormation, déployez le Stack1.yaml modèle. Notez les détails de déploiement suivants :

    • Donnez à la pile un nom clair et descriptif. Notez le nom de la pile car vous aurez besoin de cette valeur à l'étape suivante.

    • Collez l'ARN de l'administrateur clé dans le seul champ de paramètre de Stack1. Cet utilisateur ou ce rôle devient l'administrateur de la clé AWS KMS créée par la pile.

Pour plus d'informations sur le déploiement d'un CloudFormation modèle, consultez la section Utilisation des CloudFormation modèles AWS dans la CloudFormation documentation.

Administrateur AWS, AWS général

Déployez le modèle Stack2. CloudFormation

Dans CloudFormation, déployez le Stack2.yaml modèle. Notez les détails de déploiement suivants :

  • Donnez à la pile un nom clair et descriptif.

  • Pour le seul paramètre de Stack2, entrez le nom de la pile que vous avez créée à l'étape précédente. Cela permet à Stack2 de référencer la nouvelle clé et le nouveau rôle AWS KMS déployés par la pile à l'étape précédente.

Administrateur AWS, AWS général

Créez un volume non chiffré à des fins de test.

Créez une instance EC2 avec un volume EBS non chiffré. Pour obtenir des instructions, consultez la section Créer un volume Amazon EBS dans la documentation Amazon EC2. Le type d'instance n'a pas d'importance et l'accès à l'instance n'est pas nécessaire. Vous pouvez créer une instance t2.micro pour rester dans le niveau gratuit, et vous n'avez pas besoin de créer une paire de clés.

Administrateur AWS, AWS général

Testez la règle AWS Config.

  1. Ouvrez la console AWS Config à l'adresse https://console.aws.amazon.com/config/. Sur la page Règles, choisissez la règle des volumes chiffrés.

  2. Vérifiez que votre nouvelle instance de test non chiffrée apparaît dans la liste des ressources non conformes. Si le volume n'apparaît pas immédiatement, attendez quelques minutes et actualisez les résultats. La règle AWS Config détecte les modifications des ressources peu après la création de l'instance et du volume.

  3. Sélectionnez la ressource, puis choisissez Corriger.

Vous pouvez consulter la progression et le statut de la correction dans Systems Manager comme suit :

  1. Ouvrez la console AWS Systems Manager à l'adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le panneau de navigation de gauche, sélectionnez Automation (Automatisation).

  3. Cliquez sur le lien Execution ID pour afficher les étapes et le statut. 

Administrateur AWS, AWS général

Configurez des comptes ou des régions AWS supplémentaires.

Si nécessaire pour votre cas d'utilisation, répétez cette épopée pour tous les comptes ou régions AWS supplémentaires.

Administrateur AWS, AWS général
TâcheDescriptionCompétences requises

Exécutez le script d'activation.

  1. Dans un shell bash, utilisez la cd commande pour accéder au référentiel cloné.

  2. Saisissez la commande suivante pour exécuter le script enable-ebs-encryption-for-account.

    ./Bash/enable-ebs-encryption-for-account.sh
Administrateur AWS, AWS général, bash

Vérifiez que les paramètres sont mis à jour.

  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Sur le côté droit de l'écran, sous Paramètres, choisissez Protection et sécurité des données.

  3. Dans la section Chiffrement EBS, vérifiez que l'option Toujours chiffrer les nouveaux volumes EBS est activée et que la clé de chiffrement par défaut est définie sur l'ARN que vous avez spécifié précédemment.

    Remarque : si le paramètre Toujours chiffrer les nouveaux volumes EBS est désactivé ou si la clé est toujours définie sur alias/aws/ebs, vérifiez que vous êtes connecté au même compte et à la même région AWS où vous avez exécuté le script shell, et vérifiez que votre shell ne contient pas de messages d'erreur.

Administrateur AWS, AWS général

Configurez des comptes ou des régions AWS supplémentaires.

Si nécessaire pour votre cas d'utilisation, répétez cette épopée pour tous les comptes ou régions AWS supplémentaires.

Administrateur AWS, AWS général
TâcheDescriptionCompétences requises

Créez une politique de contrôle des services.

  1. Ouvrez la console AWS Organizations à l'adresse https://console.aws.amazon.com/organizations/v2/.

  2. Créez une nouvelle politique de contrôle des services. Pour plus d'informations, consultez la section Création d'une politique de contrôle des services dans la documentation AWS Organizations.

  3. Ajoutez le contenu de DenyUnencryptedEC2.json à la politique et enregistrez-le. Vous avez téléchargé ce fichier JSON depuis le GitHub dépôt de la première épopée.

  4. Attachez cette politique à la racine de l'organisation ou à toute unité organisationnelle (UO) nécessaire. Pour plus d'informations, consultez la section Attacher et détacher des politiques de contrôle des services dans la documentation AWS Organizations.

Administrateur AWS, AWS général

Ressources connexes

Documentation des services AWS

Autres ressources