Rilevamento della deriva dello stack set utilizzando la console o CloudFormation AWS CLI - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Rilevamento della deriva dello stack set utilizzando la console o CloudFormation AWS CLI

Anche se gestisci gli stack e le risorse in essi contenute CloudFormation, gli utenti possono modificare tali risorse all'esterno. CloudFormation Gli utenti possono modificare le risorse direttamente utilizzando il servizio sottostante che ha creato la risorsa. Eseguendo il rilevamento della deviazione su un set di stack, è possibile determinare se una qualsiasi delle istanze dello stack appartenenti a quel set di stack differiscono, o sono state deviate, dalla configurazione prevista.

Come CloudFormation esegue il rilevamento della deriva su un set di pile

Quando CloudFormation esegue il rilevamento della deriva su un set di stack, esegue il rilevamento della deriva sullo stack associato a ciascuna istanza dello stack set. A tale scopo, CloudFormation confronta lo stato corrente di ogni risorsa nello stack con lo stato previsto di tale risorsa, come definito nel modello dello stack e in qualsiasi parametro di input specificato. Se lo stato corrente di una risorsa varia dallo stato previsto, tale risorsa viene considerata deviata. Se una o più risorse in uno stack sono deviate, lo stack stesso è considerato deviato e anche le istanze dello stack a cui lo stack è associato vengono considerate deviate. Se una o più istanze di stack in un set di stack sono state deviate, il set di stack stesso è considerato deviato.

Il rilevamento della deriva identifica le modifiche non gestite, ovvero le modifiche apportate agli stack esterni a. CloudFormation Le modifiche apportate direttamente CloudFormation a uno stack, anziché a livello di set di pila, non sono considerate deviazioni. Ad esempio, supponiamo di avere uno stack associato a un'istanza di stack di un set di stack. Se si aggiorna lo stack CloudFormation per utilizzare un modello diverso, ciò non viene considerato deriva, anche se quello stack ora ha un modello diverso da qualsiasi altro stack appartenente allo stack set. Questo perché lo stack corrisponde ancora al modello e alla configurazione dei parametri prevista in. CloudFormation

Per informazioni dettagliate su come CloudFormation esegue il rilevamento della deriva su una pila, vedere. Rileva le modifiche di configurazione non gestite agli stack e alle risorse con il rilevamento della deriva

Poiché CloudFormation esegue il rilevamento della deriva su ogni pila singolarmente, tiene conto di tutti i valori dei parametri sostituiti per determinare se una pila ha subito una deriva. Per ulteriori informazioni sull'override dei parametri del modello nelle istanze dello stack, consulta Sovrascrivi i valori dei parametri utilizzando la CloudFormation console o AWS CLI.

Se esegui il rilevamento della deriva direttamente su uno stack associato a un'istanza dello stack, tali risultati non sono disponibili nella pagina della console. StackSets

