Generieren Sie mithilfe von Troposphere eine CloudFormation AWS-Vorlage, die von AWS Config verwaltete Regeln enthält - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Generieren Sie mithilfe von Troposphere eine CloudFormation AWS-Vorlage, die von AWS Config verwaltete Regeln enthält

Erstellt von Lucas Nation (AWS) und Freddie Wilson (AWS)

Umgebung: Produktion

Technologien: DevOps; Management und Unternehmensführung; Sicherheit, Identität, Compliance

Arbeitslast: Microsoft; Open Source

AWS-Dienste: AWS Config; AWS CloudFormation

Übersicht

Viele Organisationen verwenden verwaltete Regeln von AWS Config, um die Konformität ihrer Amazon Web Services (AWS) -Ressourcen anhand gängiger bewährter Methoden zu bewerten. Die Pflege dieser Regeln kann jedoch zeitaufwändig sein, und dieses Muster hilft Ihnen, Troposphere, eine Python-Bibliothek, zu nutzen, um verwaltete AWS Config-Regeln zu generieren und zu verwalten.

Das Muster hilft Ihnen bei der Verwaltung Ihrer von AWS Config verwalteten Regeln, indem Sie ein Python-Skript verwenden, um eine Microsoft Excel-Tabelle mit verwalteten AWS-Regeln in eine CloudFormation AWS-Vorlage zu konvertieren. Troposphere fungiert als Infrastruktur als Code (IaC). Das bedeutet, dass Sie die Excel-Tabelle mit verwalteten Regeln aktualisieren können, anstatt eine Datei im JSON- oder YAML-Format zu verwenden. Anschließend verwenden Sie die Vorlage, um einen CloudFormation AWS-Stack zu starten, der die verwalteten Regeln in Ihrem AWS-Konto erstellt und aktualisiert.

Die CloudFormation AWS-Vorlage definiert jede von AWS Config verwaltete Regel mithilfe der Excel-Tabelle und hilft Ihnen, die manuelle Erstellung einzelner Regeln in der AWS-Managementkonsole zu vermeiden. Das Skript verwendet für die Parameter jeder verwalteten Regel standardmäßig ein leeres Wörterbuch und für den Geltungsbereich die ComplianceResourceTypes Standardwerte von. THE_RULE_IDENTIFIER.template file Weitere Informationen zur Regel-ID finden Sie unter Creating AWS Config managed Rules with CloudFormation AWS-Vorlagen in der AWS Config-Dokumentation.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives AWS-Konto.

  • Vertrautheit mit der Verwendung von CloudFormation AWS-Vorlagen zur Erstellung von verwalteten AWS Config-Regeln. Weitere Informationen dazu finden Sie unter Creating AWS Config Managed Rules with CloudFormation AWS-Vorlagen in der AWS Config-Dokumentation.  

  • Python 3, installiert und konfiguriert. Weitere Informationen dazu finden Sie in der Python-Dokumentation.

  • Eine bestehende integrierte Entwicklungsumgebung (IDE) wie AWS Cloud9. Weitere Informationen dazu finden Sie unter Was ist AWS Cloud9? in der AWS Cloud9 Cloud9-Dokumentation. 

  • Identifizieren Sie Ihre Organisationseinheiten (OUs) in einer Spalte in der excel_config_rules.xlsx Excel-Beispieltabelle (im Anhang).

Epen

AufgabeBeschreibungErforderliche Fähigkeiten
Aktualisieren Sie die Excel-Beispieltabelle.

Laden Sie die excel_config_rules.xlsx Excel-Beispieltabelle (beigefügt) herunter und kennzeichnen Sie sie als Implemented die von AWS Config verwalteten Regeln, die Sie verwenden möchten. 

Als markierte Regeln Implemented werden der CloudFormation AWS-Vorlage hinzugefügt.

Developer
(Optional) Aktualisieren Sie die Datei config_rules_params.json mit den AWS Config-Regelparametern.

Einige von AWS Config verwaltete Regeln erfordern Parameter und sollten mithilfe der --param-file Option als JSON-Datei an das Python-Skript übergeben werden. Die access-keys-rotated verwaltete Regel verwendet beispielsweise den folgenden maxAccessKeyAge Parameter:

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

In diesem Beispielparameter maxAccessKeyAge ist der auf 90 Tage festgelegt. Das Skript liest die Parameterdatei und fügt alle gefundenen Parameter InputParameters hinzu.

Developer
(Optional) Aktualisieren Sie die Datei config_rules_params.json mit AWS Config. ComplianceResourceTypes

Standardmäßig ruft das Python-Skript die ComplianceResourceTypes von AWS definierten Vorlagen ab. Wenn Sie den Geltungsbereich einer bestimmten verwalteten AWS Config-Regel überschreiben möchten, müssen Sie sie mit der --param-file Option als JSON-Datei an das Python-Skript übergeben.

Der folgende Beispielcode zeigt beispielsweise, wie der Wert ComplianceResourceTypes für in der ["AWS::EC2::Volume"] Liste festgelegt ec2-volume-inuse-check ist:

{ "ec2-volume-inuse-check": { "Scope": { "ComplianceResourceTypes": [ "AWS::EC2::Volume" ] } } }
Developer
AufgabeBeschreibungErforderliche Fähigkeiten
Installieren Sie die Pip-Pakete aus der Datei requirements.txt.

Laden Sie die requirements.txt Datei (angehängt) herunter und führen Sie den folgenden Befehl in Ihrer IDE aus, um die Python-Pakete zu installieren:

pip3 install -r requirements.txt

Developer
Führen Sie das Python-Skript aus.
  1. Laden Sie die aws_config_rules.py Datei (angehängt) auf Ihren lokalen Computer herunter.

  2. Führen Sie den Befehl - python3 aws_config_rules.py --ou <OU_NAME> aus. Hinweis: --ou Definiert, welche OU-Spalte in der Excel-Tabelle ausgewählt werden soll.

Sie können auch die folgenden optionalen Parameter hinzufügen:

  • --config-rule-option— Definiert die Regeln, die aus der Excel-Tabelle ausgewählt werden können. Die Standardeinstellung ist der Implemented Parameter.

  • --excel-file— Der Pfad für die Excel-Tabelle. Der Standardwert ist aws_config_rules.xlsx.

  • --param-file— Der Pfad der Parameter-JSON-Datei. Der Standardwert ist config_rules_params.json.

  • --max-execution-frequency— Definiert, wie oft die von AWS Config verwalteten Regeln ausgewertet werden. Die Auswahlmöglichkeiten sind One_HourThree_Hours,Six_Hours,Twelve_Hours, oderTwentyFour_Hours. Der Standardwert ist TwentyFour_Hours.

Developer
AufgabeBeschreibungErforderliche Fähigkeiten
Starten Sie den CloudFormation AWS-Stack.
  1. Melden Sie sich bei der AWS-Managementkonsole an, öffnen Sie die CloudFormation AWS-Konsole und wählen Sie dann Stack erstellen.

  2. Wählen Sie auf der Seite Vorlage angeben die Option Vorlagendatei hochladen aus und laden Sie dann Ihre CloudFormation AWS-Vorlage hoch. 

  3. Geben Sie einen Stack-Namen an und wählen Sie dann Weiter.

  4. Geben Sie Tags an und wählen Sie dann Weiter.

  5. Wählen Sie Stack erstellen aus.

Developer

Anlagen

Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip