Erkennen Sie mit Drift-Erkennung nicht verwaltete Konfigurationsänderungen an Stacks und Ressourcen - AWS CloudFormation

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.

Erkennen Sie mit Drift-Erkennung nicht verwaltete Konfigurationsänderungen an Stacks und Ressourcen

Selbst wenn Sie Ihre Ressourcen verwalten CloudFormation, können Benutzer diese Ressourcen außerhalb von ändern. CloudFormation Benutzer können Ressourcen direkt bearbeiten, indem sie den zugrunde liegenden Service verwenden, der die Ressource erstellt hat. Sie können beispielsweise die EC2 Amazon-Konsole verwenden, um eine Server-Instance zu aktualisieren, die als Teil eines CloudFormation Stacks erstellt wurde. Einige Änderungen können versehentlich oder absichtlich vorgenommen werden, um auf zeitkritische Betriebsereignisse zu reagieren. Unabhängig davon CloudFormation können Änderungen, die außerhalb von vorgenommen werden, die Aktualisierung oder Löschung von Stacks erschweren. Mithilfe der Drift-Erkennung können Sie Stack-Ressourcen identifizieren, an denen außerhalb der CloudFormation Verwaltung Konfigurationsänderungen vorgenommen wurden. Sie können dann Korrekturmaßnahmen ergreifen, damit Ihre Stack-Ressourcen wieder mit ihren Definitionen in der Stack-Vorlage synchronisiert sind, z. B. die abgewichenen Ressourcen direkt aktualisieren, sodass sie mit ihrer Vorlagendefinition übereinstimmen. Die Auflösung von Abweichungen trägt dazu bei, die Konsistenz der Konfiguration und erfolgreiche Stack-Operationen zu gewährleisten.

Was ist Abweichung?

Mit der Abweichungserkennung können Sie feststellen, ob die tatsächliche Konfiguration eines Stacks von seiner erwarteten Konfiguration abweicht. Wird verwendet CloudFormation , um Abweichungen bei einem gesamten Stack oder bei einzelnen Ressourcen innerhalb des Stacks zu erkennen. Eine Ressource gilt als abgewichen, wenn einer ihrer tatsächlichen Eigenschaftswerte von den erwarteten Eigenschaftswerten abweicht. Dies gilt auch, wenn die Eigenschaft oder Ressource gelöscht wurde. Ein Stack gilt als abgewichen, wenn eine oder mehrere seiner Ressourcen abgewichen sind.

CloudFormation Ermittelt die erwarteten Eigenschaftswerte der Ressource, wie sie in der Stack-Vorlage definiert sind, und alle Werte, die als Vorlagenparameter angegeben wurden, um festzustellen, ob sich eine Ressource verändert hat. CloudFormation vergleicht dann diese erwarteten Werte mit den tatsächlichen Werten dieser Ressourceneigenschaften, so wie sie derzeit im Stapel vorhanden sind. Eine Ressource gilt als abgewichen, wenn eine oder mehrere ihrer Eigenschaften gelöscht wurden oder ihr Wert geändert wurde.

CloudFormation generiert detaillierte Informationen zu jeder Ressource im Stapel, die sich verändert hat.

CloudFormation erkennt Abweichungen bei den AWS Ressourcen, die die Drift-Erkennung unterstützen. Ressourcen, die die Drifterkennung nicht unterstützen, wird der Drift-Status NOT _ zugewiesenCHECKED. Eine Liste der AWS Ressourcen, die die Drift-Erkennung unterstützen, finden Sie unterUnterstützung für Ressourcentypen.

CloudFormation Unterstützt außerdem die Drift-Erkennung bei privaten Ressourcentypen, die bereitstellbar sind, d. h., deren Bereitstellungstyp entweder oder FULLY_MUTABLE ist. IMMUTABLE Um eine Abweichungserkennung für einen privaten Ressourcentyp ausführen zu können, muss die Standardversion des Ressourcentyps, der in Ihrem Konto registriert ist, bereitstellbar sein. Weitere Informationen zum Bereitstellungstyp von Ressourcen finden Sie in den ProvisioningType Parametern der DescribeTypeAktion in der AWS CloudFormation API Referenz und des DescribeTypeBefehls in der AWS CLI Befehlsreferenz. Weitere Informationen zu privaten Ressourcen finden Sie unterErweiterungen mit der CloudFormation Registry verwalten.