Per rilevare la deriva su uno stack set (console)
  1. Apri la AWS CloudFormation console in https://console.aws.amazon.com /cloudformation.

  2. Nella StackSetspagina, seleziona il set di pila su cui desideri eseguire il rilevamento della deriva.

  3. Dal menu Actions (Operazioni), selezionare Detect drifts (Rileva deviazioni).

    CloudFormation visualizza una barra informativa che indica che il rilevamento della deriva è stato avviato per il set di pila selezionato.

  4. Facoltativo: per monitorare lo stato di avanzamento dell'operazione di rilevamento della deviazione:

    1. Fare clic sul nome del set di stack per visualizzare la pagina dei Stackset details (Dettagli del set di stack).

    2. Selezionare la scheda Operations (Operazioni), selezionare l'operazione di rilevamento della deviazione e quindi selezionare View drift details (Visualizza dettagli deviazione).

    CloudFormation visualizza la finestra di dialogo dei dettagli dell'operazione.

  5. Attendere il CloudFormation completamento dell'operazione di rilevamento della deriva. Al termine dell'operazione di rilevamento della deriva, CloudFormation aggiorna Drift status e Last drift check time per lo stack set. Questi campi sono elencati nella scheda Panoramica della pagina dei StackSet dettagli per il set di stack selezionato.

    L'operazione di rilevamento della deviazione potrebbe richiedere del tempo, a seconda del numero di istanze dello stack incluse nel set di stack e del numero di risorse incluse nel set di stack. È possibile eseguire una sola operazione di rilevamento della deriva su un determinato set di stack alla volta. CloudFormation continua l'operazione di rilevamento della deriva anche dopo aver chiuso la barra delle informazioni.

  6. Per esaminare i risultati del rilevamento della deviazione per le istanze dello stack in un set di stack, selezionare la scheda Stack instances (Istanze di stack).

    La colonna Stack name (Nome stack) elenca il nome dello stack associato a ogni istanza dello stack e la colonna di Drift status (Stato deviazione) elenca lo stato della deviazione di tale stack. Uno stack è considerato come deviato se una o più delle relative risorse risultano deviate.

  7. Per esaminare i risultati del rilevamento della deviazione per lo stack associato a un'istanza dello stack specifica:

    1. Scegli la scheda Operazioni.

    2. Seleziona l'operazione di deviazione per la quale desideri visualizzare i risultati del rilevamento della deviazione. Un pannello di suddivisione mostrerà lo stato e il motivo dell'istanza dello stack per l'operazione selezionata. Per un'operazione di deviazione, la colonna del motivo dello stato mostra lo stato di deviazione di un'istanza stack.

    3. Scegli l'istanza dello stack per cui desideri visualizzare i dettagli della deviazione, quindi seleziona Visualizza deviazioni delle risorse. Nella tabella Stato deviazione risorsasulla pagina Deviazione delle risorse elenca ogni risorsa di stack, il relativo stato di deviazione e l'ultima volta in cui è stato iniziato il rilevamento sulla risorsa. L'ID logico e l'ID fisico di ogni risorsa sono visualizzati per consentirti di identificarla.

  8. È possibile ordinare le risorse in base al loro stato deviazione, utilizzando la colonna Drift (Deviazione).

    Per visualizzare i dettagli su una risorsa modificata:

    1. Con la risorsa selezionata, scegli Visualizza dettagli deviazione.

      CloudFormation visualizza la pagina di dettaglio della deriva per quella particolare risorsa. Questa pagina elenca le differenze tra le risorse. Elenca anche i valori delle proprietà previsti e correnti della risorsa.

      Nota

      Se lo stack appartiene a una Regione e a un account diversi da quelli a cui sei attualmente connesso, il pulsante Rileva deviazione sarà disabilitato e non potrai visualizzare i dettagli.

Per rilevare la deriva su uno stack set ()AWS CLI

