Zum Inhalt

47-Tage-Zertifikate sind im Anmarsch. Sind Sie bereit?

Jetzt handeln →

AWS S3 – Client- und Serverseitige Verschlüsselung

AWS S3 – Client- und serverseitige Verschlüsselung

Verschlüsselung ist eine der grundlegendsten Voraussetzungen für den Datenschutz, insbesondere für die Ende-zu-Ende-Verschlüsselung von Daten, die über Netzwerke übertragen werden. Klartext wird mithilfe eines Verschlüsselungsalgorithmus und eines Verschlüsselungsschlüssels verschlüsselt . Die Verschlüsselung wandelt den lesbaren Text in einen unlesbaren Text um, den sogenannten Geheimtext ( verschlüsselte Daten).

Im heutigen Blogbeitrag besprechen wir verschiedene Verschlüsselungsoptionen des AWS Simple Storage Service, bekannt als S3. S3 ist im Vergleich zu lokalen Datenspeichern (On-Prem) für speicherintensive Anwendungen wie Hadoop EMR äußerst zuverlässig, sicher und kostengünstig. S3 speichert die Daten in sogenannten „Buckets“, wobei jedes Objekt bis zu 5 TB groß sein kann.

Verschlüsselungsmethoden

AWS S3 bietet beide Verschlüsselungsmethoden an: Verschlüsselung während der Übertragung und Verschlüsselung im Ruhezustand.

Verschlüsselung während der Übertragung

Die Verschlüsselung während der Übertragung für Amazon S3 kann mithilfe von SSL/TLS auf Clientseite sowie mit der unten stehenden ähnlichen Bucket-Richtlinie auf Bucket-Ebene ermöglicht werden:

{
  "Id": "Policy1600282742195",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1600282739517",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::mysecures3buket",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      },
      "Principal": "*"
    }
  ]
}

Verschlüsselung in Ruhe

Die Verschlüsselung ruhender Daten lässt sich weiter in clientseitige und serverseitige Verschlüsselung unterteilen . Sowohl für die serverseitige als auch für die clientseitige Verschlüsselung verwendet AWS AES-256 mit Galois-Zählermodus (GCM) für alle symmetrischen Verschlüsselungsoperationen. GCM gewährleistet authentifizierte Verschlüsselung durch Hinzufügen eines eindeutigen Tags zum Chiffretext, der bestätigt, dass die verschlüsselten Daten in keiner Weise manipuliert wurden.

Clientseitige Verschlüsselung

Bei der clientseitigen Verschlüsselung werden die Daten verschlüsselt, bevor sie an den S3-Bucket gesendet werden. Für die Implementierung der clientseitigen Verschlüsselung in S3 stehen uns folgende zwei Optionen zur Verfügung:

  • Verwenden Sie einen CMK (Kunden Hauptschlüssel) im AWS KMS (Key Management Service) gespeichert
  • Verwenden Sie einen vom Kunden bereitgestellten Hauptschlüssel, der in der proprietären Anwendung des Kunden gespeichert ist

Hinweis : Ihre clientseitigen Masterschlüssel und Ihre unverschlüsselten Daten werden niemals an AWS gesendet. Es ist äußerst wichtig, dass Sie Ihre Verschlüsselungsschlüssel mit größter Sorgfalt verwalten. Wenn Sie diese verlieren, können Sie Ihre Daten nicht entschlüsseln.

Serverseitige Verschlüsselung

Bei der serverseitigen Verschlüsselung werden die Daten verschlüsselt, nachdem sie an den S3-Bucket gesendet wurden und bevor sie im S3-Bucket gespeichert werden.