Sie können die Abweichungserkennung für Stacks mit folgenden Status durchführen: CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE und UPDATE_ROLLBACK_FAILED.

Bei der Erkennung von Drift auf einem Stack CloudFormation wird keine Drift auf verschachtelten Stacks erkannt, die zu diesem Stapel gehören. Weitere Informationen finden Sie unter Betten Sie Stapel mithilfe verschachtelter Stapel in andere Stapel ein. Stattdessen können Sie eine Abweichungserkennung direkt für den verschachtelten Stack durchführen.

Anmerkung

CloudFormation bestimmt nur die Drift für Eigenschaftswerte, die explizit festgelegt wurden, entweder über die Stack-Vorlage oder durch Angabe von Vorlagenparametern. Dies gilt nicht für Standardwerte für Ressourceneigenschaften. Damit eine Ressourceneigenschaft zur Bestimmung der Drift CloudFormation nachverfolgt werden kann, legen Sie den Eigenschaftswert explizit fest, auch wenn Sie ihn auf den Standardwert setzen.

Statuscodes für die Abweichungserkennung

Die Tabellen in diesem Abschnitt beschreiben die verschiedenen Statusarten, die bei der Abweichungserkennung verwendet werden:

  • Drift detection operation status (Abweichungserkennungs-Operationsstatus) beschreibt den aktuellen Zustand des Driftvorgangs.

  • Abweichungsstatus

    Bei Stack-Sets beschreibt dies den Abweichungsstatus des Stack-Sets als Ganzes basierend auf dem Abweichungsstatus der Stack-Instances, die zu ihm gehören.

    Bei Stack-Instances beschreibt dies den Abweichungsstatus der Stack-Instance basierend auf dem Abweichungsstatus des zugehörigen Stacks.

    Bei Stacks beschreibt dies den Abweichungsstatus des Stacks als Ganzes basierend auf dem Abweichungsstatus seiner Ressourcen.

  • Resource drift status (Ressourcen-Abweichungsstatus) beschreibt den Abweichungsstatus einer einzelnen Ressource.

In der folgenden Tabelle sind die Statuscodes aufgeführt, die Operationen zur Erkennung von Stack-Drift CloudFormation zugewiesen werden.

Drift Detection Operation Status (Abweichungserkennungs-Operationsstatus) Beschreibung

DETECTION_COMPLETE

Der Vorgang zur Erkennung der Stack-Abweichung wurde für alle Ressourcen im Stack, die die Abweichungserkennung unterstützen, erfolgreich abgeschlossen.

DETECTION_FAILED

Die Stack-Abweichungserkennung ist für mindestens eine Ressource im Stack fehlgeschlagen. Die Ergebnisse werden für Ressourcen verfügbar sein, bei denen die Drifterkennung CloudFormation erfolgreich abgeschlossen wurde.

DETECTION_IN_PROGRESS

Der Vorgang zur Erkennung der Stack-Abweichung ist derzeit im Gange.

In der folgenden Tabelle sind die Drift-Statuscodes aufgeführt, die CloudFormation Stacks zugewiesen werden.

Abweichungsstatus Beschreibung

DRIFTED

Bei Stacks: Der Stack unterscheidet sich von der erwarteten Vorlagenkonfiguration oder ist von ihr abgewichen. Ein Stack gilt als abgewichen, wenn eine oder mehrere seiner Ressourcen abgewichen sind.

Bei Stack-Instances: Eine Stack-Instance gilt als abgewichen, wenn der ihr zugeordnete Stack abgewichen ist.

Bei Stack-Sets: Ein Stack-Set gilt als abgewichen, wenn eine oder mehrere Stack-Instances abgewichen sind.

NOT_CHECKED

CloudFormation hat nicht geprüft, ob der Stack, das Stack-Set oder die Stack-Instance von der erwarteten Vorlagenkonfiguration abweicht.

