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
-
Ü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)
Funktionsweise
So funktioniert die Verwendung von InSpec Profilen mit Compliance:
-
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 . -
Speichern Sie Profile entweder öffentlich oder privat GitHub Repository oder in einem S3-Bucket.
-
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. -
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 TypCustom: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
Öffnen Sie die AWS Systems Manager Konsole unter https://console.aws.amazon.com/systems-manager/
. Wählen Sie im Navigationsbereich State Manager.
-
Wählen Sie Create association (Zuordnung erstellen) aus.
-
Geben Sie im Abschnitt Provide association details (Zuordungsdetails bereitstellen) einen Namen ein.
-
Wählen Sie in der Liste Dokument die Option
AWS-RunInspecChecks
. aus. -
Wählen Sie in der Liste Document version (Dokumentversion) die Option Latest at runtime (Neueste zur Laufzeit) aus.
-
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.
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.
-
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.
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.
-
(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.
-
Wählen Sie Zuordnung erstellen. Das System erstellt die Zuordnung und führt den Compliance-Scan automatisch aus.
-
Warten Sie einige Minuten, bis der Scan abgeschlossen ist, und wählen Sie dann Compliance im Navigationsbereich aus.
-
Suchen Sie unter Corresponding managed instances (Entsprechende verwaltete Instances) die Knoten, in denen die Spalte Compliance Type (Compliance-Typ) Custom:Inspec lautet.
-
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)
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.
-
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\"}"]}' -
-
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
-
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