AWSSupport-ContainEC2Instance - AWS Systems Manager Referenz zum Automatisierungs-Runbook

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.

AWSSupport-ContainEC2Instance

Beschreibung

Das AWSSupport-ContainEC2Instance Runbook bietet eine automatisierte Lösung für das im Artikel Wie isoliere ich die Amazon EC2 EC2-Instance, wenn ich mit einer potenziell kompromittierten oder verdächtigen Instanz konfrontiert werde? Die Automatisierung verzweigt sich je nach den von Ihnen angegebenen Werten.

Wie funktioniert sie?

Dieses Automation-Runbook AWSSupport-ContainEC2Instance führt die Netzwerkeindämmung einer Amazon EC2 EC2-Instance durch eine Reihe koordinierter Schritte durch. Wenn es im Contain Modus ausgeführt wird, validiert es zunächst die Eingabeparameter und prüft, ob die Instance nicht beendet wurde. Anschließend wird die aktuelle Sicherheitsgruppenkonfiguration zur späteren Wiederherstellung in einem Amazon S3 S3-Bucket gesichert. Das Runbook erstellt zwei Sicherheitsgruppen: eine temporäre „All-Access-Sicherheitsgruppe“ und eine abschließende Sicherheitsgruppe „Containment“. Dabei werden die Netzwerkschnittstellen der Instance schrittweise von ihren ursprünglichen Sicherheitsgruppen zur Sicherheitsgruppe für alle Zugriffe und schließlich zur Containment-Sicherheitsgruppe umgestellt. Falls angegeben, erstellt es sowohl unverschlüsselte als auch verschlüsselte AMI Backups der Instance. Für Instances in einer Auto Scaling Scaling-Gruppe werden die erforderlichen Änderungen an der Auto Scaling Scaling-Gruppe vorgenommen und die Instance in den Standby-Status versetzt. Wenn es im Release Modus ausgeführt wird, stellt es die ursprüngliche Netzwerkkonfiguration der Instance mithilfe der gesicherten Einstellungen von Amazon S3 wieder her. Das Runbook unterstützt einen DryRun Parameter, mit dem eine Vorschau von Aktionen angezeigt werden kann, ohne dass Änderungen vorgenommen werden müssen, und umfasst umfassende Mechanismen zur Fehlerbehandlung und Berichterstattung in den gesamten Containment- und Release-Workflows.

Wichtig
  • Dieses Runbook führt verschiedene Operationen aus, für die erhöhte Rechte erforderlich sind, z. B. das Ändern von Sicherheitsgruppen, das Erstellen von AMI s und die Interaktion mit Auto Scaling Scaling-Gruppen. Diese Aktionen können möglicherweise zu einer Eskalation von Rechten führen oder sich auf andere Workloads in Ihrem Konto auswirken. Sie sollten die Berechtigungen überprüfen, die der durch den AutomationAssumeRole Parameter angegebenen Rolle gewährt wurden, und sicherstellen, dass sie für den beabsichtigten Anwendungsfall geeignet sind. Weitere Informationen zu IAM-Berechtigungen finden Sie in der folgenden AWS Dokumentation: AWS Identity and Access Management (IAM) PermissionsAWS Systems Manager Automation Permissions.

  • Dieses Runbook führt mutative Aktionen durch, die möglicherweise zur Nichtverfügbarkeit oder Unterbrechung Ihrer Workloads führen können. Insbesondere werden die Sicherheitsgruppen geändert, die der Amazon EC2 EC2-Zielinstanz zugeordnet sind, was sich auf die Netzwerkkonnektivität auswirken kann. Wenn die Instance Teil einer Auto Scaling Scaling-Gruppe ist, kann das Runbook außerdem die Konfiguration der Gruppe ändern, was sich möglicherweise auf ihr Skalierungsverhalten auswirkt.

  • Während des Containment-Prozesses erstellt dieses Runbook zusätzliche Ressourcen, wie Sicherheitsgruppen und s. AMI Diese Ressourcen werden zwar zur Identifizierung markiert, Sie sollten sich jedoch ihrer Erstellung bewusst sein und sicherstellen, dass sie nach Abschluss des Containment-Prozesses ordnungsgemäß bereinigt oder verwaltet werden.

  • Wenn der Action Parameter auf gesetzt istRelease, versucht dieses Runbook, die Konfiguration der Amazon EC2 EC2-Instance in ihren ursprünglichen Zustand zurückzusetzen. Es besteht jedoch das Risiko, dass der Wiederherstellungsprozess fehlschlägt und die Instance in einem inkonsistenten Zustand zurückbleibt. Das Runbook enthält Anweisungen für die manuelle Wiederherstellung im Falle solcher Fehler. Sie sollten jedoch darauf vorbereitet sein, mögliche Probleme während des Wiederherstellungsprozesses zu lösen.

