Der Inside-Out-Sicherheits Blog - Der Inside-Out-Sicherheits Blog

Sichere Nutzung von AWS S3: Setup-Leitfaden | Varonis

Geschrieben von Michael Buckbee | Oct 18, 2021 4:00:00 AM

Amazon hat mit der Einführung von Amazon Web Services (AWS) den Weg zu Infrastructure-as-a-Service (IaaS) geebnet. Netflix, NASA und die US-Navy nutzen allesamt Amazon als Backend. AWS S3 ist der Speicherdienst von AWS und hatte Anteil an vielen größeren Datenlecks.

In diesem Blog erläutern wir die Grundlagen von AWS S3 und besprechen, wie das System gegen Cybersicherheitsvorfälle geschützt werden kann.

Was ist AWS S3 (Simple Storage Service)?

AWS S3 ist einer der Hauptdienste der AWS-Infrastruktur. Vom Konzept her handelt es sich dabei um einen unbegrenzt großen Datenserver auf einem Remote-Standort oder FTP-Server.

Amazon S3 speichert hochgeladene Daten als Objekte in sogenannten Buckets. S3 bildet Strukturen um Buckets und Objekte statt um Dateiserver.

Bei einem Objekt kann es sich um ein Dokument oder um ein Video mit Metadaten handeln, die das Objekt beschreiben. Buckets sind die Container für ein Objekt. Der Administrator kann den Zugriff auf jeden Bucket einrichten und verwalten (also wer jeweils Elemente im Bucket erstellen, löschen und auflisten kann), Zugriffsprotokolle für den Bucket und seine Objekte anzeigen und den geografischen Bereich auswählen, in dem Amazon S3 den Bucket und seine Inhalte speichert.

Einrichtung der Speichertypen in Amazon S3

Amazon S3 wurde als sehr dauerhafte und flexible Lösung entwickelt, die zahlreiche Speicheroptionen bietet, um individuelle Kundenanforderungen zu erfüllen. Dazu gehören:

  • Standard: Wird verwendet, um leistungsempfindliche Daten mit einer Abrufzeit von wenigen Millisekunden zu speichern.
  • Standard Infrequent Access: Dient zum Speichern von Daten, auf die nur selten zugegriffen wird.
  • One Zone-Infrequent Access: Wird für Objekte verwendet, die selten benutzt werden und eine geringere Dauerhaftigkeit erfordern. Spart im Vergleich zu anderen Speicherformen Kosten ein.
  • Amazon Glacier: Amazon Glacier wird für die Speicherung archivierter Daten verwendet.

Anwendungsfälle von AWS S3

Es gibt eine Vielzahl von Anwendungsfällen für AWS S3, nachfolgend finden Sie einige Beispiele.

Internetspeicher

Amazon S3 eignet sich perfekt zum Speichern von Anwendungsbildern und -videos, um diese mit schnellerer Performance zu rendern. Dafür nutzen alle AWS-Dienste (einschließlich Amazon Prime und Amazon.com) sowie Netflix und Airbnb Amazon S3.

Notfallwiederherstellung und Backups

Amazon S3 ist sehr effektiv bei der Speicherung und Archivierung von hochsensiblen Daten oder Backups. Das System verteilt sich automatisch über Regionen hinweg und bietet die bestmögliche Verfügbarkeit und Dauerhaftigkeit. Die Wiederherstellung von Dateien oder älteren Kopien lässt sich mit der Amazon-S3-Versionierung vereinfachen. Es ist sehr unwahrscheinlich, dass mit Amazon S3 Details verloren gehen, wenn Sie Ihr Wiederherstellungspunktziel (RPO, Recovery Point Goal) und Wiederherstellungszeitziel (RTO, Recovery Time Goal) niedrig halten.

Analyse

Amazon S3 bietet erweiterte lokale Abfragefunktionen, um hocheffiziente Analysen von S3-Daten durchzuführen. Dadurch müssen keine Daten mehr verschoben und gespeichert werden, da so die meisten Dienste, bei denen Drittanbieter integriert werden, vereinfacht werden.

Datenarchivierung

