AWS Security Baselining - Part 2
Von Michael Krieg am 09. Juli 2021
Deine Cloud & Deine Workloads im Blick
Die ersten Schritte sind getan: Dein AWS-Account mit AWS Config und CloudTrail ausgerüstet. Du hast außerdem IAM grundlegend konfiguriert. Jetzt braucht es Werkzeuge, damit Du die Sicherheit Deiner AWS Workloads kontinuierlich im Blick behalten kannst.
Fokus ist der Schlüssel!
Anmerkung
Lass Dich nicht von der Vielzahl an unterschiedlichen AWS Services ablenken: Aktuell gibt es mehr als 200 Services in 25 Regionen, verteilt auf mehr als 80 sogenannten Availability Zones!
Folgende Tipps:
👉 Notiere alle eingesetzten und geplanten Services, um Dir einen Überblick über Deine Infrastruktur zu verschaffen, etwa: “VPC, Lambda, ECS und RDS”
👉 Unterteile - wenn möglich - diese Services nach “unveränderlich” und “veränderlich”. Ein VPC, einmal sauber aufgebaut, wird beispielsweise sehr wahrscheinlich selten neu konfiguriert. EC2-Instanzen dagegen können jedoch regelmäßig erneuert werden.
👉 Definiere eine allgemeingültige “Tagging-Policy, und verwende sprechende, informative Tags wie etwa “Projekt”, “Kostenstelle” und natürlich “Name”.
Werkzeuge
Mit diesen Notizen kannst Du nun zu Beginn Tools etablieren, die helfen, Dein Set-up kontinuierlich zu überprüfen und potenzielle Fehler oder ungeplante Änderungen zu erkennen. Werfen wir einen kurzen Blick auf zwei dieser möglichen Werkzeuge.
Cloud Custodian
Organizations can use Custodian to manage their cloud environments by ensuring compliance to security policies, tag policies, garbage collection of unused resources, and cost management from a single tool.
(Quelle: https://cloudcustodian.io/docs/index.html#cloud-custodian-documentation)
Neben den Möglichkeiten der Überwachung kann Cloud Custodian oder kurz c7n auch Richtlinien erzwingen. Das heißt, Regelverstöße durch aktives Eingreifen in die Infrastruktur beheben. Hier einige nützliche Anwendungsbeispiele:
✔️ Tag Policies: Haben alle Ressourcen festgelegte Tags und können damit zugeordnet werden?
✔️ S3: SSL-Transportverschlüsselung erzwingen
✔️ Verwaiste Security Groups entdecken
✔️ EC2 / EBS Volumes: ungenutzte Snapshots aufspüren und entfernen
Beispiel #4 ist wie folgt in einer YAML Policy ausgedrückt:
### policy.yaml
---
policies:
## wirklich alle:
- name: all-snapshot-unused
resource: ebs-snapshot
filters:
- type: unused
value: true
## alle ausser jene, welche vom EC2 Lifecycle Manager erstellt worden sind:
- name: snapshot-except-dlm
resource: ebs-snapshot
filters:
- type: unused
value: true
- not:
- tag:dlm:managed: "true"
InSpec
InSpec kann unter anderem folgende Informationen dynamisch ermitteln:
✔️ S3 Buckets: unverschlüsselt, nicht versioniert, SSL Transport nur optional nötig
✔️ IAM AccessKeys: zu lange nicht rotiert
✔️ Security Groups erlauben uneingeschränkten SSH- und/oder RDP-Zugriff
✔️ EC2 / EBS Volumes: Standardverschlüsselung wurde nicht aktiviert
Mit wenigen Zeilen InSpec-Code prüfst Du, ob Du CloudTrail in der Region “eu-central-1” aktiviert und mit Deinem Schlüssel ausgestattet konfiguriert hast (wir hatten in diesem Blogartikel auf typische AWS Services im Kontext von Security hingewiesen und wie man sie aktiviert - u.a. “CloudTrail”):
describe aws_cloudtrail_trail('my-cloudtrail') do
it { should exist }
its ('home_region') { should eq 'eu-central-1' }
its ('kms_key_id') { should eq "my-kms-key" }
end
Hinweis
👉 Du findest weitere praktische Codebeispiele in unserem Github Repository.
ℹ️ Beide genannten Tools lassen sich hervorragend in Eure CI Pipelines integrieren, um dort beispielsweise einmal täglich automatisiert ausgeführt zu werden.
Bordmittel
AWS bietet eine Reihe von bereits integrierten Services an, die teilweise recht versteckt sind und viele dadurch nicht kennen:
Trusted Advisor
Einen guten Gesamteindruck zu den folgenden fünf Schwerpunkten gewinnst Du mit dem teilweise kostenfreien “Trusted Advisor”:
✔️ Kosten
✔️ Performance
✔️ Sicherheit
✔️ Fehlertoleranz
✔️ Service-Limits
Hinweis
Volle Funktionalität steht ab dem Business Support Plan zur Verfügung.
IAM Access Analyzer
Ein ebenfalls wenig bekanntes Tool ist der IAM Access Analyzer, den Du in der IAM Console (linke Navigation) findest. Nach dem Aktivieren kannst Du folgende Ressourcentypen analysieren/überprüfen:
✔️ S3 Buckets
✔️ IAM Rollen
✔️ KMS-Schlüssel
✔️ AWS-Lambda-Funktionen und -Ebenen
✔️ SQS Queues
✔️ Secrets Manager
Security Hub
Ein weiteres sehr hilfreiches und kostengünstiges Tool ist der AWS Security Hub. Er bietet ein einheitliches Dashboard mit wichtigen Sicherheitsstandards und deren Überprüfungen. Im nächsten Blogbeitrag werfen wir einen genaueren Blick darauf.
Und bitte nicht vergessen: Housekeepings!
Gut, sich auf technische Hilfsmittel verlassen zu können. Dennoch: Um selbst am Ball zu bleiben, Wissen im Team zu teilen und auch für Kosten sensibilisiert zu sein, helfen regelmäßige “AWS Housekeepings”.
Links & Weiterführende Informationen
▶️ Getting Started with Cloud Custodian
▶️ InSpec AWS Resources
▶️ InSpec: unser AWS Baseline Profile
▶️ Terraform: unsere Module zum Einrichten essentieller AWS Security Komponenten