Corrigez automatiquement les instances et clusters de base de données Amazon RDS non chiffrés - 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.

Corrigez automatiquement les instances et clusters de base de données Amazon RDS non chiffrés

Créée par Ajay Rawat (AWS) et Josh Joy (AWS)

Environnement : PoC ou pilote

Technologies : sécurité, identité, conformité ; bases de données

Services AWS : AWS Config ; AWS KMS ; AWS Identity and Access Management ; AWS Systems Manager ; Amazon RDS

Récapitulatif

Ce modèle décrit comment corriger automatiquement les instances de base de données et les clusters Amazon Relational Database Service (Amazon RDS) non chiffrés sur Amazon Web Services (AWS) à l'aide d'AWS Config, des runbooks AWS Systems Manager et des clés AWS Key Management Service (AWS KMS).

Les instances de base de données RDS cryptées fournissent une couche supplémentaire de protection des données en protégeant vos données contre tout accès non autorisé au stockage sous-jacent. Vous pouvez utiliser le chiffrement Amazon RDS pour renforcer la protection des données de vos applications déployées dans le cloud AWS et pour satisfaire aux exigences de conformité relatives au chiffrement au repos. Vous pouvez activer le chiffrement pour une instance de base de données RDS lorsque vous la créez, mais pas après sa création. Toutefois, vous pouvez ajouter le chiffrement à une instance de base de données RDS non chiffrée en créant un instantané de votre instance de base de données, puis en créant une copie chiffrée de cet instantané. Vous pouvez ensuite restaurer une instance de base de données à partir de l'instantané chiffré pour obtenir une copie chiffrée de votre instance de base de données d'origine.

Ce modèle utilise les règles AWS Config pour évaluer les instances de base de données et les clusters RDS. Il applique les mesures correctives à l'aide des runbooks AWS Systems Manager, qui définissent les actions à effectuer sur les ressources Amazon RDS non conformes, et des clés AWS KMS pour chiffrer les instantanés de base de données. Il applique ensuite les politiques de contrôle des services (SCP) pour empêcher la création de nouvelles instances de base de données et de nouveaux clusters sans chiffrement.

Le code de ce modèle est fourni dans GitHub.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif

  • Fichiers du référentiel de code GitHub source pour ce modèle téléchargés sur votre ordinateur

  • Une instance ou un cluster de base de données RDS non chiffré

  • Une clé AWS KMS existante pour chiffrer les instances et les clusters de base de données RDS

  • Accès pour mettre à jour la politique de ressources clés KMS

  • AWS Config activé dans votre compte AWS (voir Getting Started with AWS Config dans la documentation AWS)

Limites

  • Vous pouvez activer le chiffrement pour une instance de base de données RDS uniquement lorsque vous la créez, et non une fois qu'elle a été créée.

  • Vous ne pouvez pas avoir un réplica en lecture chiffré d'une instance de base de données non chiffrée ni un réplica en lecture non chiffré d'une instance de base de données chiffrée.

  • Vous ne pouvez pas restaurer un instantané non chiffré ou une sauvegarde non chiffrée vers une instance de base de données chiffrée.

  • Le chiffrement Amazon RDS est disponible pour la plupart des classes d'instance de base de données. Pour obtenir la liste des exceptions, consultez la section Chiffrement des ressources Amazon RDS dans la documentation Amazon RDS.

  • Pour copier un instantané chiffré d'une région AWS à une autre, vous devez spécifier la clé KMS dans la région AWS de destination. Cela est dû au fait que les clés KMS sont spécifiques à la région AWS dans laquelle elles sont créées.

  • L'instantané source reste chiffré pendant tout le processus de copie. Amazon RDS utilise le chiffrement des enveloppes pour protéger les données pendant le processus de copie. Pour plus d'informations, consultez la section Chiffrement des enveloppes dans la documentation AWS KMS.

  • Vous ne pouvez pas déchiffrer une instance de base de données chiffrée. Toutefois, vous pouvez exporter des données depuis une instance de base de données chiffrée et les importer dans une instance de base de données non chiffrée.

  • Vous ne devez supprimer une clé KMS que lorsque vous êtes certain de ne plus avoir besoin de l'utiliser. En cas de doute, pensez à désactiver la clé KMS au lieu de la supprimer. Vous pouvez réactiver une clé KMS désactivée si vous devez la réutiliser ultérieurement, mais vous ne pouvez pas récupérer une clé KMS supprimée. 

  • Si vous choisissez de ne pas conserver les sauvegardes automatisées, celles qui se trouvent dans la même région AWS que l'instance de base de données sont supprimées. Elles ne sont pas récupérables après la suppression de l'instance de base de données.

  • Vos sauvegardes automatisées sont conservées pendant la période de rétention définie sur l'instance de base de données au moment où vous la supprimez. Cette période de conservation définie intervient que vous choisissiez ou non de créer un instantané de bases de données final.

  • Si la correction automatique est activée, cette solution chiffre toutes les bases de données qui possèdent la même clé KMS.