Benutzer können Daten von Amazon S3 in die sehr günstige und langlebige Compliance-Archivierungslösung Amazon Glacier speichern und übertragen. Ebenso können archivierte Daten mit einer Lebenszyklus-Richtlinie automatisiert werden. So lassen sich Daten mit reduziertem Aufwand verwalten.

Statisches Website-Hosting

Amazon S3 speichert verschiedene statische Objekte. Ein wichtiger Anwendungsfall ist das Hosting statischer Websites. Immer mehr Web-Apps werden aus nur einer statischen Seite aufgebaut (Angular, ReactJS usw.), wenn der Betrieb eines Webservers teuer ist. S3 bietet eine statische Website-Hosting-Funktion, mit der Sie Ihre Domain ohne erhebliche Hostingkosten verwenden können.

Sicherheit und Compliance

Amazon S3 bietet mehrere standardmäßige Verschlüsselungs- und Compliance-Funktionen für PCI-DSS, HIPAA/HITECH, FedRAMP, FISMA und andere. Dank dieser Funktionen können Kunden Compliance-Kriterien von fast allen Aufsichtsbehörden weltweit erfüllen. Darüber hinaus können Sie den Zugriff auf sensible Daten durch die Bucket-Richtlinien einschränken.

Nutzung von AWS S3

Alle S3-Daten befinden sich in speziellen globalen Buckets, mit mehreren Verzeichnissen und Unterordnern. Wählen Sie eine Region aus, wenn Sie einen Bucket erstellen, um die Latenz zu optimieren und die Kosten für den Zugriff auf Daten zu senken. Um Amazon S3 einzurichten, befolgen Sie diese Schritte:

  1. Erstellen Sie einen S3-Bucket
  2. Laden Sie Dateien in den soeben erstellten S3-Bucket hoch
  3. Greifen Sie auf die Dateien im Bucket zu

Erstellen Sie einen S3-Bucket

Mit den folgenden Schritten können Sie einen S3-Bucket erstellen.

1. Melden Sie sich an

Melden Sie sich in der AWS Management Console an. Nachdem Sie sich angemeldet haben, wird der folgende Bildschirm angezeigt:

2. Suchen Sie nach „S3“

Geben Sie in der Suchleiste „S3“ ein und klicken Sie auf das Ergebnis

Das AWS-S3-Dashboard sollte wie folgt aussehen.

3. Klicken Sie auf „Bucket erstellen“.

Klicken Sie auf die Schaltfläche „Bucket erstellen“, um einen S3-Bucket zu erstellen. Wenn Sie auf die Schaltfläche „Bucket erstellen“ klicken, wird der folgende Bildschirm angezeigt:

4. Benennen Sie den Bucket

Geben Sie einen Namen für den Bucket ein:

Es gibt viele Möglichkeiten, S3-Bucket-Berechtigungen einzurichten. Die Berechtigung ist standardmäßig privat, kann aber über die Berechtigung in der AWS Management Console oder eine Bucket-Richtlinie geändert werden. Als Best Practice in Hinblick auf Sicherheit sollten Sie beim Zugriff auf die erstellten S3-Buckets vorsichtig sein. Fügen Sie nur wesentliche Berechtigungen hinzu und vermeiden Sie es, Buckets öffentlich zugänglich zu machen.

5. Konfigurieren Sie die Optionen (optional)

Sie können die Funktionen auswählen, die Sie für einen bestimmten Bucket aktivieren möchten, z. B:

  • Tags: Sie können einen Bucket mit einem Schlüssel und einem Namen versehen, der die Suche nach Ressourcen mithilfe von Tags vereinfacht.
  • Versionierung: Hiermit können Sie alle Dateiversionen aufzeichnen, damit die Datei bei versehentlicher Löschung einfach wiederhergestellt werden kann.
  • Protokollierung auf Objektebene (erweiterte Einstellung): Aktivieren Sie diese Funktion, wenn Sie jede Operation für jedes Element in Ihrem Bucket aufzeichnen möchten.
  • Standardverschlüsselung: Standardmäßig verschlüsselt AWS Dateien mit AES 256 und mit generierten Schlüsseln. Sie können jedoch auch Ihren eigenen verwalteten Schlüssel zum Verschlüsseln von Elementen nutzen.

6. Erstellen Sie den Bucket

Klicken Sie schließlich auf „Bucket erstellen“.

Der AWS-Bucket wurde erstellt.

