View a markdown version of this page

AWSSupport-ContainEC2Instance - AWS Systems Manager Runbook-Referenz für Automation

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-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 das?

Dieses Automatisierungs-Runbook AWSSupport-ContainEC2Instance führt die Netzwerkeindämmung einer Amazon 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-Bucket gesichert. Das Runbook erstellt zwei Sicherheitsgruppen: eine temporäre Sicherheitsgruppe „All-Access“ und eine letzte „Containment“ -Sicherheitsgruppe. Es stellt die Netzwerkschnittstellen der Instance schrittweise von ihren ursprünglichen Sicherheitsgruppen zur All-Access-Sicherheitsgruppe und schließlich zur Containment Security Group um. Falls angegeben, werden sowohl unverschlüsselte als auch verschlüsselte AMI Backups der Instanz erstellt. Für Instances in einer Auto Scaling-Gruppe verarbeitet es die notwendigen Auto Scaling-Gruppenänderungen und versetzt die Instance in den Standby-Status. Wenn es im Release Modus ausgeführt wird, stellt es die Instance mithilfe der gesicherten Einstellungen von Amazon S3 auf ihre ursprüngliche Netzwerkkonfiguration zurück. Das Runbook unterstützt einen DryRun Parameter, mit dem Aktionen in der Vorschau angezeigt werden können, ohne tatsächliche Änderungen vorzunehmen, und umfasst umfassende Mechanismen zur Fehlerbehandlung und Berichterstattung in den gesamten Containment- und Release-Workflows.

Wichtig
  • Dieses Runbook führt verschiedene Vorgänge aus, für die erhöhte Rechte erforderlich sind, z. B. das Ändern von Sicherheitsgruppen, das Erstellen von AMI Sicherheitsgruppen und das Interagieren mit Auto Scaling-Gruppen. Diese Aktionen könnten 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) Permissions AWS Systems Manager Automation Permissions.

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

  • Während des Eindämmungsprozesses erstellt dieses Runbook zusätzliche Ressourcen wie Sicherheitsgruppen und s. AMI Diese Ressourcen werden zwar zur Identifizierung mit Tags versehen, aber Sie sollten sich ihrer Erstellung bewusst sein und sicherstellen, dass sie nach Abschluss des Eindämmungsprozesses ordnungsgemäß bereinigt oder verwaltet werden.

  • Wenn der Action Parameter auf gesetzt istRelease, versucht dieses Runbook, die Konfiguration der Amazon 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 Fall solcher Fehler. Sie sollten jedoch darauf vorbereitet sein, mögliche Probleme während des Wiederherstellungsvorgangs zu lösen.

Es wird empfohlen, das Runbook gründlich zu überprüfen, seine potenziellen Auswirkungen zu verstehen und es in einer Umgebung zu testen, die nichts mit der Produktion zu tun hat, 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

