Verwenden von Chef InSpec-Profilen mit Systems Manager Compliance - AWS Systems Manager

AWS Systems ManagerChange Managersteht neuen Kunden nicht mehr offen. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter Änderung der AWS Systems ManagerChange Manager Verfügbarkeit.

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 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 nur für Amazon Elastic Compute Cloud (Amazon EC2) -Instances erstellen, die Sie mit Systems Manager verwalten. Lokale Server oder virtuelle Maschinen (VMs) werden nicht unterstützt. Das folgende Chef InSpec-Beispielprofil prü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 Schecks und Prüfkontrollen erstellen können. InSpec verwendet die InSpecdomä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 GitHub umfasst das DevSec chef-os-hardeningProjekt auf 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 zunächst vordefinierte Profile auf GitHub verwenden. 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 ein Tool in AWS Systems Manager für On-Demand-Scans verwenden, oder Sie können regelmäßige Konformitätsscans mithilfe State Manager eines Tools in AWS Systems Manager planen.

  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 zur Verarbeitung des Profils. 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. Falls nicht, installiert Systems Manager den Chef-Client während des Scans und deinstalliert den Client wieder, nachdem der Scan abgeschlossen ist.

  • 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). 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. Klicken Sie im Abschnitt Parameter, in der Liste Quelltyp entweder auf GitHub oder S3.

    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 und Amazon S3 finden Sie unter Ausführen von Skripts 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 angegeben haben, die auf verwaltete Knoten angewendet wurden, oder indem Sie AWS Ressourcengruppen angegeben haben und Sie sich nicht sicher sind, wie viele verwaltete Knoten das Ziel sind, schränken Sie die Anzahl der Ziele ein, die das Dokument gleichzeitig ausführen können, 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

    Die S3-Berechtigungen, die das Schreiben der Daten in einen S3-Bucket ermöglichen, sind diejenigen des Instanzprofils (für EC2 Instances) oder der IAM-Servicerolle (hybridaktivierte Maschinen), die der Instanz zugewiesen wurden, nicht 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 AWS-Konto befindet, stellen Sie außerdem sicher, dass das Instance-Profil oder die IAM-Servicerolle, die dem verwalteten Knoten zugeordnet ist, über die erforderlichen Berechtigungen zum Schreiben in diesen Bucket verfügt.

  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 mit () ausführen Run CommandAWS 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 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/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