Die Verwendung von Chef InSpec Profile mit Systems Manager Compliance - AWS Systems Manager

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.

Die Verwendung von Chef InSpec Profile mit Systems Manager Compliance

AWS Systems Manager integriert mit Chef InSpec. Chef InSpec ist ein Open-Source-Testframework, mit dem Sie menschenlesbare Profile zum Speichern erstellen können GitHub oder Amazon Simple Storage Service (Amazon S3). Anschließend können Sie Systems Manager verwenden, um Compliance-Scans auszuführen und konforme und nicht konforme Knoten anzuzeigen. Ein Profil ist eine Sicherheits-, Compliance- oder Richtlinienanforderung für Ihre Datenverarbeitungsumgebung. Sie können beispielsweise Profile erstellen, die die folgenden Prüfungen durchführen, wenn Sie Ihre Knoten mit Compliance scannen, einem Tool in AWS Systems Manager:

  • Überprüfen Sie, ob bestimmte Ports geöffnet oder geschlossen sind.

  • Überprüfen Sie, ob bestimmte Anwendungen ausgeführt werden.

  • Überprüfen Sie, ob bestimmte Pakete installiert sind.

  • Prüfen Sie die Windows-Registry-Schlüssel auf spezifische Eigenschaften.

Sie können InSpec Profile für Amazon Elastic Compute Cloud (Amazon EC2) -Instances und lokale Server oder virtuelle Maschinen (VMs) erstellen, die Sie mit Systems Manager verwalten. Das folgende Beispiel Chef InSpec Das Profil überprüft, ob Port 22 geöffnet ist.

control 'Scan Port' do impact 10.0 title 'Server: Configure the service port' desc 'Always specify which port the SSH server should listen to. Prevent unexpected settings.' describe sshd_config do its('Port') { should eq('22') } end end

InSpec enthält eine Sammlung von Ressourcen, mit denen Sie schnell Prüfungen und Überwachungskontrollen erstellen können. InSpec verwendet die InSpec domänenspezifische Sprache (DSL) zum Schreiben dieser Steuerelemente in Ruby. Sie können auch Profile verwenden, die von einer großen Benutzergemeinschaft erstellt wurden. InSpec Zum Beispiel das DevSec chef-os-hardeningProjekt auf GitHub enthält Dutzende von Profilen, mit denen Sie Ihre Knoten schützen können. Sie können Profile erstellen und speichern in GitHub oder Amazon S3.

Funktionsweise

So funktioniert die Verwendung von InSpec Profilen mit Compliance:

  1. Identifizieren Sie entweder vordefinierte InSpec Profile, die Sie verwenden möchten, oder erstellen Sie Ihre eigenen. Sie können vordefinierte Profile verwenden für GitHub um loszulegen. Informationen zum Erstellen eigener InSpec Profile finden Sie unter ChefChef InSpec Profile.

  2. Speichern Sie Profile entweder öffentlich oder privat GitHub Repository oder in einem S3-Bucket.

  3. Führen Sie Compliance mit Ihren InSpec Profilen mithilfe des Systems Manager Manager-Dokuments (SSM-Dokument) AWS-RunInspecChecks durch. Sie können einen Konformitätsscan starten, indem Sie Run Command, ein Tool in AWS Systems Manager, für Scans auf Anforderung, oder Sie können regelmäßige Konformitätsscans planen, indem Sie State Manager, ein Tool in AWS Systems Manager.

  4. Identifizieren Sie nicht konforme Knoten, indem Sie die Compliance-API oder Compliance-Konsole verwenden.

Anmerkung

Notieren Sie die folgenden Informationen:

  • Chef verwendet einen Client auf Ihren Knoten, um das Profil zu verarbeiten. Sie müssen den Client nicht installieren. Wenn Systems Manager das SSM-Dokument AWS-RunInspecChecks ausführt, prüft das System, ob der Client installiert ist. Wenn nicht, installiert Systems Manager den Chef Client während des Scans und deinstalliert den Client nach Abschluss des Scans.

  • Ausführen des SSM-Dokuments AWS-RunInspecChecks, weist, wie in diesem Thema beschrieben, einen Compliance-Eintrag vom Typ Custom:Inspec zu jedem Ziel-Knoten zu. Um diesen Konformitätstyp zuzuweisen, ruft das Dokument den PutComplianceItemsAPI-Vorgang auf.