Folgen Sie diesen Schritten, um die Automatisierung zu konfigurieren:

  1. Navigieren Sie AWSSupport-ContainEC2Instance im 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, die es Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen auszuführen. 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-Instance zu isolieren oder Restore um zu versuchen, die ursprüngliche Konfiguration der Amazon EC2-Instance-Konfiguration aus einer früheren Sicherung 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, was sie versucht hätte, und beschreibt jeden Schritt detailliert. Standardwert: true.

      • Typ: Boolescher Wert

      • Zulässige Werte: true|false

    • Erstellen Sie ein MI-Backup (optional):

      • Beschreibung: (Optional) Wenn auf gesetzttrue, wird eine AMI der Amazon EC2-Instances erstellt, bevor die Eindämmungsaktionen 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-Zielinstanz zu erstellen. Die Standardeinstellung ist auf. 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,})$

    • BackupS3BucketName (Befristet):

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

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

    • TagIdentifier (Fakultativ):

      • 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 werden. Dieses Tag kann verwendet werden, um Ressourcen zu identifizieren und zu verwalten, die während des Eindämmungsprozesses verknüpft sind. 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}$

    • BackupS3BucketAccess(Befristet):

      • Beschreibung: (Befristet) Die ARN der IAM-Benutzer oder -Rollen, denen nach Ausführung der Eindämmungsmaßnahmen der Zugriff auf den Amazon S3-Backup-Bucket gewährt wird. Dieser Parameter ist erforderlich, wenn er Action ist. Contain Der Benutzer oderAutomationAssumeRole, falls er nicht vorhanden ist, der Benutzer, 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 Übersicht der Eingangsregeln für Sicherheitsgruppen mit Cidr FromPort und ToPort in dem Format IpProtocol, das auf die Amazon 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-Instance angehängt, wodurch sie effektiv vom eingehenden 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 kommagetrennte Übersicht der Regeln für ausgehenden Sicherheitsgruppen mit Cidr FromPort und ToPort in dem Format IpProtocol, das [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] auf die Amazon Amazon EC2-Instance angewendet werden soll. Wenn keine Regeln angegeben werden, wird eine Sicherheitsgruppe ohne Regeln für ausgehenden Datenverkehr an die Amazon 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}\"\\}

    • BackupS3KeyName (Fakultativ):

      • Beschreibung: (Optional) Wenn Action auf gesetztRestore, gibt dies den Amazon S3-Schlüssel an, den die Automatisierung verwendet, um zu versuchen, die Amazon EC2-Zielinstanzkonfiguration wiederherzustellen. Der Amazon 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 Eindämmungsautomatisierung 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-Zielinstanz nicht beendet (gelöscht) ist.

    • GetAutoScalingInstanceInfo

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

    • CheckBackupS3BucketName

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

    • BranchOnActionAndMode

      Verzweigt die Automatisierung auf der Grundlage der Eingabeparameter Action undDryRun.

    • BranchOnAutoScalingGroupMembership

      Verzweigt die Automatisierung je nachdem, ob die Amazon EC2-Zielinstanz Teil der Auto Scaling-Gruppe ist und wie ihr Lebenszyklusstatus ist.

    • DescribeAutoScalingGroups

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

    • ModifyAutoScalingGroup

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

    • BackupInstanceSecurityGroups

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

    • CreateAllAccessSecurityGroup

      Erstellt eine temporäre Sicherheitsgruppe, die den gesamten eingehenden Datenverkehr zulässt, der die Sicherheitsgruppen der Amazon 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 basierend auf dem Eingabeparameter. CreateAMIBackup

    • AssertSourceInstanceRootVolumeIsEbs

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

    • CreateImage

      Erstellt eine AMI der Amazon EC2-Zielinstanzen.

    • RestoreInstanceConfiguration

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

    • ReportContain

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

    • ReportRestore

      Gibt Testlaufdetails für die Wiederherstellungsaktionen aus.

    • ReportRestoreFailure

      Enthält Anweisungen zur Wiederherstellung der ursprünglichen Konfiguration der Amazon EC2-Instance in einem Szenario, in dem der Wiederherstellungs-Workflow fehlschlägt.

    • ReportContainmentFailure

      Enthält Anweisungen zur Wiederherstellung der ursprünglichen Konfiguration der Amazon EC2-Instance bei einem Ausfall des Containment-Workflows.

    • 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.Output

      Gibt die Details der von diesem Runbook ausgeführten Eindämmungsaktionen aus, wenn der Wert auf DryRun False gesetzt ist.

    • RestoreInstanceConfiguration.Output

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

    • ReportContain.Output

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

    • ReportRestore.Output

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

    • ReportContainmentFailure.Output

      Enthält Anweisungen zur Wiederherstellung der ursprünglichen Konfiguration der Amazon EC2-Instance in einem Szenario, in dem der Containment-Workflow fehlschlägt.

    • ReportRestoreFailure.Output

      Enthält Anweisungen zur Wiederherstellung der ursprünglichen Konfiguration der Amazon EC2-Instance in einem Szenario, in dem der Wiederherstellungs-Workflow fehlschlägt.

Referenzen

Systems Manager Automation