Per rilevare la deriva su un intero stack utilizzando il AWS CLI, utilizzate i seguenti comandi: aws cloudformation

  • detect-stack-set-drift per avviare un'operazione di rilevamento della deviazione su uno stack.

  • describe-stack-set-operation per monitorare lo stato dell'operazione di rilevamento della deviazione di stack.

  • Una volta completata l'operazione di rilevamento della deviazione, utilizzare i seguenti comandi per restituire le informazioni di deviazione desiderate:

    • Utilizzare describe-stack-setper restituire informazioni dettagliate sullo stack set, incluse informazioni dettagliate sull'ultima operazione di deriva completata eseguita sullo stack set. (Le informazioni sulle operazioni di deviazione in corso non sono incluse).

    • Utilizzare list-stack-instancesper restituire un elenco di istanze dello stack appartenenti allo stack set, incluso lo stato di deriva e l'ora dell'ultima deriva controllata di ciascuna istanza.

    • Utilizzare describe-stack-instanceper restituire informazioni dettagliate su una specifica istanza dello stack, incluso lo stato di deriva e l'ora dell'ultima deriva controllata.

    • Utilizzare list-stack-instance-resource-driftsper restituire informazioni dettagliate sullo stato di deriva di ogni risorsa in un'istanza stack e informazioni di riepilogo sulle derive delle risorse per un'istanza stack.

  1. Utilizza detect-stack-set-drift per rilevare la deviazione su un intero set di stack e le relative istanze di stack associate.

    Nell'esempio seguente viene avviato il rilevamento della deviazione nel set di stack stack-set-drift-example.

    aws cloudformation detect-stack-set-drift \ --stack-set-name stack-set-drift-example

    Output:

    { "OperationId": "c36e44aa-3a83-411a-b503-cb611example" }
  2. Poiché le operazioni di rilevamento della deviazione di stack possono durare a lungo, utilizzare describe-stack-set-operation per monitorare lo stato dell'operazione di deviazione. Questo comando utilizza l'ID dell'operazione della deviazione di stack restituito dal comando detect-stack-set-drift.

    Negli esempi seguenti viene utilizzato l'ID operazione dell'esempio precedente per restituire informazioni sull'operazione di rilevamento della deviazione del set di stack. In questo esempio, l'operazione è ancora in esecuzione. Delle sette istanze dello stack associate a questo set di stack, un'istanza dello stack è già stata trovata deviata, due istanze sono sincronizzate e il rilevamento della deviazione per le restanti quattro istanze dello stack è ancora in corso. Poiché un'istanza è stata spostata, lo stato della deviazione del set di stack stesso è ora DRIFTED.

    aws cloudformation describe-stack-set-operation \ --stack-set-name stack-set-drift-example \ --operation-id c36e44aa-3a83-411a-b503-cb611example

    Output:

    { "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" } }

    Eseguendo lo stesso comando in un secondo momento, questo esempio mostra le informazioni restituite una volta completata l'operazione di rilevamento della deviazione. Due delle sette istanze di stack totali associate a questo set di stack sono deviate, rendendo lo stato di deviazione dello stack DRIFTED.

    aws cloudformation describe-stack-set-operation \ --stack-set-name stack-set-drift-example \ --operation-id c36e44aa-3a83-411a-b503-cb611example

    Output:

    { "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" } }
  3. Al termine dell'operazione di rilevamento della deviazione del set di stack, utilizza i comandi describe-stack-set, list-stack-instances, describe-stack-instance e list-stack-instance-resource-drifts per esaminare i risultati.

    Il comando describe-stack-set include le stesse informazioni dettagliate sulla deviazione restituite dal comando describe-stack-set-operation.

    aws cloudformation describe-stack-set \ --stack-set-name stack-set-drift-example

    Output:

    { "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" } }

    È possibile utilizzare il comando list-stack-instances per restituire informazioni di riepilogo sulle istanze dello stack associate a un set di stack, incluso lo stato di deviazione di ogni istanza dello stack.

    In questo esempio, l'esecuzione di list-stack-instances sul set di stack di esempio con il filtro dello stato della deviazione impostato su DRIFTED consente di identificare le due istanze di stack che hanno uno stato di deviazione pari a DRIFTED.

    aws cloudformation list-stack-instances \ --stack-set-name stack-set-drift-example \ --filters Name=DRIFT_STATUS,Values=DRIFTED

    Output:

    { "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] ] }

    Il comando describe-stack-instance restituisce anche queste informazioni, ma per una singola istanza di stack, come nell'esempio riportato di seguito.

    aws cloudformation describe-stack-instance \ --stack-set-name stack-set-drift-example \ --stack-instance-account 012345678910 --stack-instance-region us-east-1

    Output:

    { "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" } }
  4. Dopo aver identificato quali istanze dello stack sono andate alla deriva, puoi utilizzare le informazioni sulle istanze dello stack restituite dai comandi o da eseguire list-stack-instances describe-stack-instance list-stack-instance-resource-drifts. Questo comando restituisce informazioni dettagliate su quali risorse dello stack sono state spostate per una particolare operazione di drift.

    L'esempio seguente utilizza il parametro stack-instance-resource-drift-statuses per richiedere le informazioni sulla deviazione dello stack per le risorse che sono state modificate o eliminate nell'esempio dell'operazione di deviazione precedente. La richiesta restituisce informazioni sulla risorsa che è stata modificata, tra cui dettagli su due proprietà della stessa i cui valori sono stati modificati. Nessuna risorsa è stata eliminata.

    aws cloudformation list-stack-instance-resource-drifts \ --stack-set-name my-stack-set-with-resource-drift \ --stack-instance-account 123456789012 \ --stack-instance-region us-east-1 \ --operation-id c36e44aa-3a83-411a-b503-cb611example \ --stack-instance-resource-drift-statuses MODIFIED DELETED

    Output:

    { "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" } ] }

Arresto del rilevamento delle deviazioni su un set di stack

Poiché il rilevamento della deviazione in un set di stack può essere un'operazione a esecuzione prolungata, potrebbero esserci casi in cui si desidera interrompere un'operazione di rilevamento della deviazione attualmente in esecuzione su un set di stack.

Per interrompere il rilevamento della deriva su uno stack impostato utilizzando il AWS Management Console
  1. Apri la AWS CloudFormation console in https://console.aws.amazon.com /cloudformation.

  2. Nella StackSetspagina, seleziona il nome dello stack set.

    CloudFormation visualizza la pagina dei StackSets dettagli per il set di stack selezionato.

  3. Nella pagina dei StackSets dettagli, selezionare la scheda Operazioni, quindi selezionare l'operazione di rilevamento della deriva.

  4. Selezionare Stop operation (Interrompi operazione).

Per interrompere il rilevamento della deriva su una pila impostata utilizzando il AWS CLI
  • Utilizzo dell'stop-stack-set-operationcomando. È necessario fornire sia il nome del set di stack sia l'ID operazione dell'operazione del set di stack di rilevamento della deviazione.

    aws cloudformation stop-stack-set-operation \ --stack-set-name stack-set-drift-example \ --operation-id 624af370-311a-11e8-b6b7-500cexample