Es wird empfohlen, das Runbook gründlich zu überprüfen, seine möglichen Auswirkungen zu verstehen und es in einer Nicht-Produktionsumgebung zu testen, bevor Sie es in Ihrer Produktionsumgebung ausführen.

Führen Sie diese Automatisierung aus (Konsole)

Art des Dokuments

Automatisierung

Eigentümer

Amazon

Plattformen

/

Erforderliche IAM-Berechtigungen

Der AutomationAssumeRole Parameter erfordert die folgenden Aktionen, um das Runbook erfolgreich zu verwenden.

  • automatische Skalierung: CreateOrUpdateTags

  • automatische Skalierung: DeleteTags

  • automatische Skalierung: DescribeAutoScalingGroups

  • automatische Skalierung: DescribeAutoScalingInstances

  • automatische Skalierung: DescribeTags

  • automatische Skalierung: EnterStandby

  • automatische Skalierung: ExitStandby

  • automatische Skalierung: UpdateAutoScalingGroup

  • ec2: AuthorizeSecurityGroupEgress

  • ec2: AuthorizeSecurityGroupIngress

  • ec2: CopyImage

  • ec2: CreateImage

  • ec2: CreateSecurityGroup

  • ec2: CreateSnapshot

  • ec2: CreateTags

  • ec2: DeleteSecurityGroup

  • ec2: DeleteTags

  • ec2: DescribeImages

  • ec2: DescribeInstances

  • ec2: DescribeSecurityGroups

  • ec2: DescribeSnapshots

  • ec2: DescribeTags

  • ec2: ModifyNetworkInterfaceAttribute

  • ec2: RevokeSecurityGroupEgress

  • km: CreateGrant

  • km: DescribeKey

  • km: GenerateDataKeyWithoutPlaintext

  • km: ReEncryptFrom

  • km: ReEncryptTo

  • s3: CreateBucket

  • s3: DeleteObjectTagging

  • s3: GetAccountPublicAccessBlock

  • s3: GetBucketAcl

  • s3: GetBucketLocation

  • s3: GetBucketOwnershipControls

  • s3: GetBucketPolicy

  • s3: GetBucketPolicyStatus

  • s3: GetBucketPublicAccessBlock

  • s3: GetObject

  • s3: ListBucket

  • s3: PutAccountPublicAccessBlock

  • s3: PutBucketPolicy

  • s3: PutBucketVersioning

  • s3: PutObject

  • s3: PutObjectTagging

