Der Security Hub Compliance Analyzer (SHCA) generiert Artefakte zur Unterstützung der Akkreditierung des Informationssystems des Department of Defense Risk Management Framework (RMF). Unter Verwendung der von Amazon Web Services bereitgestellten Dokumentation und Zuordnung von NIST800-53-Rev-5-Kontrollen zu AWS Security Hub-Sicherheitskontroll-IDs fordert SHCA die aktuelle Umgebungskonformität von Security Hub an und generiert eine in Amazon S3 gespeicherte ZIP-Datei mit diskreten Artefakten in CSV, JSON, OCSF stellt SecOps Artefakte zum Import in das RMF-Tool zur Verfügung.
Security Hub mit dem Sicherheitsstandard NIST Special Publication 800-53 Revision 5 und mindestens 24 Stunden in Betrieb, um Ergebnisse zu erzielen
** Weitere Informationen zum Aktivieren dieses Standards finden Sie unter Aktivieren und Deaktivieren von Sicherheitsstandards.
Alle Erkenntnisse im Security Hub werden extrahiert und in JSON gespeichert.
Das neueste Ergebnis jeder Steuer-/Ressourcen-ID im JSON wird zur besseren Analyse und Lesbarkeit in eine CSV-Datei geschrieben
Aus der CSV-Datei wird nach der folgenden Methodik eine Zusammenfassung aller Kontrollen erstellt
Dieser Schritt erstellt eine Datei für jede NIST SP 800-53-Kontrolle basierend auf dem Status dieser Kontrolle und speichert sie in zwei Ordnern:
Darüber hinaus ruft dieser Schritt verschiedene Dateien aus einem S3-Bucket ab und schließt sie ein. Die Ordner und ihr Inhalt sind:
Diese Dateien liefern umfassende Daten über den Sicherheitsstatus von AWS-Ressourcen, basierend auf den automatisierten Sicherheitsüberprüfungen NIST SP 800-53 von Security Hub.
Folgendes müssen Sie installieren, um das AWS CDK verwenden zu können.
Validierung der Installation von Python 3.7 oder höher, pip, virtualenv und Node.js unter Linux
node --version
Alle AWS CDK-Entwickler, auch diejenigen, die in Python, Java oder C# arbeiten, benötigen Node.js 14.15.0 oder höher. Alle unterstützten Sprachen verwenden dasselbe Backend, das auf Node.js läuft. Wir empfehlen eine Version im aktiven Langzeitsupport. Ihre Organisation hat möglicherweise eine andere Empfehlung.
Weitere Voraussetzungen hängen von der Sprache ab, in der Sie AWS CDK-Anwendungen entwickeln, und lauten wie folgt:
python3 --version
pip3 --version
virtualenv --version
wget --version
jq --version
npm install -g aws-cdk
Führen Sie den folgenden Befehl aus, um die korrekte Installation zu überprüfen und die Versionsnummer des AWS CDK auszudrucken.
cdk --version
Die Datei cdk.json
teilt dem CDK Toolkit mit, wie die App ausgeführt werden soll.
Dieses Projekt ist wie ein Standard-Python-Projekt eingerichtet. Der Initialisierungsprozess erstellt auch eine virtuelle Umgebung innerhalb dieses Projekts, die im Verzeichnis .venv
gespeichert ist. Um die virtuelle Umgebung zu erstellen, wird davon ausgegangen, dass sich in Ihrem Pfad eine ausführbare python3
(oder python
für Windows) mit Zugriff auf das venv
-Paket befindet. Wenn die automatische Erstellung der virtuellen Umgebung aus irgendeinem Grund fehlschlägt, können Sie die virtuelle Umgebung manuell erstellen.
So erstellen Sie manuell eine virtuelle Umgebung unter MacOS und Linux:
$ python3 -m venv .venv
Nachdem der Init-Prozess abgeschlossen und die virtuelle Umgebung erstellt wurde, können Sie mit dem folgenden Schritt Ihre virtuelle Umgebung aktivieren.
$ source .venv/bin/activate
Wenn Sie eine Windows-Plattform verwenden, würden Sie die virtuelle Umgebung wie folgt aktivieren:
% .venvScriptsactivate.bat
Sobald die virtuelle Umgebung aktiviert ist, können Sie die erforderlichen Abhängigkeiten installieren.
$ pip install -r requirements-deploy.txt
Laden Sie AWS Lambda Layer für AWS SDK for Pandas (AWS Wrangler) herunter und platzieren Sie es am folgenden Speicherort: Weitere Informationen finden Sie in README.md.
bash update_aws_wrangler.sh
Für die Bereitstellung von Stacks mit dem AWS CDK müssen während der Bereitstellung dedizierte Amazon S3-Buckets und andere Container für AWS CloudFormation verfügbar sein. Das Erstellen dieser wird als Bootstrapping bezeichnet. Geben Sie zum Bootstrap Folgendes ein:
cdk bootstrap aws://ACCOUNT-NUMBER/REGION
An diesem Punkt können Sie nun die CloudFormation-Vorlage für diesen Code synthetisieren.
$ cdk synth
Ändern Sie die folgenden Werte in cdk.json
– „environment“: "shca"
– Geben Sie diesem einen beschreibenden Namen für die SHCA-Bereitstellung. Dies kann ein beliebiger Wert sein und hat keinen Einfluss auf die Funktionalität. Es dient dazu, SHCA-Ressourcen innerhalb des AWS-Kontos zu kennzeichnen. – „vpc_cidr“: "10.30.0.0/24"
– Legt den CIDR-Bereich für eine kleine VPC fest, die für die Ausführung der Lambda-Funktionen erstellt wurde, damit die [Lambda.3] Lambda-Funktionen nicht in einem VPC-Ergebnis erstellt werden sollten. Wählen Sie einen CIDR-Bereich aus, der in Ihrer Umgebung noch nicht verwendet wird. – „schedule_frequenz_days“: 7
– Diese Einstellung legt fest, wie oft SHCA Compliance-Berichte erstellen soll. – „send_failure_notification_email“: true
oder false
– Bei true
wird die E-Mail an die in failure_notification_email
angegebene Adresse gesendet. – „failure_notification_email“: [email protected]
– Diese E-Mail-Adresse erhält Benachrichtigungen, wenn die Ausführung von SHCA fehlschlägt.
Von hier aus haben Sie zwei Möglichkeiten, SHCA zu installieren (CloudShell oder CDK).
Wenn Sie keinen Zugriff auf einen Laptop oder eine Entwicklungsumgebung haben, in der Sie die oben genannten Voraussetzungen installieren können, kann der CloudShell-Dienst zur Bereitstellung von SHCA verwendet werden. Darüber hinaus können wir durch die Verwendung temporärer Anmeldeinformationen von AWS IAM Identity Center eine einzige CloudShell in einem Konto verwenden, um CloudFormation-API-Aufrufe durchzuführen und Code in jedem Konto bereitzustellen, auf das Sie Zugriff haben.
CloudShell ist von DISA für die Verwendung in IL2-IL5-Umgebungen, einschließlich kommerziellen und GovCloud-Regionen, zugelassen. Bitte wenden Sie sich an das Compliance-Personal Ihres Unternehmens, um sicherzustellen, dass CloudShell für die Verwendung in der AWS-Bereitstellung Ihres Unternehmens zugelassen ist.
Laden Sie den Quellcode wie shca-main.zip aus dem Hauptzweig dieses Repos herunter.
Navigieren Sie zum CloudShell-Dienst in dem AWS-Konto, das Sie als Bereitstellungsumgebung verwenden werden. Stellen Sie sicher, dass in Ihrer CloudShell genügend Speicherplatz vorhanden ist, bevor Sie die Bereitstellung durchführen. Wenn Ihnen der Speicherplatz ausgeht, wird es scheitern.
Laden Sie den Quellcode in CloudShell hoch. Entpacken Sie die Dateien und cd sie in das shca-main
-Verzeichnis:
unzip shca-main.zip && cd shca-main
Fügen Sie temporäre Anmeldeinformationen aus AWS IAM Identity Center für das Konto ein, in dem Sie SHCA bereitstellen möchten . Das AWS CDK verwendet diese temporären Anmeldeinformationen (jetzt als Umgebungsvariablen festgelegt), um Code im richtigen Zielkonto bereitzustellen, selbst wenn Sie CloudShell von einem anderen Konto aus verwenden.
Führen Sie aws sts get-caller-identity
aus und überprüfen Sie, ob die Haupt- und Kontonummer Ihren erwarteten Werten entspricht.
Erteilen Sie Ausführungsberechtigungen und führen Sie ./cloud_shell_deployment.sh
aus
chmod +x cloud_shell_deployment.sh && ./cloud_shell_deployment.sh
Geben Sie y
ein, wenn CDK Sie beide Male in der Shell dazu auffordert.
$ cdk deploy
cdk ls
listet alle Stacks in der App aufcdk synth
gibt die synthetisierte CloudFormation-Vorlage auscdk deploy
stellt diesen Stack in Ihrem Standard-AWS-Konto/Ihrer Standard-AWS-Region bereitcdk diff
vergleicht den bereitgestellten Stack mit dem aktuellen Statuscdk docs
Sobald SHCA bereitgestellt ist:
Navigieren Sie zum Step Functions/State Machines-Dienst:
Wählen Sie YOUR-ENVIRONMENT-NAME-State-Machine
aus
Wenn Sie SHCA gerade zum ersten Mal bereitgestellt haben, überprüfen Sie, ob die Zustandsmaschine erfolgreich ausgeführt wurde, indem Sie die Ausführung anzeigen. Wenn die Zustandsmaschine erfolgreich ausgeführt wurde, fahren Sie mit Schritt 6 fort . Andernfalls wählen Sie „Ausführung starten“ aus, um SHCA bei Bedarf auszuführen:
Wählen Sie im Popup-Fenster erneut „Ausführung starten“. Behalten Sie alle Standardwerte bei.
Scrollen Sie zum Ende der Seite und warten Sie, bis alle Schritte erfolgreich abgeschlossen wurden. Sobald der Vorgang abgeschlossen ist, wird unten „ExecutionSucceeded“ angezeigt.
Navigieren Sie zur Amazon S3-Konsole und suchen Sie den Bucket mit dem Namen „-resources-%YOUR_ACCOUNT_NUMBER%“ und wählen Sie ihn aus.
Navigieren Sie in diesem Bucket zu customer/compliance_scraper/
Laden Sie die neueste Artefakt-ZIP-Datei herunter.
Überprüfen Sie die in der ZIP-Datei enthaltenen Dateien
Weitere Informationen finden Sie unter BEITRAGEN.
Dieses Projekt ist unter der Apache-2.0-Lizenz lizenziert.