Für die serverseitige Verschlüsselung stehen die folgenden drei Optionen zur Verfügung:

  1. Verwenden Sie von Amazon S3 verwaltete Schlüssel (SSE-S3).Dabei werden das Schlüsselmaterial und der Schlüssel von AWS selbst bereitgestellt, um die Objekte im S3-Bucket zu verschlüsseln.
  2. CMK (Customer Master Key) in AWS KMS (SSE-KMS) verwendenDabei werden Schlüsselmaterial und der Schlüssel im AWS KMS-Dienst generiert, um die Objekte im S3-Bucket zu verschlüsseln.
  3. Verwenden Sie einen vom Kunden bereitgestellten Verschlüsselungsschlüssel (SSE-C).Dabei wird der Schlüssel vom Kunden bereitgestellt und Amazon S3 verwaltet die Verschlüsselung und Entschlüsselung Prozess beim Hoch-/Herunterladen der Objekte in den S3-Bucket.

Mit SSE-S3 verwendet Amazon S3 serverseitig verschlüsselt. Dabei kommt einer der sichersten Blockchiffren zum Einsatz: AES-256 (Advanced Encryption Standard). Jedes Objekt wird mit einem eindeutigen Schlüssel verschlüsselt, sodass keine sich überschneidenden Schlüssel verwendet werden. Zusätzlich werden diese eindeutigen Schlüssel mit einem Master-Schlüssel verschlüsselt, der regelmäßig rotiert wird, um die Datensicherheit weiter zu erhöhen.

Mit SSE-KMS nutzt Amazon S3 die AWS KMS-Funktionalität, um die Daten im S3-Bucket zu verschlüsseln. Die Kombination von Amazon S3 mit AWS KMS bietet eine optimale Verbindung von Sicherheit und Verfügbarkeit.

Maßgeschneiderte Cloud-Schlüsselverwaltungsdienste

Erhalten Sie flexible und anpassbare Beratungsdienste, die auf Ihre Cloud-Anforderungen abgestimmt sind.

Schematische Darstellung der Funktionsweise von SSE-KMS

  1. CMK erstellt mithilfe des Verschlüsselungsalgorithmus (AES-256) zwei Schlüssel, einen Klartext-Datenschlüssel und einen verschlüsselten Datenschlüssel.

    Klartext-Datenschlüssel zu verschlüsseltem Datenschlüssel

  2. Beim Hochladen des Objekts in den S3-Bucket verschlüsselt S3 das Objekt mit dem Klartext-Datenschlüssel. Das verschlüsselte Objekt (Chiffretext) wird dann zusammen mit dem verschlüsselten Datenschlüssel in S3 gespeichert.

    Klartextdaten in Chiffretext

  3. Beim Herunterladen des Objekts aus dem S3-Bucket sendet S3 den verschlüsselten Datenschlüssel an KMS. KMS gleicht den richtigen CMK ab, entschlüsselt den verschlüsselten Datenschlüssel und sendet den Klartext-Datenschlüssel an S3. S3 lädt das Objekt dann herunter, indem es es mit diesem Klartext-Datenschlüssel entschlüsselt.

    entschlüsselt die verschlüsselten Daten

Bei der Verwendung von SSE-KMS sind folgende Kombinationen möglich:

  1. Vom Kunden verwalteter CMK (Customer Master Key)Dies ist ein Anwendungsfall, bei dem Sie die vollständige Kontrolle über den CMK haben möchten. Sie können ihn erstellen, rotieren, deaktivieren, prüfen und haben die vollständige Zugriffskontrolle darüber, wer ihn verwenden kann. Wenn Sie vom Kunden verwaltete CMKs verwenden möchten, können Sie diese in der AWS KMS-Konsole erstellen, bevor Sie sie auf S3-Ebene verwenden.
  2. AWS Managed CMK (Kundenhauptschlüssel)Dies ist ein Anwendungsfall, bei dem Sie keinen vom Kunden verwalteten CMK angeben. Um den Vorgang für Benutzer zu vereinfachen, erstellt Amazon S3 automatisch einen AWS-verwalteten CMK im AWS-Konto, wenn Sie zum ersten Mal ein mit SSE-KMS verschlüsseltes Objekt zu einem Bucket hinzufügen. Standardmäßig verwendet Amazon S3 diesen CMK für SSE-KMS.