Hinweis: Der neu erstellte Bucket und seine Objekte sind nicht öffentlich.

Wie lade ich Dateien in den erstellten S3 Bucket hoch?

Die Schritte zum Hochladen von Dateien in den soeben erstellten S3-Bucket finden Sie nachfolgend:

1. Klicken Sie auf den Namen des Buckets

2. Klicken Sie auf „Hochladen“.

3. Klicken Sie auf „Dateien hinzufügen“.

Fügen Sie die gewünschten Dateien vom Laufwerk hinzu.

4. Klicken Sie auf die Schaltfläche „Hochladen“.

Der Upload-Status wird auf dem Bildschirm angezeigt.

Wir können sehen, dass unser Dokument in den neu erstellten Bucket hochgeladen wird.

Wie kann man auf Daten im AWS S3 Bucket zugreifen?

Um auf die Daten im AWS S3 Bucket zuzugreifen, müssen Sie die folgenden Schritte befolgen.

1. Klicken Sie auf Datei.

2. Beim Zugriff auf die URL wird uns Folgendes angezeigt:

Auf dem obigen Bildschirm sehen wir, dass wir nicht auf die Bucket-Objekte zugreifen dürfen.

Um diese Probleme zu lösen, müssen wir die Berechtigungen für einen Bucket festlegen.

3. Gehen Sie zu „Bucket-Berechtigung“.

4. Klicken Sie auf „Bearbeiten“ und entfernen Sie das Häkchen bei „Alle öffentlichen Zugriffe sperren“.

5. Klicken Sie auf „Speichern“.

6. Machen Sie die hochgeladene Datei öffentlich.

7. Jetzt ist die Objekt-URL zugänglich.

Wichtige Konzepte:

  • Buckets sind ein universeller Namespace, d. h. auch der Name des Buckets muss eindeutig sein.
  • Wenn ein Objekt erfolgreich in den erstellten S3-Bucket hochgeladen wurde, wird der HTTP-200-Code auf dem Bildschirm angezeigt.
  • Die Speicherklassen sind S3 Reduced Redundancy Storage, S3 und S3-IA.
  • Es gibt zwei Arten der Verschlüsselung: serverseitige Verschlüsselung und clientseitige Verschlüsselung.
  • Der Zugriff auf die Bucket-Verwaltung erfolgt entweder über eine ACL (Access Control List) oder über Bucket-Richtlinien.
  • Standardmäßig sind Buckets privat, und alle in einem Bucket gespeicherten Objekte sind privat.

Sichere Konfiguration von AWS S3

In Hinblick auf die Sicherheit von AWS ist S3 definitiv der am meisten gefährdete Dienst. Fehlkonfigurierte S3-Buckets haben zu massiven Datenlecks bei großen Unternehmen wie FedExVerizonDow Jones und sogar bei WWE geführt. Diese Lecks waren allesamt vermeidbar, da AWS bei richtiger Konfiguration sehr sicher ist.

Für einen besseren Schutz Ihres S3-Buckets sollten Sie die folgenden Best Practices für die AWS-S3-Sicherheit berücksichtigen:

Tipp 1: Schutz von Daten durch S3-Sicherheitsverschlüsselung

Die Verschlüsselung ist ein wesentlicher Schritt für den Schutz Ihrer Daten. S3 bietet zwei Möglichkeiten, Ihre ruhenden Daten zu schützen:

  • Serverseitige Verschlüsselung (SSE, Server-Side Encryption): Mit dieser Verschlüsselungsform verschlüsselt und speichert AWS Rohdaten auf seinen Festplatten (in Rechenzentren). Wenn Sie versuchen, Dateien abzurufen, liest AWS sie, entschlüsselt sie und sendet sie von seinen Festplatten zurück an Sie.
  • Clientseitige Verschlüsselung (CSE, Client-Side Encryption): Bei dieser Form der Verschlüsselung verschlüsseln Sie anstelle von AWS die Daten, bevor Sie sie an AWS senden. Nachdem AWS die Daten zurückgesendet hat, werden diese mit Entschlüsselungsalgorithmen wieder entschlüsselt.

Sie können Ihre Sicherheits- und Compliance-Anforderungen entsprechend auswählen, wie verschlüsselt werden soll. Sie können sich für die serverseitige Verschlüsselung entscheiden, wenn Sie damit einverstanden sind, dass AWS den Verschlüsselungsprozess übernimmt. Falls Ihre Daten sensibel sind und Sie diese selbst verschlüsseln möchten, nutzen Sie die clientseitige Verschlüsselung.

Das folgende Beispiel zeigt, wie SSE-S3-Buckets Daten in einem S3-Bucket schützen können:

  1. Erstellen Sie einen S3-Bucket über das AWS-S3-Dashboard.

  1. Laden Sie nach der Erstellung des Buckets die Daten in den Bucket hoch.

  1. Klicken Sie anschließend auf das hochgeladene Objekt, um die Verschlüsselungseigenschaften anzuzeigen

Die Verschlüsselung ist standardmäßig deaktiviert.

  1. Klicken Sie auf die Schaltfläche „Bearbeiten“ seitlich davon.

  1. Wählen Sie „Aktivieren“ und klicken Sie auf „Amazon-S3-Schlüssel (SSE-S3)“. Dadurch wird die Verschlüsselung auf AES-256 auf der Serverseite für die Datenverschlüsselung gesetzt. Klicken Sie auf „Änderungen speichern“.

Innerhalb von Sekunden wird der neue Verschlüsselungstyp auf dem Bildschirm angezeigt.

Die Dateien werden sicher auf dem erstellten S3-Bucket verschlüsselt.

Tipp 2: Zugriffskontrollmanagement

Zugriffskontrolle ist die wichtigste Säule, um den Datenschutz weiter zu verbessern. Nachfolgend sehen Sie fünf Optionen für die Verwaltung des Zugriffs auf S3-Buckets und -Ressourcen. Wir analysieren jede Zugriffskontrollmethode, um Ihnen bei der Erstellung eines effizienten Mechanismus für Best Practices bei der Sicherheit in AWS S3:

1. Einschränkung der IAM-Benutzerberechtigung

Identitäts- und Zugriffsmanagement (IAM, Identity and Access Management) ermöglicht eine feinjustierte Zugriffskontrolle. Durch die Implementierung des Prinzips der notwendigsten Berechtigung kann der Administrator Benutzer mit minimalen Zugriffsrechten und Ressourcen für die Handhabung von Buckets oder das Lesen/Schreiben von Daten delegieren. Dies minimiert das Risiko menschlicher Fehler – eine der Hauptursachen für falsch konfigurierte S3-Buckets und die damit einhergehenden Datenlecks.

Fangen Sie in der Regel mit einer notwendigen Mindestanzahl von Berechtigungen an und fügen Sie nach Bedarf allmählich Berechtigungen hinzu.

2. Einschränkung des S3-Sicherheitszugriffs mithilfe von Bucket-Richtlinien

Die Bucket-Richtlinien sind die gleichen wie die IAM-Verbraucherrichtlinien, außer dass sie direkt mit S3-Sicherheitsdiensten verbunden sind. Die Bucket-Richtlinien sind ein vielseitiges Werkzeug, das einen feinjustierten Bucket-Zugriff ermöglicht.

In bestimmten Fällen sollten Sie bevorzugt Bucket-Richtlinien verwenden. Schauen wir uns hier einige der typischen Szenarien an.

3. Verwenden von S3-Zugriffspunkten zum Zuweisen von Zugriffsrichtlinien

Amazon hat während der „Re-Invent 2019“ in Las Vegas S3-Zugriffspunkte vorgestellt – eine Funktion, die die Zugriffskontrolle bei S3-Buckets mit Mischnutzung verbessert, um Bucket-Richtlinien einfacher zu handhaben.

Vor den S3-Zugriffspunkten dienten Bucket-Richtlinien als Medium, um alle Daten innerhalb eines Buckets mit unterschiedlichen Berechtigungen zu handhaben. S3-Zugriffspunkte bieten eine moderne Möglichkeit, Daten in großem Umfang zu verwalten.

Wie funktionieren S3-Zugriffspunkte?

S3-Zugriffspunkte haben eindeutige Hostnamen und eigene Zugriffsrichtlinien, die festlegen, wie Daten über diesen Endpoint zu handhaben sind. Zugriffspunkt-Richtlinien ähneln den Bucket-Richtlinien, beziehen sich jedoch ausschließlich auf den Zugriffspunkt. S3-Zugriffspunkte können auch auf eine Virtual Private Cloud (VPC) beschränken, die die S3-Daten auf diesem privaten Netzwerk verschickt. Das bedeutet, dass jeder Zugangspunkt einen bestimmten DNS-Namen hat. So ist es für Sie einfacher, Ihre Buckets zu adressieren.

4. Verwendung von ACLs zur Zugriffsüberwachung

ACLs (Access Control Lists) waren die ursprüngliche Methode zur Zugriffskontrolle in S3, bevor AWS IAM Verbreitung fand. Fehlkonfigurierte ACLs waren einer der Hauptgründe, warum S3-Datenlecks so häufig vorkamen.

Die ACLs gelten entweder für den Bucket oder auf Komponentenebene. Einfach gesagt bieten die Bucket-ACLs Zugriffskontrolle auf der Bucket-Ebene, während die Objekt-ACLs Zugriffskontrolle auf der Objektebene bieten. Standardmäßig erlauben Bucket ACLs nur dem Besitzer des Kontos den Zugriff. Dennoch ist es in der Regel sehr einfach, die Buckets öffentlich verfügbar zu machen. Deshalb rät AWS davon ab, ACLs zu benutzen.

5. Nutzung der S3-Blockierung des öffentlichen Zugriffs

Schließlich bietet Amazon eine zentrale Möglichkeit, den öffentlichen Zugriff auf S3-Dienste zu beschränken. Durch Einstellen der Blockierung des Öffentlichen Zugriffs durch Amazon S3 können Sie alle zuvor festgelegten Bucket-Richtlinien und Objektberechtigungen umgehen. Beachten Sie, dass die Blockierung des öffentlichen Zugriffs für Buckets, AWS-Konten und Zugangspunkte funktioniert.

Tipp 3: Maximierung der Zuverlässigkeit der S3-Sicherheit durch Replikation

Unternehmen können die Sicherheit und Zuverlässigkeit von S3 verbessern, indem sie eine Datenschutzrichtlinie festlegen, mit der die Ausfallsicherheit maximiert wird. Werfen wir einen eingehenden Blick auf solche Best Practices für die Sicherheit in AWS S3:

1. Erstellen von Datenkopien

Dies ist der häufigste Ansatz, da er die Datensicherheit stärkt. Mit dem AWS-Backup-Dienst, der die meisten AWS-Dienste wie Amazon EFS, DynamoDB, RDS, EBS und Storage Gateway unterstützt, können Sie Sicherungsprozesse zentralisieren und automatisieren.

2. Auswählen der Verfügbarkeitsstufen

Da S3-Ressourcen in verschiedenen Verfügbarkeitsstufen verfügbar sind, sollten Sie IA-Speicher für Workloads mit niedriger Priorität verwenden. Wechseln Sie anschließend zu einer besseren Serviceklasse, wenn die IT-Workloads eine höhere Verfügbarkeit benötigen. Dadurch wird eine Optimierung auf Basis der Workload-Anforderungen gewährleistet, denn eine Überinvestition in Speicher ist teuer.

3. Verwenden von S3-Versionierung

Daten sind zudem auch aufgrund von Notfällen und Infrastrukturausfällen erheblichen Bedrohungen ausgesetzt. Mit der S3-Versionierung zur Wiederherstellung verlorener Dateien lassen sich anspruchsvolle und langwierige Wiederherstellungsprozesse für Backups vermeiden. Der S3-Versionierungsprozess umfasst das Speichern der Version des S3-Bucket-Objekts, sobald eine PUT-, COPY-, POST- oder Remove-Aktion ausgeführt wird.

4. Verwendung regionenübergreifender Replikation (CRR, Cross-Region Replication)

Verwenden Sie die regionenübergreifende Replikation (CRR), um die Datenverfügbarkeit zu erhöhen und dafür zu sorgen, dass ein einzelner Versagenspunkt nicht das gesamte System ausfallen lässt. Neben der Verfügbarkeit hilft CRR auch bei der Erfüllung gesetzlicher Anforderungen, wenn Sie die Daten an verschiedenen geografischen Standorten speichern müssen.