IN_SYNC

Die aktuelle Konfiguration jeder unterstützten Ressource entspricht der erwarteten Vorlagenkonfiguration. Ein Stack, ein Stack-Set oder eine Stack-Instance ohne Ressourcen, die die Drifterkennung unterstützen, hat ebenfalls den Status IN_SYNC.

In der folgenden Tabelle sind die Drift-Statuscodes aufgeführt, die den CloudFormation Stack-Ressourcen zugewiesen werden.

Ressourcen-Abweichungsstatus Beschreibung

DELETED

Die Ressource unterscheidet sich von ihrer erwarteten Vorlagenkonfiguration, da die Ressource gelöscht wurde.

MODIFIED

Die Ressource unterscheidet sich von ihrer erwarteten Vorlagenkonfiguration.

NOT_CHECKED

CloudFormation hat nicht geprüft, ob die Ressource von der erwarteten Vorlagenkonfiguration abweicht.

IN_SYNC

Die aktuelle Konfiguration der Ressource entspricht der erwarteten Vorlagenkonfiguration.

In der folgenden Tabelle sind die Differenztyp-Statuscodes aufgeführt, die Ressourceneigenschaften CloudFormation zugewiesen werden, die sich von ihrer erwarteten Vorlagenkonfiguration unterscheiden.

Eigenschaftsabweichungstypen Beschreibung

ADD

Ein Wert wurde zu einer Ressourceneigenschaft hinzugefügt, die ein Array- oder ein Listen-Datentyp ist.

REMOVE

Die Eigenschaft wurde aus der aktuellen Ressourcenkonfiguration entfernt.

NOT_EQUAL

Der aktuelle Eigenschaftswert unterscheidet sich von seinem erwarteten Wert, der in der Stack-Vorlage definiert ist.

Überlegungen zur Erkennung von Abweichungen

Um die Abweichungserkennung für einen Stack erfolgreich durchführen zu können, muss ein Benutzer über die folgenden Berechtigungen verfügen:

  • Leseberechtigung für jede Ressource im Stack, die die Abweichungserkennung unterstützt. Wenn der Stack beispielsweise eine AWS::EC2::Instance-Ressource enthält, müssen Sie die Berechtigung ec2:DescribeInstances haben, um die Abweichungserkennung für den Stack durchzuführen.

  • cloudformation:DetectStackDrift

  • cloudformation:DetectStackResourceDrift

  • cloudformation:BatchDescribeTypeConfigurations

Weitere Informationen zum Einstellen von Berechtigungen in CloudFormation finden Sie unter. Steuerung des Zugriffs mit AWS Identity and Access Management