Einen InSpec Konformitätsscan ausführen

Dieser Abschnitt enthält Informationen zum Ausführen eines InSpec Konformitätsscans mithilfe der Systems Manager Manager-Konsole und der AWS Command Line Interface (AWS CLI). Das Konsolenverfahren zeigt, wie die Konfiguration erfolgt State Manager um den Scan auszuführen. Das AWS CLI Verfahren zeigt, wie man konfiguriert Run Command um den Scan auszuführen.

Einen InSpec Konformitätsscan ausführen mit State Manager (Konsole)

Um einen InSpec Konformitätsscan durchzuführen mit State Manager mithilfe der AWS Systems Manager Konsole
  1. Öffnen Sie die AWS Systems Manager Konsole unter https://console.aws.amazon.com/systems-manager/.

  2. Wählen Sie im Navigationsbereich State Manager.

  3. Wählen Sie Create association (Zuordnung erstellen) aus.

  4. Geben Sie im Abschnitt Provide association details (Zuordungsdetails bereitstellen) einen Namen ein.

  5. Wählen Sie in der Liste Dokument die Option AWS-RunInspecChecks. aus.

  6. Wählen Sie in der Liste Document version (Dokumentversion) die Option Latest at runtime (Neueste zur Laufzeit) aus.

  7. Wählen Sie im Abschnitt Parameter in der Liste Quelltyp entweder GitHuboder S3.

    Wenn du wählst GitHub, geben Sie dann den Pfad zu einem öffentlichen oder privaten InSpec Profil ein GitHub Repository im Feld Quellinformationen. Hier ist ein Beispielpfad zu einem öffentlichen Profil, das vom Systems Manager Manager-Team vom folgenden Ort aus bereitgestellt wurde: https://github.com/awslabs/amazon- ssm/tree/master/Compliance/InSpec/PortCheck.

    {"owner":"awslabs","repository":"amazon-ssm","path":"Compliance/InSpec/PortCheck","getOptions":"branch:master"}

    Wenn Sie S3 wählen, geben Sie im Feld Quellinformationen eine gültige URL zu einem InSpec Profil in einem S3-Bucket ein.

    Weitere Informationen zur Integration von Systems Manager mit GitHub und Amazon S3, sieheSkripte ausführen von GitHub.

  8. Identifizieren Sie für den Abschnitt Ziele die verwalteten Knoten, auf denen Sie diese Operation ausführen möchten, indem Sie Tags angeben, Instances oder Edge-Geräte manuell auswählen oder eine Ressourcengruppe angeben.

    Tipp

    Wenn ein verwalteter Knoten, den Sie erwarten, nicht aufgeführt ist, finden Sie weitere Informationen unter Problembehandlung bei der Verfügbarkeit verwalteter Knoten Tipps zur Fehlerbehebung.

  9. Verwenden Sie im Abschnitt Specify schedule (Zeitplan festlegen) die Zeitplan-Builder-Optionen, um einen Zeitplan für das Ausführen des Compliance-Scans zu erstellen.

  10. Für Ratenregelung:

    • Geben Sie unter Nebenläufigkeit entweder eine Zahl oder einen Prozentsatz der verwalteten Knoten an, auf denen der Befehl gleichzeitig ausgeführt werden soll.

      Anmerkung

      Wenn Sie Ziele ausgewählt haben, indem Sie Tags angeben, die auf verwaltete Knoten angewendet werden, oder indem Sie AWS -Ressourcengruppen angeben, und Sie noch nicht sicher sind, wie viele verwaltete Knoten anvisiert sind, sollten Sie die Anzahl von Zielen, die das Dokument gleichzeitig ausführen kann, beschränken, indem Sie einen Prozentsatz angeben.

    • Geben Sie unter Fehlerschwellenwert an, wann die Ausführung des Befehls auf anderen verwalteten Knoten beendet werden soll, nachdem dafür entweder auf einer bestimmten Anzahl oder einem Prozentsatz von Knoten ein Fehler aufgetreten ist. Falls Sie beispielsweise drei Fehler angeben, sendet Systems Manager keinen Befehl mehr, wenn der vierte Fehler empfangen wird. Von verwalteten Knoten, auf denen der Befehl noch verarbeitet wird, werden unter Umständen ebenfalls Fehler gesendet.

  11. (Optional) Wenn Sie im Abschnitt Ausgabeoptionen die Befehlsausgabe in einer Datei speichern möchten, aktivieren Sie das Kontrollkästchen Schreiben in einen S3-Bucket aktivieren. Geben Sie die Namen für den Bucket und das Präfix (Ordner) in die Textfelder ein.

    Anmerkung

    Bei den S3-Berechtigungen, die das Schreiben von Daten in einen S3-Bucket ermöglichen, handelt es sich um die Berechtigungen des Instance-Profils (für EC2 Instances) oder der IAM-Servicerolle (hybridaktivierte Maschinen), die der Instance zugewiesen wurden, nicht um die des IAM-Benutzers, der diese Aufgabe ausführt. Weitere Informationen finden Sie unter Instance-Berechtigungen für Systems Manager konfigurieren oder Eine IAM-Servicerolle für eine Hybrid-Umgebung erstellen. Wenn sich der angegebene S3-Bucket in einem anderen befindet, stellen Sie außerdem sicher AWS-Konto, dass das dem verwalteten Knoten zugeordnete Instanzprofil oder die IAM-Dienstrolle über die erforderlichen Berechtigungen verfügt, um in diesen Bucket zu schreiben.

  12. Wählen Sie Zuordnung erstellen. Das System erstellt die Zuordnung und führt den Compliance-Scan automatisch aus.

  13. Warten Sie einige Minuten, bis der Scan abgeschlossen ist, und wählen Sie dann Compliance im Navigationsbereich aus.

  14. Suchen Sie unter Corresponding managed instances (Entsprechende verwaltete Instances) die Knoten, in denen die Spalte Compliance Type (Compliance-Typ) Custom:Inspec lautet.

  15. Wählen Sie eine Knoten-ID aus, um die Details von nicht konformen Status anzuzeigen.

