Benutzerdefinierte Lambda-Regeln (allgemeines Beispiel) - AWS Config

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.

Benutzerdefinierte Lambda-Regeln (allgemeines Beispiel)

Führen Sie die folgenden Schritte aus, um eine benutzerdefinierte Lambda-Regel zu erstellen. Um eine benutzerdefinierte Lambda-Regel zu erstellen, erstellen Sie zunächst eine AWS Lambda Funktion, die die Bewertungslogik für die Regel enthält. Dann verknüpfen Sie die Funktion mit einer benutzerdefinierten Lambda-Regel, die Sie in AWS Config erstellen.

Wichtig

Aus Sicherheitsgründen empfehlen wir Ihnen dringend, den Zugriff in der ressourcenbasierten Richtlinie für Lambda mit sourceARN und/oder sourceAccountId in der Aufrufanforderung einzuschränken, wenn Sie die AWS Config Erlaubnis zum Aufrufen Ihrer Lambda-Funktion gewähren. Weitere Informationen finden Sie unter Bewährte Sicherheitsmethoden für ressourcenbasierte AWS Lambda -Richtlinien.

Erstellen einer AWS Lambda -Funktion für eine benutzerdefinierte Konfigurationsregel

Eine Lambda-Funktion ist benutzerdefinierter Code AWS Lambda, in den Sie hochladen und der durch Ereignisse aufgerufen wird, die von einer Ereignisquelle in ihr veröffentlicht werden. Wenn die Lambda-Funktion mit einer Config-Regel verknüpft ist, wird sie AWS Config aufgerufen, wenn der Trigger der Regel auftritt. Die Lambda-Funktion wertet die von AWS Config gesendeten Konfigurationsinformationen aus und gibt die Auswertungsergebnisse zurück. Weitere Informationen zu Lambda-Funktionen finden Sie in den Erläuterungen zu Funktions- und Ereignisquellen im AWS Lambda -Entwicklerhandbuch.

Sie können eine Programmiersprache verwenden, die von unterstützt wird, AWS Lambda um eine Lambda-Funktion für eine benutzerdefinierte Lambda-Regel zu erstellen. Um diese Aufgabe zu vereinfachen, können Sie einen AWS Lambda Blueprint anpassen oder eine Beispielfunktion aus dem AWS Config Regel-Repository wiederverwenden. GitHub

AWS Lambda-Pläne

Die AWS Lambda Konsole bietet Beispielfunktionen oder Blueprints, die Sie anpassen können, indem Sie Ihre eigene Bewertungslogik hinzufügen. Wenn Sie eine Funktion erstellen, können Sie eine der folgenden Vorlagen auswählen:

  • config-rule-change-triggered— Wird ausgelöst, wenn sich Ihre AWS Ressourcenkonfigurationen ändern.

  • config-rule-periodic— Wird mit einer von Ihnen gewählten Frequenz ausgelöst (z. B. alle 24 Stunden).

AWS Config GitHub Regel-Repository

Ein öffentliches Repository mit Beispielfunktionen für benutzerdefinierte Lambda-Regeln ist auf GitHub einem webbasierten Dienst zum Hosten und Teilen von Code verfügbar. Die Beispielfunktionen wurden von der AWS Community entwickelt und bereitgestellt. Wenn Sie ein Beispiel verwenden möchten, können Sie seinen Code in eine neue AWS Lambda Funktion kopieren. Sie können das Repository unter https://github.com/awslabs/aws-config-rules/ aufrufen.