Architecture

Le schéma suivant illustre l'architecture de la CloudFormation mise en œuvre d'AWS. Notez que vous pouvez également implémenter ce modèle à l'aide du AWS Cloud Development Kit (AWS CDK).

CloudFormation Implémentation d'AWS pour corriger les instances Amazon RDS non chiffrées.

Outils

Outils

  • AWS vous CloudFormation aide à configurer automatiquement vos ressources AWS. Il vous permet d'utiliser un fichier modèle pour créer et supprimer un ensemble de ressources en une seule unité (une pile).

  • AWS Cloud Development Kit (AWS CDK) est un framework de développement logiciel permettant de définir votre infrastructure cloud en code et de la provisionner à l'aide de langages de programmation courants.

Services et fonctionnalités AWS

  • AWS Config assure le suivi de la configuration de vos ressources AWS et de leurs relations avec vos autres ressources. Il peut également évaluer la conformité de ces ressources AWS. Ce service utilise des règles qui peuvent être configurées pour évaluer les ressources AWS par rapport aux configurations souhaitées. Vous pouvez utiliser un ensemble de règles gérées par AWS Config pour les scénarios de conformité courants, ou vous pouvez créer vos propres règles pour des scénarios personnalisés. Lorsqu'une ressource AWS s'avère non conforme, vous pouvez spécifier une action corrective par le biais d'un runbook AWS Systems Manager et éventuellement envoyer une alerte via une rubrique Amazon Simple Notification Service (Amazon SNS). En d'autres termes, vous pouvez associer des actions de correction aux règles AWS Config et choisir de les exécuter automatiquement pour traiter les ressources non conformes sans intervention manuelle. Si une ressource n'est toujours pas conforme après la correction automatique, vous pouvez définir la règle pour réessayer la correction automatique.

  • Amazon Relational Database Service (Amazon RDS) facilite la configuration, l'exploitation et le dimensionnement d'une base de données relationnelle dans le cloud. L'élément de base d'Amazon RDS est l'instance de base de données, qui est un environnement de base de données isolé dans le cloud AWS. Amazon RDS propose une sélection de types d'instances optimisés pour s'adapter aux différents cas d'utilisation des bases de données relationnelles. Les types d'instances comprennent différentes combinaisons de capacité de processeur, de mémoire, de stockage et de réseau et vous permettent de choisir la combinaison de ressources appropriée pour votre base de données. Chaque type d'instance inclut plusieurs tailles d'instance, ce qui vous permet d'adapter votre base de données aux exigences de votre charge de travail cible.

  • AWS Key Management Service (AWS KMS) est un service géré qui vous permet de créer et de contrôler facilement les clés AWS KMS, qui chiffrent vos données. Une clé KMS est une représentation logique d'une clé racine. La clé KMS inclut des métadonnées, telles que l'ID de clé, la date de création, la description et l'état de la clé.

  • AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.

  • Les politiques de contrôle des services (SCP) permettent de contrôler de manière centralisée les autorisations maximales disponibles pour tous les comptes de votre organisation. Les SCP vous aident à garantir que vos comptes respectent les directives de contrôle d'accès de votre organisation. Les SCP n'affectent pas les utilisateurs ni les rôles dans le compte de gestion. Elles affectent uniquement les comptes membres de votre organisation. Nous vous recommandons vivement de ne pas attacher de stratégie de contrôle de service à la racine de votre organisation sans soigneusement tester son impact sur les comptes. Créez plutôt une unité organisationnelle (UO) dans laquelle vous pouvez déplacer vos comptes un par un, ou du moins en petit nombre, afin de ne pas empêcher les utilisateurs d'accéder par inadvertance à des services clés.