In bestimmten Ausnahmefällen CloudFormation kann es sein, dass nicht immer genaue Drift-Ergebnisse zurückgegeben werden können. Sie sollten sich dieser Sonderfälle bewusst sein, um die Ergebnisse Ihrer Abweichungserkennung richtig interpretieren zu können.

  • In bestimmten Fällen werden Objekte, die in Eigenschafts-Arrays enthalten sind, als Abweichung gemeldet, während sie in Wirklichkeit Standardwerte sind, die der Eigenschaft vom zugrunde liegenden Service, der für die Ressource verantwortlich ist, zur Verfügung gestellt werden.

  • Bestimmte Ressourcen haben Zuordnungsbeziehungen mit verwandten Ressourcen, sodass eine Ressource Eigenschaftswerte für eine andere Ressource hinzufügen oder entfernen könnte, die in derselben oder einer anderen Vorlage definiert sind. So können beispielsweise die Ressourcen AWS::EC2::SecurityGroupIngress und AWS::EC2::SecurityGroupEgress verwendet werden, um Werte in AWS::EC2::SecurityGroup-Ressourcen hinzuzufügen und zu entfernen. CloudFormation Analysiert in diesen Fällen die Stack-Vorlage auf Anlagen, bevor der Drift-Vergleich durchgeführt wird. Diese Analyse CloudFormation kann jedoch nicht stapelübergreifend durchgeführt werden und liefert daher möglicherweise keine genauen Drift-Ergebnisse, wenn sich Ressourcen, die angehängt sind, in unterschiedlichen Stapeln befinden.

    Die folgenden Ressourcen unterstützen die Abweichungserkennung und ermöglichen oder erfordern Zuordnungen aus anderen Ressourcen:

    Ressourcentyp Zuordnungsressourcentyp

    AWS::SNS::Topic

    AWS::SNS::Subscription

    AWS::IAM::User

    AWS::IAM::UserToGroupAddition

    AWS::IAM::Group

    AWS::IAM::Role

    AWS::IAM::User

    AWS::IAM::Policy

    AWS::IAM::ManagedPolicy

    AWS::ElasticLoadBalancingV2::Listener

    AWS::ElasticLoadBalancingV2::ListenerCertificate

    AWS::EC2::SecurityGroup

    AWS::EC2::SecurityGroupEgress

    AWS::EC2::SecurityGroupIngress

  • CloudFormation führt keine Drift-Erkennung für das KMSKeyId Eigentum von Ressourcen durch. Da AWS KMS Schlüssel durch mehrere Aliase referenziert werden können, CloudFormation kann für diese Eigenschaft keine gleichbleibend genauen Drift-Ergebnisse garantiert werden.

  • Es gibt bestimmte Ressourceneigenschaften, die Sie in Ihrer Stack-Vorlage angeben können und die naturgemäß nicht mit den Eigenschaften in den resultierenden Stack-Ressourcen verglichen werden können. CloudFormation Diese Eigenschaften können daher nicht in die Ergebnisse der Abweichungserkennung einbezogen werden. Solche Eigenschaften lassen sich in zwei Kategorien einteilen:

    • Eigenschaftswerte, die CloudFormation nicht ihrem ursprünglichen Ressourceneigenschaftswert in der Stackvorlage zugeordnet werden können.

      CloudFormation Kann beispielsweise den Quellcode einer Lambda-Funktion nicht dem CodeEigenschaftstyp der AWS::Lambda::FunctionRessource zuordnen und CloudFormation kann ihn daher nicht in die Ergebnisse der Drifterkennung einbeziehen.

    • Eigenschaftswerte, die der Service, der für die Ressource verantwortlich ist, nicht zurückgibt.

      Es gibt bestimmte Eigenschaftswerte, die von vornherein nie von dem Service zurückgegeben werden, zu dem die Ressource gehört. Diese enthalten in der Regel vertrauliche Informationen, wie Passwörter oder andere sensible Daten, die nicht preisgegeben werden sollten. Beispielsweise gibt der IAM Dienst niemals den Wert der Password Eigenschaft des Eigenschaftstyps zurück und CloudFormation kann ihn daher nicht in die IAM User LoginProfileErgebnisse der Drift-Erkennung einbeziehen.

    • Objekte in einem Array können Service-Standards sein – es muss sich nicht um eine manuell hinzugefügte Abweichung handeln.

  • Wenn Sie auf falsch positive Ergebnisse stoßen, senden Sie uns Ihre Kommentare über den Feedback-Link in der CloudFormation Konsole oder kontaktieren Sie uns über AWS re:Post

  • Einige Eigenschaften können Eingabewerte haben, die gleich, aber nicht identisch sind. Um Fehler zu vermeiden, sollten Sie sicherstellen, dass Ihre erwartete Konfiguration mit der tatsächlichen Konfiguration übereinstimmt.

    • Beispielsweise kann die erwartete Konfiguration der Ressourceneigenschaft 1 024 MB und die tatsächliche Konfiguration derselben Ressourceneigenschaft 1 GB betragen. 1 024 MB und 1 GB sind gleich, aber nicht identisch.

      Wenn die Abweichungserkennung für diese Ressourceneigenschaft ausgeführt wird, werden abweichende Ergebnisse signalisiert.

      Ändern Sie die erwartete Konfiguration der Ressourceneigenschaft zu 1 024 MB und führen Sie dann die Abweichungserkennung aus, um diesen Fehler zu vermeiden.