So erstellen Sie die Funktion für Ihre benutzerdefinierte Regel
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/.

  2. Vergewissern Sie sich im AWS Management Console Menü, dass die Regionsauswahl auf eine Region eingestellt ist, die AWS Config Regeln unterstützt. Die Liste der unterstützten Regionen finden Sie unter AWS Config -Regionen und -Endpunkte im Allgemeine Amazon Web Services-Referenz.

  3. Wählen Sie Create a Lambda function (Eine Lambda-Funktion erstellen) aus.

  4. Auf der Seite Blueprint verwenden können Sie eine der Blueprint-Funktionen für AWS Config Regeln als Ausgangspunkt wählen, oder Sie können ohne Blueprint fortfahren, indem Sie Überspringen wählen.

  5. Wählen Sie auf der Seite Configure Triggers (Auslöser konfigurieren) die Option Next (Weiter) aus.

  6. Geben Sie auf der Seite Basisinformationen einen Namen und eine Beschreibung ein.

  7. Wählen Sie im Feld Runtime (Laufzeit) die Programmiersprache aus, in der die Funktion geschrieben wird.

  8. Geben Sie unter Code entry type (Codeeingabetyp) Ihren bevorzugten Eingabetyp an. Wenn Sie eine Vorlage verwenden, behalten Sie den vorkonfigurierten Code bei.

  9. Geben Sie Ihren Code mit der Methode ein, die für den ausgewählten Codeeingabetyp erforderlich ist. Bei Verwendung einer Vorlage wird der Funktionscode im Code-Editor bereitgestellt und Sie passen ihn an, indem Sie die eigene Auswertungslogik hinzufügen. Ihr Code kann die Ereignisdaten auswerten, AWS Config die beim Aufrufen Ihrer Funktion bereitgestellt werden:

    • Bei Funktionen, die auf dem config-rule-change-triggeredBlueprint basieren, oder bei Funktionen, die durch Konfigurationsänderungen ausgelöst werden, handelt es sich bei den Ereignisdaten um das Konfigurationselement oder um ein überdimensioniertes Konfigurationselement-Objekt für die AWS Ressource, die sich geändert hat.

    • Bei Funktionen, die auf dem config-rule-periodicBlueprint basieren, oder bei Funktionen, die mit einer von Ihnen gewählten Häufigkeit ausgelöst werden, handelt es sich bei den Ereignisdaten um ein JSON-Objekt, das Informationen darüber enthält, wann die Auswertung ausgelöst wurde.

    • Übergibt für beide Funktionstypen AWS Config Regelparameter im JSON-Format. Sie können bei der Erstellung der benutzerdefinierten Lambda-Regel in AWS Config definieren, welche Regelparameter übergeben werden.

    • Ereignisse, die AWS Config veröffentlicht werden, wenn sie Ihre Funktion aufrufen, finden Sie beispielsweise unterBeispielereignisse für AWS Config -Regeln.

  10. Wählen Sie unter Ausführungsrolle die Option Neue Rolle anhand von AWS -Richtlinienvorlagen erstellen aus.

  11. Bei Role Name geben Sie einen Namen ein.

  12. Bei Policy Templates wählen Sie AWS Config Rules Permission aus.

  13. Überprüfen Sie die Details und wählen Sie dann Erstellen aus.

Eine benutzerdefinierte Regel erstellen in AWS Config

Wird verwendet AWS Config , um eine benutzerdefinierte Lambda-Regel zu erstellen und die Regel einer Lambda-Funktion zuzuordnen.

