
aws-security-assessment-solution v3.0.0
Ein AWS-Tool, das Ihnen hilft, eine Momentaufnahme-Bewertung Ihres AWS-Kontos mit Prowler zu erstellen.
Self-Service Security Assessment Solutions (v2.0)
Cybersicherheit bleibt ein sehr wichtiges Thema und ein Anliegen für viele CIOs, CISOs und deren Kunden. Um diesen wichtigen Anliegen gerecht zu werden, hat AWS eine Reihe primärer Services entwickelt, die Kunden zum Schutz ihrer Konten nutzen sollten. Amazon GuardDuty, AWS Security Hub, AWS Config und AWS Well-Architected Reviews helfen Kunden, eine starke Sicherheitslage ihrer AWS-Konten aufrechtzuerhalten. Da immer mehr Organisationen in die Cloud migrieren – insbesondere wenn dies schnell geschieht – und die empfohlenen AWS-Services noch nicht implementiert haben, kann die Notwendigkeit bestehen, eine schnelle Sicherheitsbewertung der Cloud-Umgebung durchzuführen.
Wir haben eine kostengünstige, einfach bereitzustellende, sichere und schnelle Lösung entwickelt, um unseren Kunden einen Sicherheitsbewertungsbericht zur Verfügung zu stellen. Diese Berichte werden mit dem Open-Source-Projekt Prowler erstellt. Prowler führt Sicherheitsbewertungen zu einem bestimmten Zeitpunkt basierend auf AWS-Best Practices durch und kann helfen, potenzielle Risikobereiche in der bereitgestellten Umgebung eines Kunden schnell zu identifizieren. Wenn Sie daran interessiert sind, diese Bewertungen kontinuierlich durchzuführen, empfiehlt AWS die Aktivierung des Foundational Security Best Practices standard von Security Hub. Wenn Sie daran interessiert sind, Ihre Prowler-Bewertungsergebnisse in Security Hub zu integrieren, können Sie den Anweisungen in der Prowler-Dokumentation folgen.
Hinweis: Prowler ist keine AWS-eigene Lösung. Kunden sollten Prowler vor der Ausführung dieser Lösung unabhängig prüfen. Alle mit Prowler verbundenen Abhängigkeiten sollten aktuell gehalten werden. Diese Lösung installiert eine festgelegte Version von Prowler (derzeit 5.41.0) über den pip-Paketinstaller, sodass eine Änderung am Ausgabeformat von Prowler einen Scan nicht ohne Vorwarnung unterbrechen kann. Um auf eine neuere Version zu wechseln, bearbeiten Sie die Zeile
pip3 install prowler==in2-sat2-codebuild-prowler.yaml.
📕 Für detailliertere Schritt-für-Schritt-Anleitungen besuchen Sie Modul 2 im SHIP Workshop.
Inhaltsverzeichnis
- Überblick
- Parameter
- Bereitstellung
- Scan eines einzelnen Kontos
- Scan mehrerer Konten
- Ergebnisse prüfen
- Scan-Typen
- Benachrichtigungen
- Berichtszusammenfassung
- Häufig gestellte Fragen (FAQ)
- Bereinigung
- Sicherheit
- Lizenz
Überblick
Die Lösung wird mit AWS CloudFormation bereitgestellt. Bei der Bereitstellung werden ein AWS CodeBuild-Projekt und ein Amazon S3-Bucket zur Speicherung der von Prowler generierten Berichte erstellt. Eine AWS Lambda-Funktion wird dann verwendet, um das AWS CodeBuild-Projekt zu starten.
Die Standardwerte der Parameter (Benutzereingaben) führen einen Basis-Scan in einem einzelnen Konto durch. Sie können jedoch verschiedene Parameter wählen, um umfangreichere Scans durchzuführen oder mehrere Konten zu scannen. Der Bereitstellungsprozess dauert weniger als 5 Minuten. Die AWS CloudFormation-Vorlagen der Lösung werden zur Überprüfung in diesem Github-Repository bereitgestellt.
Sobald die Vorlage bereitgestellt ist, wird das CodeBuild-Projekt ausgeführt. Die Standardbewertung dauert etwa 5 Minuten. Die Zeit für die Durchführung einer Sicherheitsbewertung variiert je nach Anzahl der Ressourcen und den ausgewählten Scan-Optionen. Am Ende der Bewertungen werden die Berichte an den erstellten S3-Bucket geliefert.