Einen InSpec Konformitätsscan ausführen mit Run Command (AWS CLI)

  1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), falls Sie dies noch nicht getan haben.

    Weitere Informationen finden Sie unter Installieren oder Aktualisieren der neuesten Version von AWS CLI.

  2. Führen Sie einen der folgenden Befehle aus, um ein InSpec Profil von einem der folgenden Befehle aus auszuführen GitHub oder Amazon S3.

    Der -Befehl verwendet die folgenden Parameter:

    • sourceType: GitHub oder Amazon S3

    • sourceInfo: URL zum InSpec Profilordner entweder in GitHub oder ein S3-Bucket. Der Ordner muss die InSpec Basisdatei (*.yml) und alle zugehörigen Steuerelemente (*.rb) enthalten.

    GitHub

    aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"Inspec.yml_file"}"]}'

    Ein Beispiel.

    aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters '{"sourceType":["GitHub"],"getOptions":"branch:master","sourceInfo":["{\"owner\":\"awslabs\", \"repository\":\"amazon-ssm\", \"path\": \"Compliance/InSpec/PortCheck\"}"]}'

    Amazon S3

    aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/Inspec.yml_file\"}"]}'

    Ein Beispiel.

    aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/InSpec/PortCheck.yml\"}"]}'
  3. Führen Sie den folgenden Befehl aus, um eine Übersicht des Compliance-Scans anzuzeigen.

    aws ssm list-resource-compliance-summaries --filters Key=ComplianceType,Values=Custom:Inspec
  4. Führen Sie den folgenden Befehl aus, um Details eines Knotens anzuzeigen, der nicht konform ist.

    aws ssm list-compliance-items --resource-ids node_ID --resource-type ManagedInstance --filters Key=DocumentName,Values=AWS-RunInspecChecks