Verwenden von Chef InSpec Profilen 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.

Verwenden von Chef InSpec Profilen mit Systems Manager Compliance

AWS Systems Manager integriert mit Chef InSpec. Chef InSpecist ein Open-Source-Testframework, mit dem Sie menschenlesbare Profile erstellen können, um sie in GitHub oder im Amazon Simple Storage Service (Amazon S3) zu speichern. 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 folgende Überprüfungen durchführen, wenn Sie Ihre Knoten mit Compliance, eine Funktion von AWS Systems Manager, scannen:

  • Ü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 Chef InSpec Beispielprofil ü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 Das Projekt DevSec chef-os-hardening GitHub umfasst beispielsweise Dutzende von Profilen, mit denen Sie Ihre Knoten schützen können. Sie können Profile in GitHub oder Amazon S3 erstellen und speichern.

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 verwendenGitHub, um loszulegen. Informationen zum Erstellen eigener InSpec Profile finden Sie unter Chef InSpecChef-Profile.

  2. Speichern Sie Profile entweder in einem öffentlichen oder privaten 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 startenRun Command, indem Sie eine Funktion von AWS Systems Manager für On-Demand-Scans verwenden, oder Sie können regelmäßige Konformitätsscans mit State Manager der AWS Systems Manager Funktion von planen.

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

Anmerkung

Notieren Sie die folgenden Informationen:

  • Chefverwendet 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. Andernfalls 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 Vorgang PutComplianceItems API 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). In der Konsolenprozedur wird angezeigt, wie Sie State Manager konfigurieren, um den Scan auszuführen. Das AWS CLI Verfahren zeigt, wie die Konfiguration für Run Command die Ausführung des Scans konfiguriert wird.

Ausführen eines InSpec Konformitätsscans mit State Manager (Konsole)

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

  2. Wählen Sie im Navigationsbereich State Manager aus.

  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 aus.

    Wenn Sie möchten GitHub, geben Sie den Pfad zu einem InSpec Profil in einem öffentlichen oder privaten GitHub Repository in das Feld Quellinformationen ein. 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 Amazon S3 finden Sie unterAusführen von Skripts von GitHub.

  8. Identifizieren Sie für den Abschnitt Targets (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 Rate control (Ratenregelung):

    • Geben Sie unter Concurrency (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 Error threshold (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 Output options (Ausgabeoptionen) die Befehlsausgabe in einer Datei speichern möchten, aktivieren Sie das Kontrollkästchen Enable writing to a S3 bucket (Schreiben in einen S3-Bucket aktivieren). Geben Sie die Namen für den Bucket und das Präfix (Ordner) in die Textfelder ein.

    Anmerkung

    Die S3-Berechtigungen zum Schreiben von Daten in einen S3-Bucket sind diejenigen des Instance-Profils (für EC2-Instances) oder der IAM-Servicerolle (hybrid-aktivierte Maschinen), die der Instance zugewiesen sind, und nicht diejenigen des IAM-Benutzers, der diese Aufgabe ausführt. Weitere Informationen finden Sie unter Konfigurieren der für Systems Manager erforderlichen Instanzberechtigungen oder Erstellen einer IAM-Dienstrolle für eine Hybridumgebung. Wenn sich der angegebene S3-Bucket in einem anderen befindet, stellen Sie außerdem sicher AWS-Konto, dass das Instanzprofil oder die IAM-Servicerolle, die dem verwalteten Knoten zugeordnet sind, über die erforderlichen Berechtigungen verfügt, um in diesen Bucket zu schreiben.

  12. Wählen Sie Create Association. 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 mit Run Command ()AWS CLI ausführen

  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 GitHub entweder von Amazon S3 aus auszuführen.

    Der -Befehl verwendet die folgenden Parameter:

    • sourceType: GitHub oder Amazon S3

    • sourceInfo: URL zum InSpec Profilordner entweder in GitHub oder einem 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/DOC-EXAMPLE-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/DOC-EXAMPLE-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