Parameter
SATv2 kann durch Aktualisierung der CloudFormation-Parameter angepasst werden. Dieser Abschnitt fasst die verfügbaren Optionen zusammen und bietet einen Link zum Abschnitt mit weiteren Informationen.
| Parameter | Beschreibung | Weitere Informationen |
|---|---|---|
| ProwlerScanType | Geben Sie an, welche Art von Scan durchgeführt werden soll. Die Auswahl von full ohne Angabe anderer ProwlerOptions führt einen vollständigen Scan durch. Um eine bestimmte Prüfung durchzuführen, wählen Sie Full und fügen Sie -c an ProwlerOptions an. | Scan-Typen |
| MultiAccountScan | Setzen Sie dies auf true, wenn Sie alle Konten in Ihrer Organisation scannen möchten. Sie müssen die Voraussetzungsvorlage zur Bereitstellung einer Rolle bereitgestellt haben oder eine andere ProwlerRole mit den entsprechenden Berechtigungen angeben. | Scan mehrerer Konten |
| Reporting | Setzen Sie dies auf true, wenn Sie die Prowler-Berichte in einer einzigen CSV-Datei zusammenfassen möchten. Dies ist hilfreich beim Scannen mehrerer Konten. | Berichtszusammenfassung |
| EmailAddress | Geben Sie eine Adresse an, wenn Sie eine E-Mail erhalten möchten, wenn die Bewertung abgeschlossen ist. | Benachrichtigungen |
| Erweiterte Parameter | ||
| ConcurrentAccountScans | Geben Sie für Scans mehrerer Konten die Anzahl der gleichzeitig zu scannenden Konten an. Dies ist nützlich für große Organisationen mit vielen Konten. Die Auswahl von mehr als drei ändert die Größe der CodeBuild-Instanz und kann zusätzliche Kosten verursachen. | |
| CodeBuildTimeout | Legen Sie das Timeout für den CodeBuild-Job fest. Der Standardwert beträgt 300 Minuten (5 Stunden). | |
| MultiAccountListOverride | Geben Sie eine durch Leerzeichen getrennte Liste der zu scannenden Konten an. Wenn Sie dieses Feld leer lassen, werden alle Konten in Ihrer Organisation gescannt. Stellen Sie sicher, dass Sie den Parameter MultiAccountScan oben auf true gesetzt haben, wenn Sie bestimmte Konten scannen möchten. Wenn Sie keinen delegierten ListAccount-Zugriff bereitstellen können, können Sie den Parameter MultiAccountListOverride angeben. | Scan mehrerer Konten |
| ProwlerOptions | Geben Sie die Parameter für Prowler an. Die --role und ARN werden automatisch am Ende der von Ihnen angegebenen Parameter hinzugefügt. Dies kann auch verwendet werden, um eine einzelne Prüfung anzugeben. | Vollständiger Scan |
| ProwlerRole | Die Rolle, die Prowler zur Durchführung des Scans annehmen soll. Ändern Sie dies, wenn Sie eine eigene Rolle mit anderen Berechtigungen angeben möchten. |
Bereitstellung
Sie können dieses Projekt verwenden, um Prowler über mehrere Konten in einer AWS-Organisation oder über ein einzelnes Konto auszuführen. Wir stellen Anweisungen zur Verwendung von AWS CloudShell oder der AWS Console bereit. Wählen Sie eine Option, um zu beginnen.
Scan eines einzelnen Kontos
Um die Self-Service Security Assessment-Lösung (SATv2) gegen ein einzelnes Konto auszuführen, folgen Sie den Anweisungen unten. Sie können die AWS CLI oder die AWS Console verwenden.
AWS CloudShell
Schritte anzeigen
Bereitstellung der Lösung
-
Melden Sie sich bei Ihrem AWS-Konto an.
-
Wählen Sie in der Navigationsleiste AWS CloudShell.
-
Geben Sie den folgenden Befehl ein, um die CloudFormation-Vorlage herunterzuladen.
wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/2-sat2-codebuild-prowler.yaml -
Geben Sie die folgenden Befehle ein, um einen S3-Bucket zum Staging der Vorlage zu erstellen. Die Vorlage ist größer als 51.200 Bytes, daher erfordert CloudFormation, dass sie auf S3 hochgeladen wird, anstatt inline übergeben zu werden.
TEMPLATE_BUCKET=sat2-cfn-templates-$(aws sts get-caller-identity --query Account --output text)-$AWS_REGION aws s3 mb s3://$TEMPLATE_BUCKET --region $AWS_REGION -
Geben Sie den folgenden Befehl ein, um die CloudFormation-Vorlage bereitzustellen. Die Option
--s3-bucketlädt die Vorlage vor der Erstellung des Stacks auf den Bucket hoch.aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \ --stack-name sat2 \ --capabilities CAPABILITY_NAMED_IAM \ --s3-bucket $TEMPLATE_BUCKET -
Nachdem der Stack erstellt wurde, können Sie den Staging-Bucket löschen. Er wird nur verwendet, um die Vorlage an CloudFormation zu übergeben.
aws s3 rb s3://$TEMPLATE_BUCKET --force
AWS Console
Schritte anzeigen
Bereitstellung der Lösung
- Laden Sie die CloudFormation-Vorlage 2-sat2-codebuild-prowler.yaml herunter.
- Navigieren Sie zur AWS CloudFormation Console.
- Wählen Sie im Navigationsbereich Stacks.
- Wählen Sie Stack erstellen.
- Wählen Sie unter Vorlage angeben die Option Vorlagendatei hochladen.
- Wählen Sie 2-sat2-codebuild-prowler.yaml, das Sie in Schritt 1 heruntergeladen haben.
- Wählen Sie Weiter.
- Geben Sie unter Stack-Name sat2 ein.
- Wählen Sie Weiter.
- Wählen Sie auf der Seite Stack-Optionen konfigurieren Weiter.
- Aktivieren Sie auf der Seite SAS überprüfen das Kontrollkästchen Ich bestätige, dass AWS CloudFormation möglicherweise IAM-Ressourcen erstellt. und wählen Sie Senden.
Scan mehrerer Konten
Die Self-Service Security Assessment-Lösung (SAT) unterstützt auch Scans mehrerer Konten. Sie müssen eine Voraussetzungsrolle in jedem Konto bereitstellen, das Sie scannen möchten. Um SATv2 für mehrere Konten auszuführen, folgen Sie den Anweisungen unten. Sie können die AWS CLI oder die AWS Console verwenden.
Diese Anweisungen setzen voraus, dass Sie bereits über die Voraussetzungen für Stack-Set-Operationen verfügen. Weitere Informationen finden Sie im AWS CloudFormation-Benutzerhandbuch.
Hinweis: StackSets gelten nicht für das Verwaltungskonto. Um das Verwaltungskonto zu bewerten, stellen Sie die 1-sat2-member-role als CloudFormation-Stack bereit.
AWS CloudShell
Schritte anzeigen
Schritt 1: Voraussetzungsrolle bereitstellen
-
Melden Sie sich bei Ihrem AWS-Verwaltungskonto an.
-
Wählen Sie in der Navigationsleiste AWS CloudShell.
-
Identifizieren Sie, von welchem Konto aus Sie den Prowler-Scan ausführen werden. Kunden verwenden typischerweise ein Sicherheits-Tooling-Konto oder ein Audit-Konto. Notieren Sie sich die Konto-ID für den Parameter ProwlerAccountID.
-
Geben Sie den folgenden Befehl ein, um die CloudFormation-Vorlage herunterzuladen.
wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/1-sat2-member-roles.yaml -
Stellen Sie die CloudFormation-Vorlage über CloudFormation StackSets bereit. Aktualisieren Sie die folgenden Parameter:
- Ersetzen Sie <aws-account-id> durch die Konto-ID, von der aus Sie Prowler ausführen werden.
- Ersetzen Sie <region> durch die Region, in der Sie die Vorlage bereitstellen möchten.
aws cloudformation create-stack-set --template-body file://1-sat2-member-roles.yaml \ --stack-set-name sat2-member-roles \ --permission-model SERVICE_MANAGED \ --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=false \ --capabilities CAPABILITY_NAMED_IAM \ --parameters ParameterKey=ProwlerAccountID,ParameterValue=<aws-account-id> \ --region <region> -
Verwenden Sie den folgenden Befehl, um Stack-Instanzen für jedes Konto in Ihrer Organisation zu erstellen. Sie können eine bestimmte OU oder die Root-OU anvisieren. Aktualisieren Sie die folgenden Parameter:
- Ersetzen Sie <root-ou> durch die Organisations-Root-ID.
- Ersetzen Sie <region> durch die Region, in der Sie die Vorlage bereitstellen möchten.
aws cloudformation create-stack-instances --stack-set-name sat2-member-roles \ --deployment-targets OrganizationalUnitIds='["<root-ou>"]' \ --regions '["<region>"]' \ --operation-preferences FailureTolerancePercentage=100,MaxConcurrentPercentage=100 \ --region <region> -
Stellen Sie fest, ob für Ihr Prowler-Konto bereits ein delegierter Administrator oder eine Ressourcenrichtlinie vorhanden ist. Es ist nur eine Option erforderlich, und eine Ressourcenrichtlinie wird empfohlen, da sie granulärer ist.
Hinweis: Ressourcenrichtlinien sind in GovCloud nicht verfügbar. Sie müssen daher einen delegierten Administrator verwenden.
7a. Ihr Prowler-Konto könnte bereits über eine Delegierung verfügen. Sie können die folgenden Befehle zur Überprüfung verwenden:
aws organizations list-delegated-administrators7b. Ihr Prowler-Konto könnte bereits über eine Ressourcenrichtlinie verfügen. Sie können die folgenden Befehle zur Überprüfung verwenden:
aws organizations describe-resource-policy -
Wenn Sie keinen delegierten Administrator oder keine Ressourcenrichtlinie haben, können Sie die folgenden Befehle verwenden, um den entsprechenden Zugriff hinzuzufügen.
Hinweis: Wenn Sie keinen delegierten ListAccount-Zugriff bereitstellen können, können Sie den Parameter MultiAccountListOverride in der Vorlage
2-sat2-codebuild-prowlerangeben.Hinweis: Wenn Sie GovCloud verwenden, verwenden Sie Schritt 8a, um einen delegierten Administrator zu erstellen. Wenn Sie eine kommerzielle Region verwenden, verwenden Sie Schritt 8b, um Zugriff mit geringsten Rechten auf ListAccounts bereitzustellen.
8a. Verwenden Sie den folgenden Befehl, um einen Administrator zu delegieren, falls Sie noch keinen haben. Ersetzen Sie <aws-account-id> durch die Konto-ID, von der aus Sie Prowler ausführen werden.
aws organizations register-delegated-administrator <aws-account-id>8b. Verwenden Sie die folgenden Befehle, um eine Ressourcenrichtlinie hinzuzufügen.
-
Ersetzen Sie <aws-account-id> durch die Konto-ID, von der aus Sie Prowler ausführen werden.
aws organizations put-resource-policy --content \ '{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:root" }, "Action": [ "organizations:ListAccounts", "organizations:DescribeAccount", "organizations:ListTagsForResource", "organizations:ListParents", "organizations:DescribeOrganizationalUnit" ], "Resource": "*" } ] }'
Hinweis:
ListParentsundDescribeOrganizationalUnitfüllen die Spaltenaccount_ou_uidundaccount_ou_namein den Ergebnissen. Wenn Sie sie weglassen, funktioniert der Rest des Scans weiterhin, aber diese beiden Spalten bleiben leer. -
Schritt 2: Die SATv2-Lösung bereitstellen
Hinweis: Stellen Sie sicher, dass Sie zu dem Konto gewechselt haben, das Sie als Ausführungskonto für Prowler angegeben haben.
-
Öffnen Sie AWS CloudShell im Prowler-Konto und geben Sie den folgenden Befehl ein, um die Vorlage herunterzuladen.
wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/2-sat2-codebuild-prowler.yaml -
Geben Sie die folgenden Befehle ein, um einen S3-Bucket zum Staging der Vorlage zu erstellen. Die Vorlage ist größer als 51.200 Bytes, daher erfordert CloudFormation, dass sie auf S3 hochgeladen wird, anstatt inline übergeben zu werden.
TEMPLATE_BUCKET=sat2-cfn-templates-$(aws sts get-caller-identity --query Account --output text)-$AWS_REGION aws s3 mb s3://$TEMPLATE_BUCKET --region $AWS_REGION -
Stellen Sie die Vorlage im Prowler-Konto bereit. Setzen Sie MultiAccountScan auf true, um alle Konten in Ihrer Organisation zu scannen. Die Option
--s3-bucketlädt die Vorlage vor der Erstellung des Stacks auf den Bucket hoch.aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \ --stack-name sat2-prowler \ --capabilities CAPABILITY_NAMED_IAM \ --s3-bucket $TEMPLATE_BUCKET \ --parameter-overrides MultiAccountScan=true -
Nachdem der Stack erstellt wurde, können Sie den Staging-Bucket löschen. Er wird nur verwendet, um die Vorlage an CloudFormation zu übergeben.
aws s3 rb s3://$TEMPLATE_BUCKET --force
AWS Console
Schritte anzeigen
Schritt 1: Voraussetzungsrolle bereitstellen
-
Laden Sie die Dateien 1-sat2-member-roles.yaml und 2-sat2-codebuild-prowler.yaml herunter.
-
Stellen Sie die CloudFormation-Vorlage über CloudFormation StackSets bereit. Aktualisieren Sie die folgenden Parameter:
- Ersetzen Sie <aws-account-id> durch die Konto-ID, von der aus Sie Prowler ausführen werden.
- Ersetzen Sie <region> durch die Region, in der Sie die Vorlage bereitstellen möchten.3. Navigieren Sie zur AWS-CloudFormation-Konsole.
-
Wählen Sie im Navigationsbereich StackSets aus.
-
Wählen Sie Create StackSet.
-
Lassen Sie bei Permissions die Option Service-managed permissions ausgewählt.
-
Wählen Sie unter Specify template die Option Upload a template file aus.
-
Wählen Sie 1-sat2-member-roles.yaml, das Sie in Schritt 1-1 heruntergeladen haben.
-
Wählen Sie Next.
-
Geben Sie unter Stack name sat2-member-role ein.
-
Geben Sie unter Parameters Folgendes ein:
- ProwlerAccountID – Die Konto-ID, von der aus Sie Prowler ausführen werden.
-
Wählen Sie Next.
-
Wählen Sie auf der Seite Configure StackSet options die Option Next.
-
Geben Sie unter Set deployment options Folgendes ein:
- Lassen Sie unter Deployment targets die Option Deploy to organization ausgewählt.
- Wählen Sie unter Specify regions die Region us-east-1 aus.
- Wählen Sie unter Region Concurrency die Option Parallel aus.
-
Wählen Sie Next.
-
Aktivieren Sie auf der Seite Review das Kontrollkästchen I acknowledge that AWS CloudFormation might create IAM resources. und wählen Sie Submit.
Schritt 2: Delegierten Administrator für AWS Organizations aktivieren
Stellen Sie fest, ob für das Konto, in dem Sie Prowler bereitstellen möchten, bereits ein delegierter Administrator oder eine Ressourcenrichtlinie vorhanden ist. Es wird empfohlen, Prowler von Ihrem Sicherheits-Tooling-Konto (Audit) aus auszuführen. Um zu aktualisieren oder zu überprüfen, dass das Audit-Konto über Berechtigungen für ListAccounts verfügt, führen Sie die folgenden Schritte aus.
-
Navigieren Sie zur AWS-Organizations-Konsole.
-
Wählen Sie im Navigationsbereich Settings aus.
-
Fügen Sie unter Delegated administrator for AWS Organizations die folgende Anweisung hinzu.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:root" }, "Action": [ "organizations:ListAccounts", "organizations:DescribeAccount", "organizations:ListTagsForResource", "organizations:ListParents", "organizations:DescribeOrganizationalUnit" ], "Resource": "*" } ] }Hinweis:
ListParentsundDescribeOrganizationalUnitfüllen die Spaltenaccount_ou_uidundaccount_ou_namein den Ergebnissen. Wenn Sie sie weglassen, funktioniert der Rest des Scans weiterhin, aber diese beiden Spalten bleiben leer.
Schritt 3: Die SATv2-Lösung bereitstellen
-
Navigieren Sie in dem Konto, von dem aus Sie das Tool ausführen werden (ProwlerAccountID), zur AWS-CloudFormation-Konsole.
-
Wählen Sie im Navigationsbereich Stacks aus.
-
Wählen Sie Create stack.
-
Wählen Sie unter Specify template die Option Upload a template file aus.
-
Wählen Sie 2-sat2-codebuild-prowler.yaml, das Sie in Schritt 1-1 heruntergeladen haben.
-
Wählen Sie Next.
-
Geben Sie unter Stack name sat2-prowler ein.
-
Wählen Sie im Abschnitt Parameters für MultiAccountScan die Option true aus.
-
Sie können optional die Berichterstellung aktivieren, um eine Zusammenfassung aller Konten in einer einzigen CSV-Datei zu erhalten. Wählen Sie für Reporting die Option true aus.
-
Wählen Sie Next.
-
Wählen Sie auf der Seite Configure stack options die Option Next.
-
Aktivieren Sie auf der Seite Review SAS das Kontrollkästchen I acknowledge that AWS CloudFormation might create IAM resources. und wählen Sie Submit.
Ergebnisse überprüfen
Nach der Bereitstellung der Lösung startet eine Lambda-Funktion das CodeBuild-Projekt. Nachdem das CodeBuild-Projekt den Build abgeschlossen hat, werden die Prowler-Ergebnisse in den erstellten Amazon-S3-Bucket hochgeladen. Wenn Sie Benachrichtigungen konfiguriert haben, erhalten Sie eine E-Mail, sobald der Prowler-Scan abgeschlossen ist. Wenn Sie die Berichterstellung konfiguriert haben, finden Sie eine konsolidierte CSV-Datei im Ordner /reports.
Wenn Sie keine E-Mail-Benachrichtigungen konfiguriert haben, können Sie den Fortschritt über die CodeBuild-Konsole überwachen.
Um die Ergebnisse zu überprüfen, führen Sie die folgenden Schritte aus.
-
Navigieren Sie in dem Konto, in dem Sie Prowler bereitgestellt haben, zur Amazon-S3-Konsole.
-
Wählen Sie den Bucket aus, der mit sat2-prowler-prowlerfindingsbucket- beginnt.
-
Wählen Sie den Ordner für das gewünschte Ausgabeformat und dann die Ordner
scan_date=undscan_time=für den Lauf, den Sie überprüfen möchten.Jedes Ausgabeformat hat seinen eigenen Ordner auf oberster Ebene, und jeder Lauf schreibt in einen Unterordner
scan_date=JJJJ-MM-TT/scan_time=HHMMSSdarunter. Die Zeit ist die UTC-Zeit, zu der der Scan gestartet wurde:csv/scan_date=2026-09-01/scan_time=204955/ Prowlers CSV-Ergebnisse, wie geschrieben html/scan_date=2026-09-01/scan_time=204955/ HTML-Berichte pro Konto json/scan_date=2026-09-01/scan_time=204955/ JSON pro Konto ocsf-json/scan_date=2026-09-01/scan_time=204955/ OCSF-JSON pro Konto parquet/scan_date=2026-09-01/scan_time=204955/ die Kopie, die Athena abfragt compliance/scan_date=2026-09-01/scan_time=204955/ Compliance-CSVs, sofern erstellt reports/ konsolidierte CSV und DashboardJeder Lauf erhält seinen eigenen Ordner. Wenn Sie die Lösung erneut ausführen, werden neue Ergebnisse daher nie mit alten vermischt – auch nicht, wenn Sie sie mehrmals am selben Tag ausführen. Frühere Läufe werden aufbewahrt, sodass Sie sie vergleichen können.
-
Für jedes Konto gibt es 4 Dateitypen (csv, html, json, json-ocsf) im Format
prowler-output-<aws-account-id>-<datetime>. -
Wählen Sie eines der HTML-Objekte aus.
-
Wählen Sie Open.

