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 Verfahren, das im Artikel Wie isoliere ich die EC2 Amazon-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 EC2 Amazon-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 in die All-Access-Sicherheitsgruppe und schließlich in die Containment-Sicherheitsgruppe umgewandelt. Falls angegeben, erstellt sie sowohl unverschlüsselte als auch verschlüsselte AMI Backups der Instanz. 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 und das Erstellen AMIs und 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 EC2 Amazon-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 AMI-Geräte. Diese Ressourcen sind zwar zur Identifizierung gekennzeichnet, 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 EC2 Amazon-Instance in ihren ursprünglichen Zustand zurückzuversetzen. 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:

{ "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 EC2 Amazon-Instance Restore zu isolieren oder zu versuchen, die ursprüngliche Konfiguration der EC2 Amazon-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: Boolesch

      • Zulässige Werte: true|false

    • Erstellen AMIBackup (optional):

      • Beschreibung: (Optional) Wenn auf eingestellttrue, ein AMI der EC2 Amazon-Instance wird erstellt, bevor die Eindämmungsmaßnahmen durchgeführt werden.

      • Typ: Boolesch

      • Zulässige Werte: true|false

    • KmsKey (Fakultativ):

      • Beschreibung: (Optional) Die ID des AWS KMS Schlüssels, der zur Erstellung eines verschlüsselten Schlüssels verwendet wird AMI der EC2 Amazon-Zielinstanz. Die Standardeinstellung ist auf eingestelltalias/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-Instance angewendet werden [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] soll. EC2 Wenn keine Regeln angegeben werden, wird eine Sicherheitsgruppe ohne Eingangsregeln an die EC2 Amazon-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 der Ausgangsregeln für Sicherheitsgruppen mit Cidr,, FromPort und ToPort in dem Format IpProtocol, das auf die Amazon-Amazon-Instance angewendet werden [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] soll. EC2 Wenn keine Regeln angegeben werden, wird eine Sicherheitsgruppe ohne Ausgangsregeln an die EC2 Amazon-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 EC2 Amazon-Instance-Zielkonfiguration 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 EC2 Amazon-Zielinstanz nicht beendet (gelöscht) ist.

    • GetAutoScalingInstanceInfo

      Ruft den EC2 Amazon-Instance-Lebenszyklus und den Gruppennamen ab, wenn die EC2 Amazon-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 EC2 Amazon-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 EC2 Amazon-Instance auf den Standby Status und passt die Auto Scaling MinSize Scaling-Gruppenkapazität an.

    • BackupInstanceSecurityGroups

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

    • CreateAllAccessSecurityGroup

      Erstellt eine temporäre Sicherheitsgruppe, die den gesamten eingehenden Datenverkehr zulässt und die Sicherheitsgruppen der EC2 Amazon-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

      Prüft, ob das Ziel-Root-Volume der Amazon EC2 Instance Amazon EBS ist.

    • CreateImage

      Erzeugt ein AMI der EC2 Amazon-Zielinstanz.

    • RestoreInstanceConfiguration

      Stellt die EC2 Amazon-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 EC2 Amazon-Instance der Zielinstanz während eines Ausfallszenarios für den Wiederherstellungs-Workflow.

    • ReportContainmentFailure

      Enthält Anweisungen zur Wiederherstellung der ursprünglichen Zielkonfiguration der EC2 Amazon-Instance 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 zur Wiederherstellung der ursprünglichen Zielkonfiguration der EC2 Amazon-Instance während eines Ausfallszenarios für den Containment-Workflow.

    • ReportRestoreFailure. Ausgabe

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

Referenzen

Systems Manager Automation