Générez un CloudFormation modèle AWS contenant les règles gérées par AWS Config à l'aide de Troposphere - 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.

Générez un CloudFormation modèle AWS contenant les règles gérées par AWS Config à l'aide de Troposphere

Créée par Lucas Nation (AWS) et Freddie Wilson (AWS)

Récapitulatif

De nombreuses organisations utilisent les règles gérées par AWS Config pour évaluer la conformité de leurs ressources Amazon Web Services (AWS) par rapport aux meilleures pratiques courantes. Cependant, la maintenance de ces règles peut prendre du temps et ce modèle vous permet de tirer parti de Troposphere, une bibliothèque Python, pour générer et gérer les règles gérées par AWS Config.

Le modèle vous aide à gérer vos règles gérées par AWS Config en utilisant un script Python pour convertir une feuille de calcul Microsoft Excel contenant des règles gérées par AWS en un CloudFormation modèle AWS. Troposphere agit comme une infrastructure en tant que code (IaC), ce qui signifie que vous pouvez mettre à jour la feuille de calcul Excel avec des règles gérées, au lieu d'utiliser un fichier au format JSON ou YAML. Vous utilisez ensuite le modèle pour lancer une CloudFormation pile AWS qui crée et met à jour les règles gérées dans votre compte AWS.

Le CloudFormation modèle AWS définit chaque règle gérée par AWS Config à l'aide de la feuille de calcul Excel et vous permet d'éviter de créer manuellement des règles individuelles dans l'AWS Management Console. Le script définit par défaut les paramètres de chaque règle gérée sur un dictionnaire vide et les paramètres ComplianceResourceTypes par défaut de la portée sur. THE_RULE_IDENTIFIER.template file Pour plus d'informations sur l'identifiant de règle, consultez la section Création de règles gérées par AWS Config avec des CloudFormation modèles AWS dans la documentation AWS Config.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif.

  • Connaissance de l'utilisation de CloudFormation modèles AWS pour créer des règles gérées par AWS Config. Pour plus d'informations à ce sujet, consultez la section Création de règles gérées par AWS Config avec CloudFormation des modèles AWS dans la documentation AWS Config.  

  • Python 3, installé et configuré. Pour plus d'informations à ce sujet, consultez la documentation Python.

  • Un environnement de développement intégré (IDE) existant.  

  • Identifiez vos unités organisationnelles (OUs) dans une colonne de l'exemple de feuille de calcul excel_config_rules.xlsx Excel (ci-joint).

Épopées

TâcheDescriptionCompétences requises

Mettez à jour l'exemple de feuille de calcul Excel.

Téléchargez l'exemple de feuille de calcul excel_config_rules.xlsx Excel (ci-joint) et étiquetez Implemented les règles gérées par AWS Config que vous souhaitez utiliser. 

Les règles marquées comme étant Implemented seront ajoutées au CloudFormation modèle AWS.

Developer

(Facultatif) Mettez à jour le fichier config_rules_params.json avec les paramètres des règles AWS Config.

Certaines règles gérées par AWS Config nécessitent des paramètres et doivent être transmises au script Python sous forme de fichier JSON à l'aide de l'--param-fileoption. Par exemple, la règle access-keys-rotated gérée utilise le maxAccessKeyAge paramètre suivant :

{ "access-keys-rotated": { "InputParameters": { "maxAccessKeyAge": 90 } } }

Dans cet exemple de paramètre, la valeur maxAccessKeyAge est fixée à 90 jours. Le script lit le fichier de paramètres et ajoute ceux InputParameters qu'il trouve.

Developer

(Facultatif) Mettez à jour le fichier config_rules_params.json avec AWS Config. ComplianceResourceTypes

Par défaut, le script Python ComplianceResourceTypes extrait les modèles définis par AWS. Si vous souhaitez modifier le champ d'application d'une règle gérée par AWS Config spécifique, vous devez la transmettre au script Python sous forme de fichier JSON à l'aide de l'--param-fileoption.

Par exemple, l'exemple de code suivant montre comment le ComplianceResourceTypes formulaire ec2-volume-inuse-check est défini dans la ["AWS::EC2::Volume"] liste :

{ "ec2-volume-inuse-check": { "Scope": { "ComplianceResourceTypes": [ "AWS::EC2::Volume" ] } } }
Developer
TâcheDescriptionCompétences requises

Installez les packages pip à partir du fichier requirements.txt.

Téléchargez le requirements.txt fichier (joint) et exécutez la commande suivante dans votre IDE pour installer les packages Python :

pip3 install -r requirements.txt

Developer

Exécutez le script python.

  1. Téléchargez le aws_config_rules.py fichier (joint) sur votre ordinateur local.

  2. Note

    Exécutez la - python3 aws_config_rules.py --ou <OU_NAME> commande. : --ou définit la colonne UO à choisir dans la feuille de calcul Excel.

Vous pouvez également ajouter les paramètres facultatifs suivants :

  • --config-rule-option— Définit les règles à choisir dans la feuille de calcul Excel. La valeur par défaut est le Implemented paramètre.

  • --excel-file— Le chemin de la feuille de calcul Excel. L’argument par défaut est aws_config_rules.xlsx.

  • --param-file— Le chemin du fichier JSON de paramètres. L’argument par défaut est config_rules_params.json.

  • --max-execution-frequency— Définit la fréquence à laquelle les règles gérées par AWS Config sont évaluées. Les choix sont One_HourThree_Hours, Six_HoursTwelve_Hours, ouTwentyFour_Hours. L’argument par défaut est TwentyFour_Hours.

Developer
TâcheDescriptionCompétences requises

Lancez la CloudFormation pile AWS.

  1. Connectez-vous à l'AWS Management Console, ouvrez la CloudFormation console AWS, puis choisissez Create stack.

  2. Sur la page Spécifier le modèle, choisissez Charger un fichier modèle, puis chargez votre CloudFormation modèle AWS. 

  3. Spécifiez un nom de pile, puis choisissez Next.

  4. Spécifiez les balises, puis choisissez Next.

  5. Sélectionnez Créer la pile.

Developer

Pièces jointes

Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip