Security- und Compliance-Auditing unter AWS, Teil 2 Die Möglichkeiten von AWS Config im Detail

Anbieter zum Thema

Programmierer können unter AWS nahezu alle Aspekte ihrer Anwendungen und Infrastruktur programmatisch anpassen. AWS Cloud Trail und AWS Config helfen dabei, angesichts der flexiblen Möglichkeiten nicht den Überblick zu verlieren.

Illustration der Arbeitsweise von AWS Config.
Illustration der Arbeitsweise von AWS Config.
(Bild: AWS)

AWS Config ist seit 2016 verfügbar und stellt Nutzern eine Übersicht des Bestands ihrer aktuellen AWS-Ressourcen zur Verfügung. Die Bestandsanalyse selbst ist kostenlos. Darüber hinaus offeriert AWS Config optional einen historischen Konfigurationsverlauf und generiert bei jeder Änderung ein so genanntes Konfigurationselement, über dessen „Eingang“ man sich benachrichtigen lassen kann.

Ähnlich AWS CloudTrail (im Folgenden: Cloud Trail) agiert also auch AWS Config im Bereich Sicherheit und Governance, jedoch nicht auf Account-, sondern auf Ressource-Ebene. AWS-Admins können mit AWS Config beispielsweise vorhandene (in der Regel Kosten verursachende) AWS-Ressourcen „entdecken“. AWS Config kann aber auch den gesamten Ressourcen-Bestand mitsamt der jeweiligen Konfiguration zu Analysezwecken exportieren.

Das AWS Config Dashboard zeigt unter anderem den Ressourcenbestand.
Das AWS Config Dashboard zeigt unter anderem den Ressourcenbestand.
(Bild: Drilling / AWS)

Nutzer haben so beispielsweise jederzeit einen Einblick, wie eine bestimmte AWS-Ressource zu jedem beliebigen Zeitpunkt in der Vergangenheit konfiguriert war. So kann man z. B. mit AWS Config sicherstellen, dass Richtlinien und Vorschriften eingehalten werden, indem AWS Config bei einem unerwünschten bzw. fehlerhaften (Konfigurations-) Zustand Alarm schlägt. Aber auch zur Sicherheitsanalyse oder Problembehebung lässt sich AWS Config hervorragend einsetzen.

Beim ersten Start von AWS Config erstellt der Dienst zunächst ein Inventar über die momentan im Konto aktiven Ressourcen und zeigt sie im Dashboard an. Die Kosten für AWS Config richten sich einerseits nach der Anzahl der gespeicherten Konfigurationselemente sowie nach der Anzahl aktiver AWS Config-Regelauswertungen im jeweiligen Konto. In Frankfurt zahlt man z. B. 0,003 USD pro im jeweiligen AWS-Konto erfassten Konfigurationselement.

Konfigurationselemente

Das kostenpflichtige Aufzeichnen von Konfigurationselementen muss im Menü „Einstellungen“ aktiviert werden.
Das kostenpflichtige Aufzeichnen von Konfigurationselementen muss im Menü „Einstellungen“ aktiviert werden.
(Bild: Drilling / AWS)

Ein so genanntes Konfigurationselement erstellt AWS Config immer dann, wenn der Dienst für eine unterstützte Ressource eine Konfigurations- oder Beziehungsänderung erkennt, also eine Beziehung zu einer anderen Ressource innerhalb eines AWS-Kontos besteht.

Das Aufzeichnen von Konfigurationselementen ist kostenpflichtig und muss im Menü „Einstellungen“ einmalig aktiviert werden. Man kann den Config Recorder aber jederzeit stoppen oder pausieren. Selbstverständlich können Nutzer auch bei nachträglich ausgeschaltetem Recorder auf vorher aufgezeichnete Konfigurationselemente zugreifen.

Wie AWS Config arbeitet

In den Einstellungen von AWS Config zeigt sich auf einen Blick, ob der Rekorder aktiv ist.
In den Einstellungen von AWS Config zeigt sich auf einen Blick, ob der Rekorder aktiv ist.
(Bild: Drilling / AWS)

AWS Config generiert bei aktiviertem Recorder aus allen verfügbaren Daten einen kontinuierlichen Zeitstrahl (History) über die teilnehmenden (unterstützen) Ressourcen (EC2-Instancen, VPC-Security-Groups, IAM-User etc.). Dazu „hängt sich“ AWS Config an den jeweiligen Cloud Trail des unterstützten Dienstes, um die zugehörigen Änderungen mitzubekommen und bildet daraus eine Übersicht der aktuellen Konfiguration.

Illustration der Arbeitsweise von AWS Config-
Illustration der Arbeitsweise von AWS Config-
(Bild: AWS)

AWS Config verfolgt aber auch solche Konfigurationsänderungen, die nicht durch die API eingeleitet wurden. Dazu untersucht AWS Config die Ressourcenkonfigurationen in regelmäßigen Abständen. Dazu liest AWS Config in zyklisch die vorhandene Konfigurationen mit der Hilfe der zugehörigen „describe --“- oder „list --“API-Aufrufe ein. Weitere Datenquellen für AWS Config sind z. B. VPC Flow Logs.

AWS Config kann außerdem Konfigurations-Snapshots der jeweiligen Konfiguration erzeugen bzw. zu einem spezifischen Zeitpunkt liefern und einen Stream darüber ausgeben, was sich wann gerändert hat. AWS Config ist also so mächtig, weil es nicht nur „Informationen“ liefert, sondern auch die Möglichkeit zur Verfügung stellt, Funktionen (z. B. Lambda-Funktionen) an „Änderungen“ anzudocken, mit deren Hilfe sich Änderung ggf. auch wieder rückgängig machen lassen.

Damit ist AWS Config eine Art Configuration-Management-System (CMDB) kombiniert aber diese Eigenschaft durch die Cloud-Trail-Integration mit der Möglichkeit, jederzeit nachweisen zu können, wer was wann getan hat. Daher ist es für den Einsatz von AWS Config wichtig, dem Dienst das Lesen des jeweiligen Cloud Trails zu erlauben, d. h. der Dienst muss mit einer IAM-Rolle laufen, die es erlaubt, die mit Config integrierten Ressourcen auflisten zu dürfen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Das Zuweisen der Rolle erfolgt im Abschnitt „Allgemeine Einstellungen“ mit einem Klick auf „Bearbeiten“. Hier legt man auch fest, dass alle oder nur bestimmte Ressourcentypen aufgezeichnet werden und wie lange die Config-Daten aufbewahrt werden sollen. Default ist sieben Jahre (2557 Tage). Außerdem lässt sich eine „Liefermethode“ für die Speicherung der Konfigurationselemente konfigurieren.

Das benötigte S3-Bucket kann wahlweise hier angelegt oder (falls vorhanden) ausgewählt werden. Zusätzlich kann man sich via SNS (AWS Simple Notification Service) jederzeit über das Erstellen eines neuen Konfigurationselementes informieren lassen.

Über das Menü von AWS Config ist es möglich, bei der Liefermethode auch  CloudWatch-Event-Regeln zu erstellen.
Über das Menü von AWS Config ist es möglich, bei der Liefermethode auch CloudWatch-Event-Regeln zu erstellen.
(Bild: Drilling / AWS)

Ferner kann man AWS Config hier auch erlauben, detaillierte Informationen über die Konfigurationsänderungen und -benachrichtigungen an Amazon CloudWatch Events zu senden, wozu man von hier aus passende CloudWatch-Events-Regeln erstellen kann.

Konzepte von AWS Config

Die grundlegenden Konzepte von AWS Config sind Konfigurationselemente, der Konfigurationsverlauf, Konfigurations-Snapshots, ein Konfigurations-Stream, Ressourcen-Beziehungen und die bisher noch nicht erwähnten AWS-Config-Regeln. Der Konfigurationsverlauf ist wie gesehen die Sammlung aller Konfigurationselemente für eine bestimmte Ressource über einen beliebigen Zeitraum.

Der Ressourcenbestand zeigt sich vollumfänglich im Menü „Ressourcen“ der AWS Config Console.
Der Ressourcenbestand zeigt sich vollumfänglich im Menü „Ressourcen“ der AWS Config Console.
(Bild: Drilling / AWS)

Jedes Konfigurationselement ist eine Point-in-Time-Momentaufnahme sämtlicher Attribute einer von AWS Config unterstützten AWS-Ressource im jeweiligen Konto. Beim ersten Start von AWS Config ermittelt der Dienst alle im betreffenden Konto unterstützten AWS-Ressourcen und erstellt für jede Ressource ein solches Konfigurationselement. Die ermittelten Ressourcen sind im Menü „Ressourcen“ der AWS Config Console zu finden. Hier kann der Nutzer komfortabel nach Ressourcenkategorie, Ressourcentypen und Compliance-Status filtern.

Im Bereich Details finden sich die Ressource-Meta-Daten der angewählten Ressource.
Im Bereich Details finden sich die Ressource-Meta-Daten der angewählten Ressource.
(Bild: Drilling / AWS)

Folgt man dem Link zur jeweiligen Ressource, zeigt Config im Bereich Details die Ressource-Meta-Daten der jeweiligen Ressource, im Beispiel einer EC2-Instanz. Im Menü „Erweitere Anfrage“ ist es auch möglich, mit Hilfe von SQL-Statements nach der gewünschten Ressource zu „fahnden“.

Bei aktiviertem Config Recorder zeigt die Timeline jeden Zeitpunkt, an dem eine Ressource geändert wurde.
Bei aktiviertem Config Recorder zeigt die Timeline jeden Zeitpunkt, an dem eine Ressource geändert wurde.
(Bild: Drilling / AWS)

Klickt man in der Detailansicht auf oben rechts auf den Knopf „Ressourcenzeitrahmen“, kommt man zur Timeline der ausgewählten Ressource. Mit Hilfe zweier Registerreiter kann man zwischen der „Konfigurations-Timeline“ und der „Compliance-Timeline“ wechseln. Ist/war der Config Recorder eingeschaltet, präsentiert die Timeline eine Zeitstrahlansicht, die jeden Zeitpunkt enthält, an dem es eine Änderung an der betreffenden Ressource gab.

Im Abschnitt „Beziehungen“ zeigt AWS Config, zu welchen anderen AWS-Ressourcen eine Ressource zum gewählten Zeitpunkt in Beziehung stand.
Im Abschnitt „Beziehungen“ zeigt AWS Config, zu welchen anderen AWS-Ressourcen eine Ressource zum gewählten Zeitpunkt in Beziehung stand.
(Bild: Drilling / AWS)

Die Timeline-Ansicht zeigt im Modus „Konfigurations-Timeline“ im per Default ausgeklappten Abschnitt „Konfigurationsdetails“ die Ressource-Meta-Daten. Entfaltet man den Abschnitt „Beziehungen“, zeigt AWS Config zu welchen anderen AWS-Ressourcen diese Ressource (EC2 Instanz) zum gewählten Zeitpunkt in Beziehung stand.

Die Änderungen an einer Ressource zu einem bestimmten Zeitpunkt werden als JSON-Datei geliefert.
Die Änderungen an einer Ressource zu einem bestimmten Zeitpunkt werden als JSON-Datei geliefert.
(Bild: Drilling / AWS)

Im Abschnitt „Änderungen“ hingegen zeigt AWS Config die „Änderungen“ zum gewählten Zeitpunkt selbst, sauber verpackt in JSON. Ganz unten bei „Cloud-Trail-Ereignisse“ bietet Config eine Ansicht auf die zugrundeliegenden Trail-Events und damit die Möglichkeit herauszufinden, wer, wann, welche Änderung veranlasst hat. In der Timeline des betreffenden Zeitpunkts ist auch vermerkt, ob Änderungen oder „Ereignisse“ vorliegen. Hier lässt sich auch feststellen, ob z. B. die Aufzeichnung zwischenzeitlich pausiert wurde.

Ausgehend vom Konfigurationselement steht neben dem Reiter für die „Konfigurations-Timeline“ ein Weiterer für die „Compliance Timeline“ zur Verfügung. Der Zweck der Compliance-Timeline steht im Zusammenhang mit genannten AWS-Config-Regeln, nicht zu verwechseln mit den erwähnten CloudWatch-Event-Regeln.

Konfigurations-Snapshots

AWS Config speichert Konfigurations-Snapshots in einem S3 Bucket, der bei der initialen Einrichtung mitgeteilt wird.
AWS Config speichert Konfigurations-Snapshots in einem S3 Bucket, der bei der initialen Einrichtung mitgeteilt wird.
(Bild: Drilling / AWS)