So erstellen Sie eine benutzerdefinierte Regel
  1. Öffnen Sie die AWS Config Konsole unter https://console.aws.amazon.com/config/.

  2. Stellen Sie im AWS Management Console Menü sicher, dass die Regionsauswahl auf dieselbe Region eingestellt ist, in der Sie die AWS Lambda Funktion für Ihre benutzerdefinierte Lambda-Regel erstellt haben.

  3. Wählen Sie auf der Seite Rules (Regeln) die Option Add Rule (Regel hinzufügen) aus.

  4. Wählen Sie auf der Seite Regeltyp angeben die Option Benutzerdefinierte Regel erstellen aus.

  5. Geben Sie auf der Seite Configure rule (Regel konfigurieren) einen Namen und eine Beschreibung ein.

  6. Geben Sie bei AWS Lambda Function ARN den ARN an, der Ihrer Funktion von AWS Lambda zugewiesen wurde.

    Anmerkung

    Der von Ihnen in diesem Schritt angegebene ARN darf keinen $LATEST-Qualifizierer enthalten. Sie können einen ARN ohne Versionsbezeichner oder mit einem beliebigen anderen Qualifizierer angeben. $LATEST AWS Lambda unterstützt die Versionsverwaltung von Funktionen, und jeder Version wird ein ARN mit einem Qualifier zugewiesen. AWS Lambda verwendet den $LATEST Qualifier für die neueste Version.

  7. Legen Sie unter Trigger type (Auslösertyp) eine oder beide der folgenden Optionen fest:

    • Konfigurationsänderungen — AWS Config ruft Ihre Lambda-Funktion auf, wenn sie eine Konfigurationsänderung erkennt.

    • Periodisch — AWS Config ruft Ihre Lambda-Funktion mit der von Ihnen gewählten Frequenz auf (z. B. alle 24 Stunden).

  8. Wenn die Triggertypen für Ihre Regel Konfigurationsänderungen beinhalten, geben Sie eine der folgenden Optionen für Umfang der Änderungen an, mit denen Ihre Lambda-Funktion AWS Config aufgerufen wird:

    • Alle Änderungen — Wenn eine von AWS Config aufgezeichnete Ressource erstellt, geändert oder gelöscht wurde.

    • Ressourcen: Wenn eine Ressource, die dem angegebenen Ressourcentyp oder dem Typ und dem Bezeichner entspricht, erstellt, geändert oder gelöscht wird

    • Tags: Wenn eine Ressource mit dem angegebenen Tag erstellt, geändert oder gelöscht wird

  9. Wenn die Triggertypen für Ihre Regel Periodisch beinhalten, geben Sie die Frequenz an, mit der Ihre Lambda-Funktion AWS Config aufgerufen wird.

  10. Geben Sie im Abschnitt Parameter alle Regelparameter, die Ihre AWS Lambda Funktion auswertet, sowie den gewünschten Wert an.

  11. Wählen Sie Weiter aus. Überprüfen Sie auf der Seite Überprüfen und erstellen die Details zu Ihrer Regel und klicken Sie auf Regelfunktion hinzufügen. Ihre neue Regel wird auf der Seite Regeln angezeigt.

    Bei Konformität wird die Meldung Evaluiert... angezeigt. bis AWS Config Sie die Bewertungsergebnisse Ihrer AWS Lambda Funktion erhalten. Wenn die Regel und die Funktion wie erwartet funktionieren, erhalten Sie nach einigen Minuten eine Zusammenfassung der Ergebnisse. Sie können die Ergebnisse über die Aktualisieren-Schaltfläche aktualisieren.

    Wenn die Regel oder Funktion nicht wie erwartet funktioniert, wird eine der folgenden Meldungen bei Compliance angezeigt:

    • Keine Ergebnisse gemeldet — Ihre Ressourcen wurden anhand der Regel AWS Config bewertet. Die Regel galt innerhalb ihres Umfangs nicht für die AWS -Ressourcen, die angegebenen Ressourcen wurden gelöscht oder die Auswertungsergebnisse wurden gelöscht. Wenn Sie die Auswertungsergebnisse abrufen möchten, aktualisieren Sie die Regel, ändern Sie Ihren Umfang oder wählen Sie Re-evaluate (Erneut bewerten) aus.

      Diese Meldung wird ggf. auch dann angezeigt, wenn die Regel keine Auswertungsergebnisse gemeldet hat.

    • Keine Ressourcen im Geltungsbereich — Ihre aufgezeichneten AWS Ressourcen AWS Config können nicht anhand dieser Regel bewertet werden, da sich keine Ihrer Ressourcen innerhalb des Gültigkeitsbereichs der Regel befindet. Auf der Seite AWS Config Settings können Sie festlegen, welche Ressourcen von erfasst werden.

    • Evaluations failed (Auswertungen fehlgeschlagen) – Weitere Informationen, mit denen Sie das Problem bestimmen können, finden Sie, indem Sie den Regelnamen auswählen und die Detailseite öffnen, um die Fehlermeldung anzuzeigen.

Anmerkung

Wenn Sie mit der AWS Config Konsole eine benutzerdefinierte Lambda-Regel erstellen, werden die entsprechenden Berechtigungen automatisch für Sie erstellt. Wenn Sie eine benutzerdefinierte Lambda-Regel mit dem erstellen AWS CLI, müssen Sie mit dem Befehl die AWS Config Erlaubnis erteilen, Ihre Lambda-Funktion aufzurufen. aws lambda add-permission Weitere Informationen finden Sie unter Verwenden von ressourcenbasierten Richtlinien für AWS Lambda (Lambda-Funktionsrichtlinien) im AWS Lambda Entwicklerhandbuch.

Bevor Sie die AWS Config Erlaubnis zum Aufrufen Ihrer Lambda-Funktion erteilen, lesen Sie den folgenden Abschnitt. Bewährte Sicherheitsmethoden für ressourcenbasierte AWS Lambda -Richtlinien