-
Ein neues Fenster mit Ihrem Bericht wird geöffnet. Sie können die Filter verwenden, um die Ergebnisse zu identifizieren und zu priorisieren.

SATv2-Dashboard (empfohlen)
Wenn Sie die Berichterstellung aktiviert haben, befindet sich ein statisches HTML-Dashboard im Berichtsordner.
- Wählen Sie das Objekt satv2-dashboard.html aus und wählen Sie Open.
- Wählen Sie die konsolidierte CSV aus, wählen Sie Actions und dann Share with a presigned URL.
Hinweis: Geben Sie Ihre presigned URL nicht an Dritte weiter. Eine presigned URL verwendet Sicherheitsanmeldeinformationen, um zeitlich begrenzte Berechtigungen zum Herunterladen von Objekten zu gewähren. Die URL kann in einen Browser eingegeben oder von einem Programm zum Herunterladen des Objekts verwendet werden. Die von der presigned URL verwendeten Anmeldeinformationen stammen von dem AWS-Benutzer, der die URL erstellt hat. Weitere Informationen finden Sie unter Sharing objects with presigned URLs.
- Geben Sie unter number of minutes den Wert 1 ein.
- Fügen Sie die URL in die Seite satv2-dashboard.html ein.
- Sehen Sie sich eine Beispielausgabe des Dashboards in img/satv2-dashboard.png an.
Prowler-Dashboard
Prowler verfügt über ein integriertes Dashboard zur Überprüfung der Ergebnisse. Um das Prowler-Dashboard zu verwenden, muss Prowler lokal installiert sein und Sie müssen die Prowler-Ergebnisse lokal herunterladen.
Sie benötigen die AWS Command Line Interface (CLI) und gültige Anmeldeinformationen. Weitere Informationen finden Sie im AWS Command Line Interface-Benutzerhandbuch.
-
Installieren Sie Prowler. Weitere Informationen finden Sie in den Prowler-Installationsanweisungen.
pip install prowler -
Ermitteln Sie den Namen des Amazon-S3-Buckets. Der Name des Buckets befindet sich in der CloudFormation-Konsole als Ressource ProwlerFindingsBucket. Alternativ können Sie zur S3-Konsole navigieren und nach einem Bucket im Format
{stack_name}-prowlerfindingsbucket-{ID}suchen. -
Laden Sie die CSVs und Compliance-Daten von S3 herunter. Wenn Sie keinen vollständigen Scan ausgeführt haben, liegen möglicherweise keine Compliance-Daten vor. Ersetzen Sie
{bucket_name}durch den Namen Ihres Buckets sowie{scan_date}und{scan_time}durch den Lauf, den Sie laden möchten, z. B.2026-09-01und204955. Verwenden Sieaws s3 ls s3://{bucket_name}/csv/scan_date={scan_date}/, um die verfügbaren Läufe aufzulisten.aws s3 sync s3://{bucket_name}/compliance/scan_date={scan_date}/scan_time={scan_time}/ output/compliance/ aws s3 sync s3://{bucket_name}/csv/scan_date={scan_date}/scan_time={scan_time}/ output/Hinweis: Synchronisieren Sie jeweils nur einen Lauf. Das Prowler-Dashboard liest
output/*.csvund durchsucht keine Unterordner. Wenn Sie die Ordnerscan_date=selbst nachoutput/kopieren, erhalten Sie ein leeres Dashboard. Wenn Sie zwei Läufe gleichzeitig laden, würde jedes Ergebnis doppelt angezeigt. -
Führen Sie das Dashboard aus. Verwenden Sie den folgenden Befehl, um das Dashboard auszuführen. Standardmäßig startet es unter http://127.0.0.1:11666/.
prowler dashboard
Scan-Typen
Standardmäßig führt SAT2 einen Basisscan mit 13 Prüfungen durch. Sie können einen mittleren oder vollständigen Scan ausführen, indem Sie einen anderen Wert für den Parameter ProwlerScanType wählen.
Ein Scan eines einzelnen Kontos mit der Option für den mittleren Scan würde beispielsweise diesen Befehl verwenden:```bash
aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml
--stack-name sat2-prowler
--capabilities CAPABILITY_NAMED_IAM
--s3-bucket $TEMPLATE_BUCKET
--parameter-overrides ProwlerScanType=Intermediate
>Hinweis: Die Option `--s3-bucket` ist erforderlich, da die Vorlage größer als 51.200 Bytes ist, dem Maximum, das CloudFormation inline akzeptiert. `$TEMPLATE_BUCKET` ist der Staging-Bucket, der in den oben genannten CloudShell-Bereitstellungsschritten erstellt wurde. Dies gilt für jedes `aws cloudformation deploy`-Beispiel in dieser README.
Checks werden häufig hinzugefügt. Um die neuesten Checks zu sehen, führen Sie den Befehl `prowler aws --list-checks` aus. Für jede Check-Ebene wurde unten ein Beispiel bereitgestellt.
### Basis-Scan
Um eine Liste der Checks zu sehen, lesen Sie [Basis-Checks](https://github.com/awslabs/aws-security-assessment-solution/blob/main/checks/basic_checks.txt).
- Manueller Check – Aktuelle Kontaktdaten pflegen.
- Veraltete Lambda-Runtimes finden.
- Sicherstellen, dass CloudTrail in allen Regionen aktiviert ist.
- Sicherstellen, dass AWS Config in allen Regionen aktiviert ist.
- Sicherstellen, dass keine Sicherheitsgruppen eingehenden Datenverkehr von 0.0.0.0/0 oder ::/0 zu einem beliebigen Port zulassen.
- Prüfen, ob GuardDuty aktiviert ist.
- Sicherstellen, dass die IAM-Passwortrichtlinie mindestens einen Kleinbuchstaben erfordert.
- Sicherstellen, dass die IAM-Passwortrichtlinie mindestens eine Zahl erfordert.
- Sicherstellen, dass die IAM-Passwortrichtlinie mindestens ein Symbol erfordert.
- Sicherstellen, dass die IAM-Passwortrichtlinie mindestens einen Großbuchstaben erfordert.
- Sicherstellen, dass MFA für das Root-Konto aktiviert ist.
- Sicherstellen, dass Zugriffsschlüssel alle 90 Tage oder weniger rotiert werden.
- Sicherstellen, dass keine S3-Buckets für „Jeder“ oder „Beliebiger AWS-Benutzer“ geöffnet sind.
### Zwischen-Scan
Um eine Liste der Checks zu sehen, lesen Sie [Zwischen-Checks](https://github.com/awslabs/aws-security-assessment-solution/blob/main/checks/intermediate_checks.txt).
Dieser Scan fügt `--severity critical high` zu den Prowler-Scanoptionen hinzu. Mit dieser Auswahl führt Prowler alle Sicherheitschecks aus, die zu kritischer oder hoher Schwere führen.
### Vollständiger Scan
Um eine Liste der Checks zu sehen, lesen Sie [Vollständige Checks](https://github.com/awslabs/aws-security-assessment-solution/blob/main/checks/full_checks.txt).
Diese Option fügt dem Prowler-Scan keine zusätzlichen Parameter hinzu. Dies führt dazu, dass Prowler 500+ Checks ausführt.
Sie können den vollständigen Scan auch verwenden, um den Scan nach Ihren Wünschen anzupassen.
Wählen Sie für **ProwlerScanType** die Option **Full**.
Fügen Sie für **ProwlerOptions** den Check hinzu. Um beispielsweise nur zu prüfen, ob GuardDuty aktiviert ist, geben Sie Folgendes ein:
`aws --ignore-exit-code-3 -c guardduty_is_enabled`
## Benachrichtigungen
Sie können optional eine E-Mail-Adresse im Parameter EmailAddress angeben, wenn Sie die CloudFormation-Vorlage bereitstellen. Dadurch wird ein SNS-Thema erstellt und eine E-Mail gesendet, wenn der CodeBuild-Job abgeschlossen ist.
Dies kann hilfreich sein, wenn Sie längere Scans oder Scans über viele Konten hinweg ausführen.
Beispielsweise würde ein Einzelkonto-Scan mit E-Mail-Benachrichtigungen diesen Befehl verwenden:```bash
aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \
--stack-name sat2-prowler \
--capabilities CAPABILITY_NAMED_IAM \
--s3-bucket $TEMPLATE_BUCKET \
--parameter-overrides [email protected]
Mit oder ohne den optionalen Parameter EmailAddress können Sie den Fortschritt in der CodeBuild-Konsole einsehen.
-
Navigieren Sie zur CodeBuild-Konsole.
-
Wählen Sie im Navigationsbereich unter Build die Option Build-Projekte.
-
Wählen Sie das Build-Projekt, das mit ProwlerCodeBuild- beginnt.
-
Unter Build-Verlauf sehen Sie den letzten Lauf.

-
Optional können Sie Build starten wählen, um einen weiteren Scan mit den Optionen auszuführen, die Sie bei der Bereitstellung der Lösung gewählt haben.
Berichtszusammenfassung
Sie können optional die Berichterstellung aktivieren, um mehrere Prowler-Scanergebnisse in einer einzigen Datei zusammenzufassen. Dies kann hilfreich sein, wenn Prowler über mehrere Konten in einer AWS-Organisation ausgeführt wird. Die Funktion zur Berichtszusammenfassung ist standardmäßig deaktiviert. Um die Berichterstellung zu aktivieren, setzen Sie den Parameter Reporting beim Bereitstellen der CloudFormation-Vorlage auf true. Dadurch werden eine Athena-WorkGroup, eine Glue-Tabelle erstellt und automatisch eine Abfrage ausgeführt, um die Ergebnisse zu konsolidieren. Die zusammengefasste CSV-Datei befindet sich im selben S3-Bucket wie die Prowler-Ergebnisse im Ordner /reports.
Wenn Sie eine E-Mail-Adresse angeben, während die Berichterstellung aktiviert ist, erhalten Sie eine zweite E-Mail, sobald die Athena-Abfrage abgeschlossen ist.
Wie die Athena-Tabelle aufgebaut ist
Athena fragt die Kopie der Ergebnisse im parquet/-Ordner ab und nicht die CSV-Datei von Prowler. Das CodeBuild-Projekt konvertiert jede CSV-Datei vor dem Hochladen in Parquet, und die Glue-Tabelle prowler verweist auf parquet/.
Die Konvertierung existiert, weil Prowler ab Version 5.17.0 mehrzeiliges Markdown in den Prüfmetadaten mitliefert, sodass die Felder DESCRIPTION, RISK und REMEDIATION_* Zeilenumbrüche enthalten. Prowler setzt diese Felder korrekt in Anführungszeichen, aber Athena liest CSV über das TextInputFormat von Hive, das Datensätze an Zeilenumbrüchen aufteilt, bevor ein SerDe ausgeführt wird. Eine CSV-gestützte Tabelle liefert daher eine Zeile pro physischer Zeile statt einer Zeile pro Befund und verwirft stillschweigend die Spalten, die auf das erste mehrzeilige Feld folgen. Parquet verwendet keine Zeilenumbrüche als Datensatzgrenzen, sodass der Text unversehrt erhalten bleibt. Parquet komprimiert außerdem den wiederholten Behebungstext stark, was Abfragen günstiger macht: Ein Satz von 116 MB CSV-Dateien wird zu etwa 3 MB Parquet.
Der Ordner csv/ bleibt exakt so, wie Prowler ihn geschrieben hat, sodass das Prowler-Dashboard und vorhandene CSV-Tools weiterhin funktionieren.
Scan-Verlauf und Duplikate
Die Tabelle ist auf scan_date und scan_time partitioniert, sodass jeder Lauf der Lösung seine eigene Partition erhält. Daraus folgen zwei Dinge:
- Die konsolidierte CSV-Datei in
/reportsdeckt nur den letzten Lauf ab. Ein erneuter Lauf der Lösung zählt Befunde daher nie doppelt, und Befunde, die nicht mehr existieren, bleiben nicht im Bericht. - Frühere Läufe bleiben abfragbar.
scan_dateundscan_timesind normale Spalten, sodass Sie Ergebnisse zwischen Läufen vergleichen können. Die gespeicherte Abfrage Prowler-Scan-Trend tut dies, eine Zeile pro Lauf.
Eine Partitionierung nur nach Datum ist nicht ausreichend. Ein zweiter Scan am selben Tag würde in dieselbe Partition schreiben, und seine Befunde würden mit denen des früheren Laufs zusammengeführt statt sie zu ersetzen. Jeder Befund, den der neuere Scan nicht mehr meldet – weil eine Ressource gelöscht wurde, ein Konto die Organisation verließ, eine Mitgliedsrolle nicht mehr funktionierte oder der Scan-Typ eingeschränkt wurde – würde weiterhin im Bericht erscheinen und aktuell wirken.
Neue Partitionen werden automatisch registriert: Die Reporting-Lambda führt MSCK REPAIR TABLE aus, bevor sie die Konsolidierungsabfrage ausführt. Es gibt also keinen Crawler, den man planen müsste, und nichts, was von Hand hinzugefügt werden müsste.
Wenn Sie eigene Athena-Abfragen schreiben, beschränken Sie diese auf einen einzelnen Lauf, sonst aggregieren Sie jeden Scan im Bucket auf einmal. Beide Schlüssel haben eine feste Breite, sodass ein Vergleich der verketteten Werte die Läufe chronologisch ordnet:```sql SELECT severity, count(*) FROM "{bucket_name}"."prowler" WHERE status = 'FAIL' AND concat(scan_date, scan_time) = ( SELECT max(concat(scan_date, scan_time)) FROM "{bucket_name}"."prowler" ) GROUP BY severity
Um einen ganzen Tag über alle seine Läufe abzufragen, filtern Sie nur nach `scan_date`.
>Hinweis: Wenn Sie eine Bereitstellung aktualisieren, die das frühere Nur-`scan_date`-Layout verwendet hat, sind Ergebnisse von vor der Aktualisierung für die neue Tabelle nicht sichtbar, da deren S3-Pfade keine `scan_time=`-Ebene haben. Die Daten bleiben in S3 unberührt. Lassen Sie entweder den nächsten Scan die Tabelle neu befüllen, oder verschieben Sie die alten Dateien in einen `scan_time=`-Ordner, z. B. `aws s3 mv s3://{bucket_name}/parquet/scan_date={scan_date}/ s3://{bucket_name}/parquet/scan_date={scan_date}/scan_time=000000/ --recursive`, und führen Sie dann `MSCK REPAIR TABLE prowler` in Athena aus.
Beispielsweise würde ein Multi-Account-Scan mit aktivierten Berichten und E-Mail-Benachrichtigungen diesen Befehl verwenden:```bash
aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \
--stack-name sat2-prowler \
--capabilities CAPABILITY_NAMED_IAM \
--s3-bucket $TEMPLATE_BUCKET \
--parameter-overrides MultiAccountScan=true Reporting=true [email protected]

Zwei gespeicherte Abfragen werden als Beispiele erstellt:
| Gespeicherte Abfrage | Was sie anzeigt |
|---|---|
| Prowler-Organisationsübersicht | Fehlgeschlagene Prüfungen über jedes bewertete Konto, für den letzten Scan. |
| Prowler-Scan-Trend | Fehlgeschlagene Prüfungen pro Scan-Datum und Schweregrad, um Läufe im Zeitverlauf zu vergleichen. |
Um eine Abfrage zu überprüfen und auszuführen, führen Sie die folgenden Schritte aus:
-
Navigieren Sie zur Amazon-Athena-Konsole.
-
Wählen Sie die Arbeitsgruppe, die mit sat2-prowler-* beginnt.
-
Wählen Sie die Registerkarte Gespeicherte Abfragen.
-
Wählen Sie die Abfrage aus, die Sie ausführen möchten, indem Sie die ID auswählen.

-
Wählen Sie Ausführen, um die Abfrage auszuführen.

Häufig gestellte Fragen (FAQ)
- Gibt es Kosten?
- Diese Lösung ist so konzipiert, dass sie innerhalb des AWS Free Tier läuft.
- Für Amazon CodeBuild erhalten Kunden 100 Build-Minuten pro Monat.
- Für Kunden, die das Free Tier mit CodeBuild, S3 und Lambda bereits überschritten haben, kostet diese Lösung weniger als 1 $ pro Ausführung.
- Ist dies ein kontinuierliches Überwachungs- und Berichtstool?
- Nein. Dies ist eine einmalige Bewertung. Wir empfehlen Kunden, AWS Security Hub für kontinuierliche Bewertungen zu verwenden.
- Integriert sich dies mit GuardDuty, Security Hub, CloudWatch usw.?
- Nein. Sie können die Anweisungen in diesem Blog befolgen, um Prowler und Security Hub zu integrieren.
- Wie behebe ich die Probleme in den Berichten?
- Im Allgemeinen sollten die Probleme im Bericht mit leicht erkennbaren Korrekturen beschrieben sein. Bitte folgen Sie auch der öffentlichen Dokumentation für jedes Tool (Prowler). Wenn dies nicht ausreicht, wenden Sie sich bitte an Ihr AWS-Kontoteam oder den AWS-Support, um die Berichte zu verstehen und an der Behebung der Probleme zu arbeiten.
- Welche Erkenntnisse meldet Prowler für SATv2?
Prüfung Abhilfe Prüfen, ob Lambda-Funktionen, die API-Operationen aufrufen, von CloudTrail aufgezeichnet werden. CloudTrail ist eine Konfiguration auf AWS-Kontoebene. CloudTrail sollte unabhängig von SATv2 aktiviert sein. Beendigungsschutz für CloudFormation-Stacks aktivieren SATv2 ist dafür gedacht, für einen bestimmten Zeitpunkt ausgeführt und dann gelöscht zu werden. Wenn der Stack beendet wird, bleiben die Erkenntnisse weiterhin im S3-Bucket erhalten. Prüfen, ob CloudWatch-Loggruppen durch AWS KMS geschützt sind. Loggruppendaten sind in CloudWatch Logs immer verschlüsselt. Standardmäßig verwendet CloudWatch Logs serverseitige Verschlüsselung für die Protokolldaten im Ruhezustand. Ein vom Kunden verwalteter KMS-Schlüssel ist nicht konfiguriert, um Kosten zu sparen. Prüfen, ob CloudWatch-Loggruppen eine Aufbewahrungsrichtlinie von bestimmten Tagen haben. Die Aufbewahrung von Loggruppen ist standardmäßig auf 7 Tage festgelegt. Diese Prüfung sucht nach Loggruppen mit einer Aufbewahrung von weniger als einem Jahr. Prüfen, ob S3-Buckets KMS-Verschlüsselung aktiviert haben. Alle Amazon-S3-Buckets haben standardmäßig Verschlüsselung konfiguriert, und Objekte werden automatisch mithilfe serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsselt. Ein vom Kunden verwalteter KMS-Schlüssel ist nicht konfiguriert, um Kosten zu sparen. Prüfen, ob das MFA-Löschen für S3-Buckets nicht aktiviert ist. Prowler-Bewertungsergebnisse können neu generiert werden und erfordern kein MFA-Löschen. Prüfen, ob S3-Buckets Objektsperre aktiviert haben Prowler-Bewertungsergebnisse können neu generiert werden und erfordern keine S3-Objektsperre. Prüfen, ob S3-Buckets Serverzugriffsprotokollierung aktiviert haben Prowler-Bewertungsergebnisse erfordern keine Serverzugriffsprotokollierung.
Bereinigung
Nachdem Sie die Lösung ausgeführt haben, sollten Sie die CloudFormation-Stacks löschen, um Ressourcen zu entfernen, die nicht mehr benötigt werden. Der S3-Bucket mit den Prowler-Scanergebnissen bleibt erhalten.
Um die Sicherheitsbewertungslösung aus Ihrem Konto zu entfernen, führen Sie die folgenden Schritte aus.
-
Navigieren Sie zur AWS-CloudFormation-Konsole in dem Konto, von dem aus Sie das Tool ausgeführt haben (ProwlerAccountID).
-
Wählen Sie im Navigationsbereich Stacks.
-
Wählen Sie den Stack sat2-prowler.
-
Wählen Sie Löschen.
Wenn Sie das StackSet für Mitgliedsrollen bereitgestellt haben, um mehrere Konten zu scannen, führen Sie die folgenden Schritte aus.
-
Navigieren Sie zur AWS-CloudFormation-Konsole in dem Konto, in dem Sie das StackSet für Mitgliedsrollen erstellt haben.
-
Wählen Sie im Navigationsbereich StackSets.
-
Wählen Sie das StackSet sat2-member-roles.
-
Wählen Sie Aktionen und dann Stacks aus StackSet löschen.
-
Geben Sie dieselbe AWS-OU-ID an, die Sie beim Erstellen des StackSets verwendet haben.
-
Wählen Sie unter Regionen angeben die Option Alle Regionen hinzufügen.
-
Wählen Sie Weiter und Senden.
Nachdem die Änderung abgeschlossen ist, können Sie das StackSet löschen.
-
Wählen Sie das StackSet sat2-member-roles.
-
Wählen Sie Aktionen und dann StackSet löschen.
Wenn Sie den Amazon-S3-Bucket mit den Scanergebnissen entfernen möchten, befolgen Sie die Schritte im Amazon-S3-Benutzerhandbuch, um die Objekte und den Bucket zu löschen. Wenn Sie die Lösung erneut ausführen, wird ein neuer S3-Bucket für Ihre Ergebnisse erstellt.
Sicherheit
Weitere Informationen finden Sie unter CONTRIBUTING.
Lizenz
Dieses Projekt ist unter der Apache-2.0-Lizenz lizenziert.