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

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

Environnement : Production

Technologies : DevOps gestion et gouvernance, sécurité, identité, conformité

Charge de travail : Microsoft ; logiciel libre

AWSservices : AWS Config ; AWS CloudFormation

Récapitulatif

De nombreuses entreprises 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 AWS gérées en AWS CloudFormation modèle. 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 formaté JSON ou YAML formaté. Vous utilisez ensuite le modèle pour lancer une AWS CloudFormation pile qui crée et met à jour les règles gérées dans votre AWS compte.

Le AWS CloudFormation modèle 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 la console AWS de gestion. 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 à l'aide de AWS CloudFormation modèles dans la documentation AWS Config.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif.

  • Connaissance de l'utilisation de AWS CloudFormation modèles 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 AWS CloudFormation des modèles 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é existant (IDE) tel que AWS Cloud9. Pour plus d'informations à ce sujet, consultez Qu'est-ce que AWS Cloud9 ? dans la documentation de AWS Cloud9. 

  • 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 AWS CloudFormation modèle.

Developer
(Facultatif) Mettez à jour le fichier config_rules_params.json avec les paramètres de la règle Config. AWS

Certaines règles gérées par AWS Config nécessitent des paramètres et doivent être transmises au script Python sous forme de JSON fichier à 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 Config. AWS ComplianceResourceTypes

Par défaut, le script Python ComplianceResourceTypes extrait les modèles AWS définis. 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 JSON fichier à 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 ordinateur 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. Exécutez la commande - python3 aws_config_rules.py --ou <OU_NAME>. Remarque : --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 d'accès à la feuille de calcul Excel. L’argument par défaut est aws_config_rules.xlsx.

  • --param-file— Le chemin du JSON fichier 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 AWS CloudFormation pile.
  1. Connectez-vous à la console AWS de gestion, ouvrez la AWS CloudFormation console, puis choisissez Create stack.

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

  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