4. Verwendung der Replikation innerhalb einer Region (SRR, Same-Region Replication)

SRR ist eine ausgezeichnete Wahl, wenn gesetzlich vorgeschrieben ist, dass Daten lokal oder in derselben Region gespeichert werden. AWS verwendet eine integrierte Datenreplikationsfunktion, um einen S3-Bucket über Speichergeräte hinweg in drei physisch verschiedenen regionsweiten Verfügbarkeitszonen zu duplizieren. Dies garantiert den Schutz und die Dauerhaftigkeit der Daten im Falle eines Infrastrukturausfalls oder eines Notfalls.

Tipp 4: Erzwingen von SSL für S3-Sicherheit

SSL ist die bevorzugte Methode zur Sicherung der Kommunikation mit S3-Buckets. Standardmäßig ist der Zugriff auf S3-Bucket-Daten entweder über HTTP oder HTTPS möglich. Daher können Angreifer potenziell über MITM (Man in the Middle) Zugriff auf Ihre S3-Anfragen erhalten.

Tipp 5: Verwendung von Protokollierungsfunktionen

Die Protokollierung für S3-Bucket-Zugriffe ist eine Funktion, die Informationen über alle an einen Bucket verschickten Anfragen sammelt, z. B. PUT-, GET- und DELETE-Aktionen. So kann das Sicherheitsteam versuchte bösartige Aktivitäten innerhalb Ihrer Buckets erkennen.

Die Protokollierung ist eine empfohlene Best Practice für Sicherheit, mit der Teams gesetzliche Anforderungen einhalten, unbefugten Zugriff auf ihre Daten erkennen oder die Untersuchung eines Datenlecks einleiten können.

Tipp 6: Verwendung der S3-Objektsperre

Die S3-Objektsperre erschwert das Entfernen von Daten aus S3. Angreifer schädigen Unternehmensdaten vornehmlich auf zwei Wegen:

Durch Löschen von Datenbeständen

Durch Stehlen von Daten

Die S3-Objektsperre beugt dem Datendiebstahl vor, indem sie das Löschen bzw. Überschreiben eines Objekts verhindert. Sie macht das S3-Objekt effektiv auf zwei Arten unveränderbar: durch Festlegen einer Aufbewahrungsfrist oder durch Aufbewahrung für juristische Zwecke bis zur Freigabe des Objekts.

Mit der S3-Objektsperre können Sie auch die Anforderungen der WORM-Vorschriften erfüllen oder zusätzliche Schutzebenen nur zu Compliance-Zwecken erstellen.

Führen Sie die folgenden Schritte aus, um die Objektsperre beim Erstellen eines S3-Buckets zu aktivieren:

  1. Gehen Sie in der AWS Management Console zu „S3“ unter „Speicher” und klicken Sie auf „Bucket erstellen“:

  1. Nachdem Sie den Namen des Buckets eingegeben haben, sehen Sie das Kontrollkästchen unter „Objektsperre“ in den erweiterten Einstellungen, wie nachfolgend dargestellt:

  1. Klicken Sie auf das Kontrollkästchen „aktivieren“ und Sie erhalten eine Meldung, dass die Objektsperre aktiviert wird. Sie können nun auf „Weiter“ klicken und mit der Erstellung Ihres Buckets fortfahren.

Hinweis: Die Objektsperre funktioniert nur, wenn die Versionierung aktiviert ist.

Die ordnungsgemäße Verwaltung und Konfiguration Ihrer AWS-S3-Buckets ist entscheidend für die Sicherheit Ihrer Infrastruktur – unabhängig davon, wo die Server gehostet werden. Die Schritte in der Anleitung bilden lediglich einen Anfang. Eine umfassende Cybersicherheitsstrategie erfordert außerdem eine einheitliche Überwachung auf ungewöhnliche Datenzugriffsmuster und Anzeichen potenzieller Kompromittierung hin. Varonis hat den Anbieter Polyrize übernommen, um die Sicherheitsprobleme der Cloud besser bewältigen zu können.

Unter diesem Link können Sie einen Anruf mit unseren Cyber-Security-Experten vereinbaren und besprechen, wie Varonis Sie bei der Verwaltung Ihrer Cloud-Infrastruktur unterstützen kann.