Code

Le code source et les modèles de ce modèle sont disponibles dans un GitHub référentiel. Le modèle propose deux options d'implémentation : vous pouvez déployer un CloudFormation modèle AWS pour créer le rôle de correction qui chiffre les instances de base de données et les clusters RDS, ou utiliser le kit AWS CDK. Le référentiel comporte des dossiers distincts pour ces deux options.

La section Epics fournit des step-by-step instructions pour déployer le CloudFormation modèle. Si vous souhaitez utiliser le kit AWS CDK, suivez les instructions du fichier README.md du référentiel. GitHub

Bonnes pratiques

  • Activez le chiffrement des données au repos et en transit.

  • Activez AWS Config dans tous les comptes et régions AWS.

  • Enregistrez les modifications de configuration apportées à tous les types de ressources.

  • Effectuer une rotation régulière des informations d'identification IAM.

  • Tirez parti du balisage pour AWS Config, qui facilite la gestion, la recherche et le filtrage des ressources.

Épopées

TâcheDescriptionCompétences requises

Téléchargez le CloudFormation modèle.

Téléchargez le unencrypted-to-encrypted-rds.template.json fichier depuis le GitHub référentiel.

DevOps ingénieur

Créez la CloudFormation pile.

  1. Connectez-vous à l'AWS Management Console et ouvrez-la à l' CloudFormation adresse https://console.aws.amazon.com/cloudformation/

  2. Lancez le unencrypted-to-encrypted-rds.template.json modèle pour créer une nouvelle pile.

Pour plus d'informations sur le déploiement de modèles, consultez la CloudFormation documentation AWS.

DevOps ingénieur

Passez en revue CloudFormation les paramètres et les valeurs.

  1. Passez en revue les détails de la pile et mettez à jour les valeurs en fonction des exigences de votre environnement.

  2. Choisissez Create stack pour déployer le modèle.

DevOps ingénieur

Passez en revue les ressources.

Lorsque la pile a été créée, son statut passe à CREATE_COMPLETE. Passez en revue les ressources créées (rôle IAM, manuel d'utilisation d'AWS Systems Manager) dans la CloudFormation console.

DevOps ingénieur
TâcheDescriptionCompétences requises

Mettez à jour votre politique relative aux clés KMS.

  1. Assurez-vous que l'alias de clé alias/RDSEncryptionAtRestKMSAlias existe. 

  2. La déclaration de politique clé doit inclure le rôle de correction de l'IAM. (Vérifiez les ressources créées par le CloudFormation modèle que vous avez déployé dans l'épopée précédente.) 

  3. Dans la politique clé suivante, mettez à jour les parties en gras pour qu'elles correspondent à votre compte et au rôle IAM créé.

{ "Sid": "Allow access through RDS for all principals in the account that are authorized to use RDS", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:: <your-AWS-account-ID>”:role/<your-IAM-remediation-role>" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:ListGrants", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "rds.us-east-1.amazonaws.com", "kms:CallerAccount": "<your-AWS-account-ID>" } } }
DevOps ingénieur
TâcheDescriptionCompétences requises

Afficher les ressources non conformes.

  1. Pour consulter la liste des ressources non conformes, ouvrez la console AWS Config à l'adresse https://console.aws.amazon.com/config/

  2. Dans le volet de navigation, choisissez Rules, puis choisissez la rds-storage-encrypted règle.

Les ressources non conformes répertoriées dans la console AWS Config seront des instances et non des clusters. L'automatisation de la correction chiffre les instances et les clusters, et crée soit une nouvelle instance chiffrée, soit un cluster nouvellement créé. Veillez toutefois à ne pas corriger simultanément plusieurs instances appartenant au même cluster.

Avant de corriger des instances ou des volumes de base de données RDS, assurez-vous que l'instance de base de données RDS n'est pas utilisée. Vérifiez qu'aucune opération d'écriture n'est en cours pendant la création de l'instantané, afin de vous assurer que celui-ci contient les données d'origine. Envisagez d'imposer une fenêtre de maintenance pendant laquelle la correction s'exécutera.

DevOps ingénieur

Corrigez les ressources non conformes.

  1. Lorsque vous êtes prêt et que la fenêtre de maintenance est active, choisissez la ressource à corriger, puis choisissez Corriger.

    La colonne État de l'action doit désormais afficher l'exécution de l'action en file d'attente.

  2. Consultez la progression et le statut de la correction dans Systems Manager. Ouvrez la console AWS Systems Manager à l'adresse https://console.aws.amazon.com/systems-manager/. Dans le volet de navigation, choisissez Automation, puis sélectionnez l'ID d'exécution de l'automatisation correspondante pour afficher plus de détails.

DevOps ingénieur

Vérifiez que l'instance de base de données RDS est disponible.

Une fois l'automatisation terminée, l'instance de base de données RDS nouvellement chiffrée sera disponible. L'instance de base de données RDS cryptée aura le préfixe encrypted  suivi du nom d'origine. Par exemple, si le nom de l'instance de base de données RDS non chiffrée étaitdatabase-1, l'instance de base de données RDS nouvellement chiffrée le serait. encrypted-database-1

DevOps ingénieur

Mettez fin à l'instance non chiffrée.

Une fois la correction terminée et la nouvelle ressource chiffrée validée, vous pouvez mettre fin à l'instance non chiffrée. Assurez-vous de vérifier que la ressource nouvellement chiffrée correspond à la ressource non chiffrée avant de mettre fin à toute ressource.

DevOps ingénieur
TâcheDescriptionCompétences requises

Faites appliquer les SCP.

Appliquez les SCP pour empêcher la création d'instances et de clusters de base de données sans chiffrement à l'avenir. Utilisez le rds_encrypted.json fichier fourni dans le GitHub référentiel à cette fin et suivez les instructions de la documentation AWS

Ingénieur de sécurité

Ressources connexes

Références

Outils

Guides et modèles

Informations supplémentaires

FAQ

Q : Comment fonctionne AWS Config ?

R. Lorsque vous activez AWS Config, il découvre d'abord les ressources AWS prises en charge qui existent dans votre compte et génère un élément de configuration pour chaque ressource. AWS Config génère également des éléments de configuration lorsque la configuration d'une ressource change et conserve l'historique des éléments de configuration de vos ressources depuis le démarrage de l'enregistreur de configuration. Par défaut, AWS Config crée des éléments de configuration pour chaque ressource prise en charge dans la région AWS. Si vous ne souhaitez pas qu'AWS Config crée des éléments de configuration pour toutes les ressources prises en charge, vous pouvez spécifier les types de ressources que vous souhaitez suivre.

Q : Quel est le lien entre les règles AWS Config et AWS Config et AWS Security Hub ?

R. AWS Security Hub est un service de sécurité et de conformité qui fournit une gestion du niveau de sécurité et de conformité en tant que service. Il utilise les règles AWS Config et AWS Config comme principal mécanisme pour évaluer la configuration des ressources AWS. Les règles AWS Config peuvent également être utilisées pour évaluer directement la configuration des ressources. Les règles de configuration sont également utilisées par d'autres services AWS, tels qu'AWS Control Tower et AWS Firewall Manager.