Werfen wir noch einen Blick auf Konfigurations-Snapshots. Ein Konfigurations-Snapshot ist eine Sammlung der Konfigurationselemente der unterstützten Ressourcen im jeweiligen Konto. Somit stellt jeder Snapshot ein vollständiges Abbild aller aufgezeichneten Ressourcen und deren Konfigurationen in jeweiligen Konto dar. AWS Config speichert Konfigurations-Snapshots im beim Einrichten von AWS Config angegebenen S3-Bucket.

Ein Klick auf den Link „Konfigurationselement (JSON) anzeigen“ liefert eine entsprechende Datei zurück.
Ein Klick auf den Link „Konfigurationselement (JSON) anzeigen“ liefert eine entsprechende Datei zurück.
(Bild: Drilling / AWS)

Snapshots unterstützen Admins bei der Validierung der bestehenden Konfiguration und lassen sich von S3 jederzeit im JSON-Format herunterladen. Wahlweise kann man ein Konfigurationselement mit der Konfiguration des ausgewählten Zeitpunkts auch in der Konfigurations-Timeline der AWS Config-Console mit einem Klick auf den Link „Konfigurationselement (JSON) anzeigen“ ansehen.

AWS-Config-Regeln / Compliance-Prüfung

Hat man eingestellt, dass AWS Config detaillierte Informationen über die Konfigurationsänderungen auch an „Amazon CloudWatch Events“ sendet, haben Admins die Möglichkeit, so genannte AWS-Config-Regeln zu erstellen. Mit deren Hilfe kann der Cloud-Admin die Übereinstimmung (Compliance) einer bestimmten AWS-Ressource z. B. nach einer Änderung mit einem in der Regel definierten Soll-Zustand überprüfen.

Grundsätzlich dienen AWS-Config-Regeln dazu, die Konfigurationseinstellungen ausgewählter AWS-Ressourcen zu „bewerten“. Eine Config-Regel stellt dann quasi die optimalen Konfigurationseinstellungen dar. Allerdings funktioniert das Regel-Feature quasi nur „nachgelagert“, d. h. der Admin kann nicht verhindern, dass eine initiale Konfiguration oder Änderung nicht mit einer Regel übereinstimmt. Er kann die Änderung aber auf diese Weise schnell erkennen und z. B. in Verbindung mit einer Lambda-Funktion die Änderung zeitnah zurückrollen.

Man muss aber nicht jede Regel selbst bzw. komplett neu erstellen, da AWS einen umfangreichen Fundus vordefinierter Regel-Vorlagen mitbringt. Beispiel wäre eine Regel, die sicherstellt, dass bei einem neuen S3-Bucket das Bucket-Logging oder die Verschlüsselung „at rest“ aktiviert sind oder das dass das Konfigurieren des öffentlichen anonymen Zugriffs auf ein Bucket verboten ist.

In den Regel-Vorlagen finden sich „AWS-verwaltete Regeln“, hier beispielsweise gefiltert nach Encryption-Fokus.
In den Regel-Vorlagen finden sich „AWS-verwaltete Regeln“, hier beispielsweise gefiltert nach Encryption-Fokus.
(Bild: Drilling / AWS)

Die mitgelieferten Regeln-Vorlagen sind im Hauptmenü im Abschnitt „Regeln“ zu finden, wenn man auf „Regel hinzufügen“ klickt. Die Vorlagen finden sich dann bei „AWS-verwaltete Regeln“. Selbstverständlich steht auch hier ein Suchfilter zur Verfügung. Im Beispiel suchen wir nach Regeln, die mit Verschlüsslung zu tun haben.

Die Berechnung der Gebühren für AWS Config Regeln haben sich ab Sommer 2019 geändert. Seit dem 1. August 2019 berechnet sich AWS Config nicht mehr anhand der Zahl der aktiven Regeln im jeweiligen Konto, sondern anhand der Anzahl der aufgezeichneten Auswertungen von Config-Regeln. Eine Regelauswertung wir immer dann aufgezeichnet, wenn eine Config-Regel eine Ressource hinsichtlich der Compliance bewertet.

Fazit

Da der Cloud-Computing-Nutzer seinem Provider hinsichtlich Sicherheit, Datenschutz, Kosten und Compliance nicht physisch auf die Finger schauen kann, sollte er sich selbst maximale Transparenz verschaffen. Neben „Detailed Billing“ sind AWS Cloud Trail und AWS Config die wichtigsten Werkzeuge für diesen Zweck.

(ID:46672997)