AWS Security Baselining - Part 1
Von Michael Krieg am 23. März 2021
Na? Wirklich an alles gedacht?
Du erstellst Deinen neuen AWS-Account: Nach dem ersten Login bist Du erst einmal überwältigt: so viele Services und Möglichkeiten! Aber auch so viele Fragen … Wir zeigen Dir, wie Du die ersten Schritte zum sicheren Setup gehst.
Hinweis
Alle hier genannten Services lassen sich auch mit unseren offiziellen Terraform Modulen automatisieren!
Status Quo
Dir und Deinem Unternehmen liegt Sicherheit am Herzen. Genau wie uns. Aber wo beginnen? Welche Einstellungen sind essenziell, welche zu diesem frühen Zeitpunkt eher nützlich, aber (noch) optional?
Das “goldene Setup” gibt es nicht - vielmehr ist es wichtig zu verstehen, was Du mit der AWS Cloud anfangen möchtest. Welche Applikationen Du betreiben wirst. Und am Ende auch: welches Budget hast Du zur Verfügung?
Fangen wir praktisch an: AWS Config, CloudTrail und IAM sind grundlegende Services, die Du betrachten und zum Teil auch noch aktivieren musst: denn während IAM als globaler, zentraler “Identity and Access-Management” Service von Beginn an aktiv ist, musst Du AWS Config und CloudTrail noch konfigurieren. Aber keine Sorge - wir zeigen Dir, wie das geht!
Auf einen (ersten) Blick
Werfen wir gleich einen kurzen Blick auf die elementaren Services. Wenn Du folgende Checkliste abgearbeitet hast, sind die ersten Hürden in Richtung sicherer AWS-Account genommen:
* IAM
* Password-Policy ✅
* eindeutiger Account-Alias ✅
* Config
* Config-Recorder und S3-Bucket aktivieren ✅
* Standard Regeln konfigurieren ✅
* CloudTrail
* S3-Bucket anlegen ✅
* CloudTrail aktivieren ✅
Info
In den nächsten Blogbeiträgen zum Thema schauen wir uns auch weiterführende Services an: GuardDuty
(Anomalie-Erkennung) und Shield
(DDoS Schutz).
IAM
Hier verwaltest Du Nutzer- und Nutzergruppen, Rollen und Policies: letztere steuern, was in welchem Kontext wie genau erlaubt und verboten ist. Beispielsweise: Nutzer “Bob” erhält Vollzugriff auf alle EC2-Ressourcen. Oder: Alle Nutzer der Gruppe “Billing” dürfen auf das Billing-Dashboard zugreifen, darüber hinaus erhalten Sie keinen Zugriff auf AWS Services.
Eine zentrale Password-Policy legt fest, wann ein Login-Passwort abläuft, wie viele Umlaute und Sonderzeichen enthalten sein müssen und nach wie vielen Änderungen ein schon einmal verwendetes Passwort erneut genutzt werden darf:
Und so geht’s:
1️⃣ Log Dich in Deinen AWS-Account ein und öffne die IAM Console: https://console.aws.amazon.com/iam/
2️⃣ Auf der linken Seite findest Du den Punkt “Kontoeinstellungen” (Account settings)
3️⃣ Klicke dann unterhalb von “Passwortrichtlinien” (Password policy) auf “Ändern” (Change)
4️⃣ Trage nun die gewünschten Änderungen ein und speichere diese.
5️⃣ Ändere noch die Anmelde-URL für IAM-Benutzer (Account Alias) direkt auf dem IAM Dashboard: Das verbessert die Lesbarkeit.
AWS Config
Jede Änderung im AWS-Account wird hier protokolliert und in einem S3-Bucket sicher abgelegt. Damit ist es z. B. auch möglich, frühere Versionen einer bestimmten Konfiguration mit der aktuellen zu vergleichen oder wiederherzustellen. Daneben kannst Du über sogenannte Config-Rules Compliance Richtlinien etablieren und überwachen.
Und so geht’s:
1️⃣ Log Dich in Deinen AWS-Account ein und navigiere zum AWS Config Service: https://console.aws.amazon.com/config/
2️⃣ Klicke auf “Get Started Now”
3️⃣ Wähle aus, dass alle Ressourcen aufgezeichnet werden sollen, inklusive globale wie IAM
4️⃣ Ein neues S3-Bucket wird benötigt - Du kannst es gleich an dieser Stelle anlegen lassen
5️⃣ Ein Amazon SNS-Topic können wir auch noch zu einem späteren Zeitpunkt einrichten
6️⃣ Die Erstellung der nötigen IAM Config-Role kann hier ebenfalls erfolgen
7️⃣ Abschließend wählen wir noch eine von AWS verwaltete Regel aus: root-account-hardware-mfa-enabled
. Diese prüft regelmäßig, ob ein MFA Hardware Gerät für die Anmeldung mit root
Credentials eingerichtet wurde.
Anmerkung
Nun dauert es einige Minuten, bis wir den Ressourcenbestand im Config-Dashboard finden.
AWS CloudTrail
Ob AWS Management Console, AWS SDKs, Befehlszeilentools: Alle API Anfragen werden hier sicher protokolliert. Während es bei “AWS Config” eher um Konfigurationsänderungen über einen Zeitraum und die Einhaltung von Compliance Richtlinien geht, überwacht CloudTrail eher gesamtheitlich die Kontoaktivität. Somit ergänzen sich beide Services hervorragend.
Und so geht’s:
1️⃣ Log Dich in Deinen AWS-Account ein und navigiere zu AWS CloudTrail: https://console.aws.amazon.com/cloudtrail/
2️⃣ Aktiviere CloudTrail für alle Regionen, wenn nötig.
3️⃣ Wähle nun aus, welche Events geloggt werden sollen: Wenn Du unsicher bist, wähle zunächst einmal alle aus
4️⃣ Ein neues SSE-S3-verschlüsseltes S3-Bucket wird benötigt - Du kannst es gleich an dieser Stelle anlegen lassen
5️⃣ Aktiviere die Überprüfung der geschriebenen Logfiles
6️⃣ Jetzt noch die benötigte IAM-Role anlegen lassen, und Du hast es fast geschafft
7️⃣ CloudWatch Alarme solltest Du aktivieren, wenn Du künftig über sicherheitsrelevante Aktivitäten (API Calls) benachrichtigt werden möchtest
Wie geht es weiter?
Im kommenden Blogpost aus dieser Reihe wenden wir uns dem Thema “kontinuierliche Überwachung der AWS Infrastruktur” zu: An praktischen Beispielen zeigen wir Dir, wie Du mit wenigen Zeilen Code überprüfen kannst, ob Du an alles Wichtige in Bezug auf Security gedacht hast.
Weiterführende Informationen
▶️ Setting an account password policy for IAM users
▶️ How AWS Config works
▶️ How AWS CloudTrail works