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.
Drifterkennung durchführen am CloudFormation StackSets
Selbst wenn Sie Ihre Stacks und die darin enthaltenen Ressourcen verwalten CloudFormation, können Benutzer diese Ressourcen außerhalb von CloudFormation ändern. Benutzer können Ressourcen direkt bearbeiten, indem sie den zugrunde liegenden Service verwenden, der die Ressource erstellt hat. Indem Sie eine Drift-Erkennung für eine durchführen StackSet, können Sie feststellen, ob sich eine der Stack-Instances, die zu dieser Gruppe gehören, von ihrer erwarteten Konfiguration StackSet abweicht oder von der erwarteten Konfiguration abweicht.
Themen
Wie CloudFormation funktioniert die Drifterkennung auf einem StackSet
Wenn eine Drifterkennung auf einem CloudFormation durchgeführt wird StackSet, führt sie eine Drifterkennung auf dem Stack durch, der jeder Stack-Instance in der zugeordnet ist StackSet. CloudFormation vergleicht dazu den aktuellen Status jeder Ressource im Stack mit dem erwarteten Zustand dieser Ressource, wie in der Vorlage des Stacks definiert, und den angegebenen Eingabeparametern. Wenn der aktuelle Status einer Ressource vom erwarteten Zustand abweicht, wird davon ausgegangen, dass diese Ressource abgewichen ist. Wenn eine oder mehrere Ressourcen in einem Stack abgewichen sind, wird der Stack selbst als abgewichen angesehen, und die Stack-Instances, denen der Stack zugeordnet ist, werden auch als abgewichen angesehen. Wenn sich eine oder mehrere Stack-Instances in einem verändert StackSet haben, wird davon ausgegangen, dass die Stack-Instances StackSet selbst gedriftet sind.
Die Drift-Erkennung identifiziert nicht verwaltete Änderungen, d. h. Änderungen, die an Stacks außerhalb von vorgenommen wurden. CloudFormation Änderungen, die direkt und nicht CloudFormation auf StackSet Ebene eines Stacks vorgenommen werden, gelten nicht als Drift. Nehmen wir zum Beispiel an, Sie haben einen Stack, der mit einer Stack-Instanz von a verknüpft ist StackSet. Wenn Sie diesen Stack aktualisieren, um eine andere Vorlage zu verwenden, wird dies nicht als Abweichung angesehen, obwohl dieser Stack jetzt eine andere Vorlage hat als alle anderen Stacks, die zu dem StackSet gehören. CloudFormation Dies liegt daran, dass der Stack immer noch mit seiner erwarteten Vorlagen- und Parameterkonfiguration in CloudFormation übereinstimmt.
Ausführliche Informationen darüber, wie die CloudFormation Drifterkennung auf einem Stack durchgeführt wird, finden Sie unterErkennen Sie mit Drift-Erkennung nicht verwaltete Konfigurationsänderungen an Stacks und Ressourcen.
Da die CloudFormation Drifterkennung für jeden Stapel einzeln durchgeführt wird, werden bei der Bestimmung, ob ein Stapel driftet ist, alle überschriebenen Parameterwerte berücksichtigt. Weitere Hinweise zum Überschreiben von Vorlagenparametern in Stack-Instances finden Sie unter Überschreiben Sie Parameterwerte auf Stacks in Ihrem CloudFormation StackSet.
Wenn Sie die Drifterkennung direkt auf einem Stack durchführen, der einer Stack-Instance zugeordnet ist, sind diese Drift-Ergebnisse nicht auf der StackSetsKonsolenseite verfügbar.
Erkennen Sie Drift auf einer StackSet (Konsole)
Um Drift auf einem zu erkennen StackSet
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie auf der StackSetsSeite die StackSet aus, für die Sie die Drift-Erkennung durchführen möchten.
-
Wählen Sie im Menü Aktionen die Option Abweichungen erkennen aus.
CloudFormation zeigt eine Informationsleiste an, in der angegeben wird, dass die Drifterkennung für das gewählte Objekt eingeleitet wurde StackSet.
-
Optional: So überwachen Sie den Fortschritt des Abweichungserkennungsvorgangs:
-
Wählen Sie den StackSet Namen aus, um die Stackset-Detailseite anzuzeigen.
-
Wählen Sie die Registerkarte Vorgänge, den Abweichungserkennungsvorgang und dann Abweichungsdetails anzeigen aus.
CloudFormation zeigt das Dialogfeld mit den Vorgangsdetails an.
-
-
Warten Sie, bis der Vorgang zur Drifterkennung CloudFormation abgeschlossen ist. Wenn der Vorgang zur Drifterkennung abgeschlossen ist, werden der Driftstatus und die Uhrzeit der letzten Driftprüfung für Ihren CloudFormation aktualisiert StackSet. Diese Felder sind auf der Registerkarte „Übersicht“ der StackSet Detailseite für die ausgewählten Felder aufgeführt StackSet.
Die Drift-Erkennung kann einige Zeit in Anspruch nehmen, abhängig von der Anzahl der in der StackSet enthaltenen Stack-Instances und der Anzahl der in der enthaltenen Ressourcen StackSet. Sie können jeweils nur einen einzigen Drifterkennungsvorgang für eine bestimmte StackSet Datei ausführen. CloudFormation setzt die Drifterkennung fort, auch wenn Sie die Informationsleiste schließen.
-
Um die Ergebnisse der Drifterkennung für die Stack-Instances in a zu überprüfen StackSet, wählen Sie die Registerkarte Stack-Instances aus.
In der Spalte Stack-Name wird der Name des Stacks aufgeführt, der jeder Stack-Instance zugeordnet ist, und in der Spalte Abweichungsstatus wird der Abweichungsstatus dieses Stacks aufgeführt. Ein Stack gilt als abgewichen, wenn eine oder mehrere seiner Ressourcen abgewichen sind.
-
So überprüfen Sie die Ergebnisse der Abweichungserkennung für den Stack, der mit einer bestimmten Stack-Instance verknüpft ist:
-
Wählen Sie die Registerkarte Vorgänge aus.
-
Wählen Sie den Abweichungsvorgang aus, für den Sie die Ergebnisse der Abweichungserkennung ansehen möchten. Der Status der Stack-Instance und der Grund für den ausgewählten Vorgang werden in einem geteilten Fenster angezeigt. Bei einem Abweichungsvorgang wird in der Spalte „Statusgrund“ der Abweichungsstatus einer Stack-Instance angezeigt.
-
Wählen Sie die Stack-Instance aus, für die Sie Abweichungsdetails sehen möchten, und gehen Sie dann auf Ressourcenabweichungen anzeigen. In der Tabelle Ressourcenabweichungsstatus auf der Seite Ressourcenabweichungen werden alle Stack-Ressourcen mit ihrem jeweiligen Abweichungsstatus aufgeführt und Sie sehen, wann für die einzelnen Ressourcen zuletzt die Abweichungserkennung eingeleitet wurde. Die logische ID und die physische ID jeder Ressource werden angezeigt, um Ihnen bei der Identifizierung zu helfen.
-
-
Sie können die Ressourcen basierend auf ihrem Abweichungsstatus mithilfe der Spalte Drift status (Abweichungsstatus) sortieren.
So zeigen Sie die Details zu einer geänderten Ressource an:
-
Wenn Sie die Ressource ausgewählt haben, wählen Sie Abweichungsdetails anzeigen aus.
CloudFormation zeigt die Drift-Detailseite für diese bestimmte Ressource an. Auf dieser Seite werden die Unterschiede der Ressource aufgelistet. Außerdem werden die erwarteten und aktuellen Eigenschaftswerte der Ressource aufgeführt.
Anmerkung
Wenn die zugehörige Region bzw. das Konto des Stacks von der Region und dem Konto abweichen, in dem Sie derzeit angemeldet sind, ist die Schaltfläche Abweichung erkennen deaktiviert und Sie können die Details nicht anzeigen.
-
Erkennt Drift auf einem StackSet (AWS CLI)
Gehen Sie wie folgt vor AWS CLI, um Drift auf einem gesamten Stack mithilfe von zu erkennen:
Um Drift auf einem zu erkennen StackSet
-
Verwenden Sie den detect-stack-set-driftBefehl, um Drift bei einer gesamten Stack-Instance StackSet und den zugehörigen Stack-Instances zu erkennen.
Das folgende Beispiel initiiert die Drifterkennung auf dem StackSet
stack-set-drift-example
.aws cloudformation detect-stack-set-drift \ --stack-set-name
stack-set-drift-example
Ausgabe:
{ "OperationId": "c36e44aa-3a83-411a-b503-cb611example" }
-
Da StackSet Drifterkennungsvorgänge lange dauern können, verwenden Sie den describe-stack-set-operationBefehl, um den Status des Drift-Vorgangs zu überwachen. Dieser Befehl verwendet die vom detect-stack-set-drift Befehl zurückgegebene StackSet Vorgangs-ID.
In den folgenden Beispielen wird die Operations-ID aus dem vorherigen Beispiel verwendet, um Informationen über den Vorgang zur StackSet Drifterkennung zurückzugeben. In diesem Beispiel wird der Vorgang noch ausgeführt. Von den sieben damit StackSet verknüpften Stack-Instances wurde bei einer Stack-Instance bereits ein Drift festgestellt, zwei Instances sind synchron und die Drift-Erkennung für die verbleibenden vier Stack-Instances ist noch im Gange. Da bei einer Instance ein Drift-Status eingetreten ist, ist der Drift-Status der Instance StackSet jetzt.
DRIFTED
aws cloudformation describe-stack-set-operation \ --stack-set-name
stack-set-drift-example
\ --operation-idc36e44aa-3a83-411a-b503-cb611example
Ausgabe:
{ "StackSetOperation": { "Status": "RUNNING", "AdministrationRoleARN": "arn:aws:iam::123456789012:role/AWSCloudFormationStackSetAdministrationRole", "OperationPreferences": { "RegionOrder": [] }, "ExecutionRoleName": "AWSCloudFormationStackSetExecutionRole", "StackSetDriftDetectionDetails": { "DriftedStackInstancesCount": 1, "TotalStackInstancesCount": 7, "LastDriftCheckTimestamp": "2019-12-04T20:34:28.543Z", "InSyncStackInstancesCount": 2, "InProgressStackInstancesCount": 4, "DriftStatus": "DRIFTED", "FailedStackInstancesCount": 0 }, "Action": "DETECT_DRIFT", "CreationTimestamp": "2019-12-04T20:33:13.673Z", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22example", "OperationId": "c36e44aa-3a83-411a-b503-cb611example" } }
Wenn Sie den gleichen Befehl später ausführen, werden in diesem Beispiel die Informationen angezeigt, die zurückgegeben werden, sobald der Abweichungserkennungsvorgang abgeschlossen ist. Zwei der insgesamt sieben Stack-Instances, die damit in Verbindung stehen, StackSet haben sich verändert, sodass der Drift-Status der Instances StackSet sich wie folgt darstellt.
DRIFTED
aws cloudformation describe-stack-set-operation \ --stack-set-name
stack-set-drift-example
\ --operation-idc36e44aa-3a83-411a-b503-cb611example
Ausgabe:
{ "StackSetOperation": { "Status": "SUCCEEDED", "AdministrationRoleARN": "arn:aws:iam::123456789012:role/AWSCloudFormationStackSetAdministrationRole", "OperationPreferences": { "RegionOrder": [] } "ExecutionRoleName": "AWSCloudFormationStackSetExecutionRole", "EndTimestamp": "2019-12-04T20:37:32.829Z", "StackSetDriftDetectionDetails": { "DriftedStackInstancesCount": 2, "TotalStackInstancesCount": 7, "LastDriftCheckTimestamp": "2019-12-04T20:36:55.612Z", "InSyncStackInstancesCount": 5, "InProgressStackInstancesCount": 0, "DriftStatus": "DRIFTED", "FailedStackInstancesCount": 0 }, "Action": "DETECT_DRIFT", "CreationTimestamp": "2019-12-04T20:33:13.673Z", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22example", "OperationId": "c36e44aa-3a83-411a-b503-cb611example" } }
-
Wenn der Vorgang zur StackSet Drifterkennung abgeschlossen ist, verwenden Sie die list-stack-instance-resource-drifts Befehle describe-stack-setlist-stack-instances,describe-stack-instance, und, um die Ergebnisse zu überprüfen.
Der describe-stack-set-Befehl enthält dieselben detaillierten Abweichungsinformationen, die vom describe-stack-set-operation-Befehl zurückgegeben werden.
aws cloudformation describe-stack-set \ --stack-set-name
stack-set-drift-example
Ausgabe:
{ "StackSet": { "Status": "ACTIVE", "Description": "Demonstration of drift detection on stack sets.", "Parameters": [], "Tags": [ { "Value": "Drift detection", "Key": "Feature" } ], "ExecutionRoleName": "AWSCloudFormationStackSetExecutionRole", "Capabilities": [], "AdministrationRoleARN": "arn:aws:iam::123456789012:role/AWSCloudFormationStackSetAdministrationRole", "StackSetDriftDetectionDetails": { "DriftedStackInstancesCount": 2, "TotalStackInstancesCount": 7, "LastDriftCheckTimestamp": "2019-12-04T20:36:55.612Z", "InProgressStackInstancesCount": 0, "DriftStatus": "DRIFTED", "DriftDetectionStatus": "COMPLETED", "InSyncStackInstancesCount": 5, "FailedStackInstancesCount": 0 }, "StackSetARN": "arn:aws:cloudformation:us-east-1:123456789012:stackset/stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22example", "TemplateBody": [details omitted], "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22ebexample", "StackSetName": "stack-set-drift-example" } }
Sie können den list-stack-instancesBefehl verwenden, um zusammenfassende Informationen über die Stack-Instances zurückzugeben, die mit a verknüpft sind StackSet, einschließlich des Drift-Status jeder Stack-Instance.
In diesem Beispiel
DRIFTED
können Sie list-stack-instances anhand des Beispiels StackSet mit eingestelltem Driftstatus-Filter ermitteln, welche zwei Stack-Instances den Drift-Status habenDRIFTED
.aws cloudformation list-stack-instances \ --stack-set-name
stack-set-drift-example
\ --filtersName=DRIFT_STATUS,Values=DRIFTED
Ausgabe:
{ "Summaries": [ { "StackId": "arn:aws:cloudformation:eu-west-1:123456789012:stack/StackSet-stack-set-drift-example-b0fb6083-60c0-4e39-af15-2f071e0db90c/0e4f0940-16d4-11ea-93d8-0641cexample", "Status": "CURRENT", "Account": "012345678910", "Region": "eu-west-1", "LastDriftCheckTimestamp": "2019-12-04T20:37:32.687Z", "DriftStatus": "DRIFTED", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22eexample", "LastOperationId": "c36e44aa-3a83-411a-b503-cb611example" }, { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/StackSet-stack-set-drift-example-b7fde68e-e541-44c2-b33d-ef2e2988071a/008e6030-16d4-11ea-8090-12f89example", "Status": "CURRENT", "Account": "123456789012", "Region": "us-east-1", "LastDriftCheckTimestamp": "2019-12-04T20:34:28.275Z", "DriftStatus": "DRIFTED", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22eexample", "LastOperationId": "c36e44aa-3a83-411a-b503-cb611example" },
[additional stack instances omitted]
] }Der describe-stack-instance-Befehl gibt auch diese Informationen zurück, aber für eine einzelne Stack-Instance, wie im folgenden Beispiel.
aws cloudformation describe-stack-instance \ --stack-set-name
stack-set-drift-example
\ --stack-instance-account012345678910
--stack-instance-regionus-east-1
Ausgabe:
{ "StackInstance": { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/StackSet-stack-set-drift-example-b7fde68e-e541-44c2-b33d-ef2e2988071a/008e6030-16d4-11ea-8090-12f89example", "Status": "CURRENT", "Account": "123456789012", "Region": "us-east-1", "ParameterOverrides": [], "DriftStatus": "DRIFTED", "LastDriftCheckTimestamp": "2019-12-04T20:34:28.275Z", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22eexample", "LastOperationId": "c36e44aa-3a83-411a-b503-cb611example" } }
-
Sobald Sie festgestellt haben, welche Stack-Instances sich verändert haben, können Sie die Informationen über die Stack-Instances verwenden, die von den describe-stack-instance Befehlen list-stack-instances oder zurückgegeben werden, um den list-stack-instance-resource-driftsBefehl auszuführen. Dieser Befehl gibt detaillierte Informationen darüber zurück, welche Ressourcen im Stack für einen bestimmten Abweichungsvorgang abgewichen sind.
Im folgenden Beispiel wird der Parameter
--stack-instance-resource-drift-statuses
verwendet, um Informationen zur Stack-Abweichung für die Ressourcen abzurufen, die im Abweichungsvorgang aus dem vorherigen Beispiel geändert oder gelöscht wurden. Die Anfrage gibt Informationen über die eine Ressource zurück, die geändert wurde, einschließlich Details über zwei ihrer Eigenschaften und deren geänderte Werte. Es wurden keine Ressourcen gelöscht.aws cloudformation list-stack-instance-resource-drifts \ --stack-set-name
my-stack-set-with-resource-drift
\ --stack-instance-account123456789012
\ --stack-instance-regionus-east-1
\ --operation-idc36e44aa-3a83-411a-b503-cb611example
\ --stack-instance-resource-drift-statusesMODIFIED DELETED
Ausgabe:
{ "Summaries": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/my-stack-set-with-resource-drift/489e5570-df85-11e7-a7d9-50example", "ResourceType": "AWS::SQS::Queue", "Timestamp": "2018-03-26T17:23:34.489Z", "PhysicalResourceId": "https://sqs.us-east-1.amazonaws.com/123456789012/my-stack-with-resource-drift-Queue-494PBHCO76H4", "StackResourceDriftStatus": "MODIFIED", "PropertyDifferences": [ { "PropertyPath": "/DelaySeconds", "ActualValue": "120", "ExpectedValue": "20", "DifferenceType": "NOT_EQUAL" }, { "PropertyPath": "/RedrivePolicy/maxReceiveCount", "ActualValue": "12", "ExpectedValue": "10", "DifferenceType": "NOT_EQUAL" } ], "LogicalResourceId": "Queue" } ] }
Stoppen der Drifterkennung auf einem StackSet
Da die Drifterkennung auf einem ein langwieriger Vorgang sein StackSet kann, kann es vorkommen, dass Sie einen Drifterkennungsvorgang beenden möchten, der gerade auf einem StackSet ausgeführt wird.
Um die Drifterkennung auf einer StackSet (Konsole) zu beenden
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie auf der StackSetsSeite den Namen des. StackSet
CloudFormation zeigt die StackSets Detailseite für das Ausgewählte an StackSet.
-
Wählen Sie auf der StackSets Detailseite die Registerkarte Operationen und dann den Vorgang zur Drifterkennung aus.
-
Wählen Sie Vorgang stoppen aus.
Um die Drifterkennung auf einem StackSet (AWS CLI) zu beenden
-
Verwenden Sie den stop-stack-set-operation-Befehl. Sie müssen sowohl den StackSet Namen als auch die Vorgangs-ID des StackSet Drifterkennungsvorgangs angeben.
aws cloudformation stop-stack-set-operation \ --stack-set-name
stack-set-drift-example
\ --operation-id624af370-311a-11e8-b6b7-500cexample