Beispiel für eine Richtlinie:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadOperations", "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeTags", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSnapshots", "ec2:DescribeTags", "kms:DescribeKey", "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketOwnershipControls", "s3:GetBucketPolicy", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "WriteOperations", "Effect": "Allow", "Action": [ "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteTags", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CopyImage", "ec2:CreateImage", "ec2:CreateSecurityGroup", "ec2:CreateSnapshot", "ec2:CreateTags", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:RevokeSecurityGroupEgress", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo", "s3:CreateBucket", "s3:DeleteObjectTagging", "s3:PutAccountPublicAccessBlock", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "*" } ] }

Anweisungen

Gehen Sie wie folgt vor, um die Automatisierung zu konfigurieren:

  1. Navigieren Sie AWSSupport-ContainEC2Instanceim Systems Manager unter Dokumente zu.

  2. Wählen Sie Execute automation (Automatisierung ausführen).

  3. Geben Sie für die Eingabeparameter Folgendes ein:

    • AutomationAssumeRole (Fakultativ):

      • Beschreibung: (Optional) Der Amazon-Ressourcenname (ARN) der AWS AWS Identity and Access Management (IAM) -Rolle, mit der Systems Manager Automation die Aktionen in Ihrem Namen ausführen kann. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.

      • Typ: AWS::IAM::Role::Arn

    • Aktion (erforderlich):

      • Beschreibung: (Erforderlich) Wählen Sie Contain diese Option, um die Amazon EC2 EC2-Instance zu isolieren oder Restore zu versuchen, die ursprüngliche Konfiguration der Amazon EC2 EC2-Instance-Konfiguration aus einem früheren Backup wiederherzustellen.

      • Typ: Zeichenfolge

      • Zulässiges Muster: Contain|Restore

    • DryRun (Fakultativ):

      • Beschreibung: (Optional) Wenn diese Option auf gesetzt isttrue, führt die Automatisierung keinen der Befehle aus, sondern berichtet stattdessen, was sie versucht hätte, und beschreibt jeden Schritt detailliert. Standardwert: true.

      • Typ: Boolescher Wert

      • Zulässige Werte: true|false

    • Erstellen AMIBackup (optional):

      • Beschreibung: (Optional) Wenn diese Option auf gesetzt isttrue, wird eine AMI der Amazon EC2 EC2-Instances erstellt, bevor die Containment-Aktionen ausgeführt werden.

      • Typ: Boolescher Wert

      • Zulässige Werte: true|false

    • KmsKey (Fakultativ):

      • Beschreibung: (Optional) Die ID des AWS KMS Schlüssels, der verwendet wird, um eine verschlüsselte AMI Amazon EC2 EC2-Zielinstanz zu erstellen. Die Standardeinstellung ist auf gesetzt. alias/aws/ebs

      • Typ: Zeichenfolge

      • Zulässiges Muster: ^(((arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:key/)?([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|mrk-[a-f0-9]{32}))|(arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:)?alias/.{1,})$

    • Backups 3 BucketName (bedingt):

      • Beschreibung: (Bedingt) Amazon Amazon S3 S3-Bucket, um die Konfiguration hochzuladen, wenn sie Action ist, Contain oder um die Konfiguration wiederherzustellen, wenn sie Action istRelease. Hinweis: Wenn der angegebene Bucket nicht im Konto vorhanden ist, erstellt die Automatisierung in Ihrem Namen einen Amazon S3 S3-Bucket.

      • Typ: AWS::S3::Bucket::Name

    • TagIdentifier (Optional):

      • Beschreibung: (Optional) Ein Tag in dem FormatKey=BatchId,Value=78925, das den AWS Ressourcen hinzugefügt wird, die von diesem Runbook während des Containment-Workflows erstellt oder geändert wurden. Dieses Tag kann verwendet werden, um Ressourcen zu identifizieren und zu verwalten, die während des Containment-Prozesses verknüpft wurden. Während des Wiederherstellungs-Workflows wird das durch diesen Parameter angegebene Tag aus den Ressourcen entfernt. Hinweis: Bei Tag-Schlüsseln und -Werten wird zwischen Groß- und Kleinschreibung unterschieden.

      • Typ: Zeichenfolge

      • Zulässiges Muster: ^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$

    • Backups 3 BucketAccess (bedingt):

      • Beschreibung: (Bedingt) Der ARN der IAM-Benutzer oder -Rollen, denen nach der Ausführung der Containment-Aktionen Zugriff auf den Amazon S3 S3-Backup-Backup gewährt wird. Dieser Parameter ist erforderlich, wenn er Action ist. Contain Der oder in dessen Abwesenheit der BenutzerAutomationAssumeRole, in dessen Kontext die Automatisierung ausgeführt wird, wird automatisch zur Liste hinzugefügt.

      • Typ: Zeichenfolge

      • Zulässiges Muster: ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$

    • IngressTrafficRules (Fakultativ):

      • Beschreibung: (Optional) Eine durch Kommas getrennte Zuordnung von Sicherheitsgruppeneingangsregeln mit Cidr,, FromPort und ToPort in dem Format IpProtocol, das auf die Amazon EC2 EC2-Instance angewendet werden [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] soll. Wenn keine Regeln angegeben werden, wird eine Sicherheitsgruppe ohne Eingangsregeln an die Amazon EC2 EC2-Instance angehängt, wodurch sie effektiv von eingehendem Datenverkehr isoliert wird.

      • Typ: MapList

      • Zulässiges Muster: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • EgressTrafficRules (Fakultativ):

      • Beschreibung: (Optional) Eine durch Kommas getrennte Zuordnung von Sicherheitsgruppenausgangsregeln mit Cidr,, FromPort und ToPort in dem Format IpProtocol, das auf die Amazon Amazon [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] EC2 EC2-Instance angewendet werden soll. Wenn keine Regeln angegeben werden, wird eine Sicherheitsgruppe ohne Ausgangsregeln an die Amazon EC2 EC2-Instance angehängt, wodurch der gesamte ausgehende Datenverkehr effektiv verhindert wird.

      • Typ: MapList

      • Zulässiges Muster: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • Backups 3 KeyName (optional):

      • Beschreibung: (Optional) Wenn auf gesetzt Action istRestore, gibt dies den Amazon S3 S3-Schlüssel an, mit dem die Automatisierung versucht, die Amazon EC2 EC2-Zielinstanzkonfiguration wiederherzustellen. Der Amazon S3 S3-Schlüssel folgt normalerweise diesem Format:{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json. Der Schlüssel kann aus der Ausgabe einer früheren Ausführung der Containment-Automatisierung abgerufen werden.

      • Typ: Zeichenfolge

      • Zulässiges Muster: ^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$

  4. Wählen Sie Ausführen aus.

  5. Die Automatisierung wird initiiert.

  6. Das Dokument führt die folgenden Schritte aus:

    • ValidateRequiredInputs

      Überprüft, ob alle erforderlichen Eingaben bereitgestellt wurden.

    • AssertInstanceIsNotTerminated

      Prüft, ob die Amazon EC2 EC2-Zielinstanz nicht beendet (gelöscht) ist.

    • GetAutoScalingInstanceInfo

      Ruft den Amazon EC2 EC2-Instance-Lebenszyklus und den Gruppennamen ab, wenn die Amazon EC2 EC2-Ziel-Instance Teil einer Auto Scaling Scaling-Gruppe ist.

    • CheckBackupS3BucketName

      Prüft, ob der Amazon S3 S3-Ziel-Bucket möglicherweise write öffentlichen Zugriff auf seine Objekte gewährtread. Ein neuer Amazon S3 S3-Bucket wird erstellt, falls der BackupS3BucketName Bucket nicht existiert.

    • BranchOnActionAndMode

      Verzweigt die Automatisierung auf der Grundlage der Eingabeparameter Action undDryRun.

    • BranchOnAutoScalingGroupMembership

      Verzweigt die Automatisierung auf der Grundlage, ob die Amazon EC2 EC2-Zielinstanz Teil der Auto Scaling Scaling-Gruppe ist und welchen Lebenszyklusstatus sie hat.

    • DescribeAutoScalingGroups

      Ruft die zugehörige Amazon EC2 Auto Scaling Scaling-Gruppenkonfiguration ab und speichert sie.

    • ModifyAutoScalingGroup

      Ändert die zugehörige Amazon EC2 Auto Scaling Scaling-Gruppenkonfiguration für die Containment-Aktionen, setzt die Amazon EC2 EC2-Instance auf den Standby Status und passt die Auto Scaling Scaling-Gruppenkapazität an. MinSize

    • BackupInstanceSecurityGroups

      Ruft die Konfiguration der Amazon EC2 EC2-Instance-Zielsicherheitsgruppen ab und speichert sie.

    • CreateAllAccessSecurityGroup

      Erstellt eine temporäre Sicherheitsgruppe, die den gesamten eingehenden Datenverkehr zulässt und die Sicherheitsgruppen der Amazon EC2 EC2-Zielinstanz ersetzt.

    • CreateContainmentSecurityGroup

      Erstellt eine restriktive Sicherheitsgruppe mit den angegebenen Eingangs- und Ausgangsregeln und ersetzt die temporäre All-Access-Gruppe durch diese.

    • BranchOnCreateAMIBackup

      Verzweigt die Automatisierung auf der Grundlage des Eingabeparameters. CreateAMIBackup

    • AssertSourceInstanceRootVolumeIsEbs

      Überprüft, ob es sich bei dem Stammvolume der Amazon EC2 EC2-Instance um Amazon EBS handelt.

    • CreateImage

      Erstellt eine AMI der Amazon EC2 EC2-Zielinstanzen.

    • RestoreInstanceConfiguration

      Stellt die Amazon EC2 EC2-Instance-Zielkonfiguration aus dem Backup wieder her.

    • ReportContain

      Gibt Testlaufdetails für die Eindämmungsmaßnahmen aus.

    • ReportRestore

      Gibt Details zum Probelauf für die Wiederherstellungsmaßnahmen aus.

    • ReportRestoreFailure

      Enthält Anweisungen zum Wiederherstellen der ursprünglichen Konfiguration der Amazon EC2 EC2-Zielinstanz während eines Ausfallszenarios für den Wiederherstellungs-Workflow.

    • ReportContainmentFailure

      Enthält Anweisungen zum Wiederherstellen der ursprünglichen Konfiguration der Amazon EC2 EC2-Zielinstanz während eines Ausfallszenarios für den Containment-Workflow.

    • FinalOutput

      Gibt die Details der Eindämmungsmaßnahmen aus.

  7. Nach Abschluss der Ausführung finden Sie im Abschnitt Ausgaben die detaillierten Ergebnisse der Ausführung:

    • FinalOutput. Ausgabe

      Gibt die Details der von diesem Runbook ausgeführten Containment-Aktionen aus, wenn diese Option auf False gesetzt DryRun ist.

    • RestoreInstanceConfiguration. Ausgabe

      Gibt die von diesem Runbook ausgeführten Wiederherstellungsaktionen aus, wenn der Wert auf DryRun False gesetzt ist.

    • ReportContain. Ausgabe

      Gibt die Details der von diesem Runbook ausgeführten Containment-Aktionen aus, wenn diese Option auf True gesetzt DryRun ist.

    • ReportRestore.Ausgabe

      Gibt die Details der von diesem Runbook ausgeführten Wiederherstellungsaktionen aus, wenn der Wert auf DryRun True gesetzt ist.

    • ReportContainmentFailure.Ausgabe

      Enthält Anweisungen zum Wiederherstellen der ursprünglichen Konfiguration der Amazon EC2 EC2-Zielinstanz während eines Ausfallszenarios für den Containment-Workflow.

    • ReportRestoreFailure. Ausgabe

      Enthält Anweisungen zum Wiederherstellen der ursprünglichen Konfiguration der Amazon EC2 EC2-Zielinstanz während eines Ausfallszenarios für den Wiederherstellungs-Workflow.

Referenzen

Systems Manager Automation