Hinweis: Alle Anfragen (GET und PUT) an ein mit SSE-KMS verschlüsseltes Objekt führen zu einem Fehler, wenn sie nicht über HTTPS oder mit SigV4 erfolgen. Amazon SigV4 ist ein von Amazon S3 unterstützter Authentifizierungsmechanismus zum Signieren von API-Anfragen. Dadurch kann Amazon S3 die Absender-/Quellidentifizierung durchführen und Ihre Anfragen vor Angreifern schützen.

  • Bei der serverseitigen Verschlüsselung werden nur die Objektdaten verschlüsselt, nicht die Objektmetadaten.

Mit SSE-C führt Amazon S3 die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln durch. Mithilfe des vom Benutzer bereitgestellten Schlüssels verwaltet Amazon S3 die Ver- und Entschlüsselung beim Schreiben und Lesen der Daten auf den Festplatten. Da die Verwaltung der Ver- und Entschlüsselung von Amazon S3 übernommen wird, ist keine Codeverwaltung durch den Benutzer erforderlich. Die einzige Aufgabe des Benutzers besteht in der Verwaltung der Verschlüsselungsschlüssel. Amazon S3 verwendet AES-256-Bit-Verschlüsselung, um die Daten mit dem vom Kunden bereitgestellten Schlüssel zu verschlüsseln und entfernt den Schlüssel nach Abschluss der Verschlüsselung aus dem Speicher. Bei der Entschlüsselung wird zunächst überprüft, ob derselbe Schlüssel wie bei der Verschlüsselung angegeben wurde. Anschließend werden die Daten entschlüsselt und dem Benutzer zur Verfügung gestellt.

Hinweis: Amazon S3 speichert nicht den Verschlüsselungsschlüssel selbst, sondern einen zufällig gesalzenen HMAC-Wert (Hash-basierter Message Authentication Code) des Schlüssels, um zukünftige Anfragen zu validieren. Aus diesem HMAC-Wert lässt sich weder der eigentliche Verschlüsselungsschlüssel ableiten noch der Inhalt der verschlüsselten Daten entschlüsseln. Das bedeutet: Geht der Verschlüsselungsschlüssel verloren, gehen auch die Daten verloren.

Vergleich der S3-Verschlüsselungsoptionen

S3 bietet mehrere Optionen zum Verschlüsseln der Daten im S3-Bucket. Die folgende Tabelle fasst alle verfügbaren Optionen zum Verschlüsseln der Daten im Ruhezustand und während der Übertragung zusammen:

 Verschlüsselung in RuheVerschlüsselung während der ÜbertragungSymmetrische SchlüsselverschlüsselungAsymmetrische SchlüsselverschlüsselungVerantwortlicher für die Datenverschlüsselung/-entschlüsselungVerantwortlicher für die Geheimhaltung
AWS:SecureTransportNYYYAWSAWS
SSE-S3YNYNAWSAWS
SSE-KMS (von AWS verwalteter CMK)YNYNAWSAWS
SSE-KMS (vom Kunden verwalteter CMK)YNYNAWSAWS
SSE-CYNYNAWSDurch den
AWS SDK + KMS (von AWS verwalteter CMK)YNYNDurch denAWS
AWS SDK + KMS (vom Kunden verwaltetes CMK)YNYNDurch denAWS
AWS SDK + selbstverwaltetes GeheimnisYNYYDurch denDurch den

Fazit

Amazon S3 eignet sich hervorragend für Umgebungen mit verschiedenen Anwendungen, die große Datenmengen generieren. S3 bietet nicht nur die Möglichkeit, riesige Datenmengen kostengünstig zu speichern, sondern ist auch langlebig, skalierbar und hochverfügbar. Datenschutz und Compliance sind für die Datensicherheit unerlässlich und werden durch die verschiedenen Verschlüsselungsmethoden von Amazon S3 gewährleistet. Dank der verschiedenen S3-Verschlüsselungsoptionen können Sie sich entspannt zurücklehnen, ohne sich Sorgen um Datenkompromittationen machen zu müssen.