Bewährte Sicherheitsmethoden für ressourcenbasierte AWS Lambda -Richtlinien

Um zu vermeiden, dass Sie die Aufrufberechtigung für den gesamten Dienstprinzipalnamen (Service Principal Name, SPN) erteilen, um Ihre Lambda-Funktion aufzurufen, sollten Sie aus Sicherheitsgründen in der ressourcenbasierten Lambda-Richtlinie unbedingt den Zugriff mit sourceARN und/oder sourceAccountId in der Aufrufanforderung einschränken.

Das sourceARN ist der ARN der AWS Config Regel, die die Lambda-Funktion aufruft.

sourceAccountId ist die Konto-ID des Benutzers, der die Regel erstellt hat.

Durch die Beschränkung des Zugriffs in der ressourcenbasierten Lambda-Richtlinie können Sie sicherstellen, dass nur im Namen der erwarteten Benutzer und Szenarien auf Ihre Ressourcen zugegriffen AWS Lambda wird.

Um SPN-basierte Berechtigungen hinzuzufügen, müssen Sie die folgende CLI verwenden

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com

So fügen Sie eine basierte Berechtigung hinzu SourceAccountId

Bevor die Regel erstellt wird, können Sie der ressourcenbasierten Richtlinie mit der folgenden CLI eine sourceAccountId-basierte Berechtigung hinzufügen.

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com --source-account your account ID

Um sowohl eine als SourceArn auch eine SourceAccountId Basisberechtigung hinzuzufügen

Nachdem die Regel erstellt wurde, können Sie der ressourcenbasierten Richtlinie mit der folgenden CLI eine sourceARN-basierte Berechtigung hinzufügen. Dadurch kann nur ein bestimmter Regel-ARN die Lambda-Funktion aufrufen.

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com --source-account your account ID --source-arn ARN of the created config rule

Auswerten zusätzliche Ressourcentypen

Sie können benutzerdefinierte Lambda-Regeln erstellen, um Bewertungen für Ressourcentypen durchzuführen, die noch nicht von AWS Config aufgezeichnet wurden. Dies ist nützlich, wenn Sie die Einhaltung zusätzlicher Ressourcentypen bewerten möchten, für die derzeit AWS Config keine Daten erfasst werden. Eine Liste mit weiteren Ressourcentypen, die Sie mit benutzerdefinierten Lambda-Regeln auswerten können, finden Sie unter AWS -Ressourcen- und Eigenschaftstypen – Referenz.

Anmerkung

Wenn Sie ein benutzerdefiniertes Lambda für einen Ressourcentyp erstellen, der nicht von aufgezeichnet wurde AWS Config, muss die Regel den periodischen Triggertyp haben. Der Triggertyp für Konfigurationsänderungen wird nicht unterstützt. Weitere Informationen finden Sie unter Bewertungsmodus und Triggertypen für AWS Config Regeln.

Beispiel
  1. Sie möchten Amazon S3 Glacier-Tresore in Ihrem Konto auswerten. Amazon S3 Glacier-Tresorressourcen werden zurzeit nicht von AWS Config aufgezeichnet.

  2. Sie erstellen eine AWS Lambda Funktion, die bewertet, ob Ihre Amazon S3 Glacier-Tresore Ihren Kontoanforderungen entsprechen.

  3. Sie erstellen eine benutzerdefinierte Lambda-Regel mit dem Namen evaluate-glacier-vaultsund weisen der Regel dann Ihre AWS Lambda Funktion zu.

  4. AWS Config ruft Ihre Lambda-Funktion auf und bewertet dann die Amazon S3 Glacier-Tresore anhand Ihrer Regel.

  5. AWS Config gibt die Bewertungen zurück und Sie können die Konformitätsergebnisse für Ihre Regel einsehen.

Anmerkung

Sie können die Konfigurationsdetails in der AWS Config Timeline einsehen und in der AWS Config Konsole nach Ressourcen suchen, die dies AWS Config unterstützen. Wenn Sie so konfiguriert haben AWS Config , dass alle Ressourcentypen aufgezeichnet werden, werden neu unterstützte Ressourcen automatisch aufgezeichnet. Weitere Informationen finden Sie unter Unterstützte Ressourcentypen.