Zum Inhalt

Webinar: Melden Sie sich jetzt für unser kommendes Webinar an!

Jetzt registrieren

AWS S3 – Client- und Serverseitige Verschlüsselung

AWS S3 – Client- und serverseitige Verschlüsselung

Verschlüsselung ist eine der grundlegendsten Voraussetzungen für die Gewährleistung des Datenschutzes, insbesondere für den End-to-End-Schutz der über Netzwerke übertragenen Daten. Klartext is verschlüsselt Verwendung eines Verschlüsselung Algorithmus und ein Verschlüsselung Schlüssel. Die Verschlüsselung wandelt den lesbaren Text in einen unlesbaren Text um, der als Geheimtext (verschlüsselt 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, Verschlüsselung während der Übertragung und Verschlüsselung in Ruhe.

Verschlüsselung während der Übertragung

Verschlüsselung während der Übertragung für Amazon S3 kann erleichtert werden mit Hilfe von SSL / TLS auf der Clientseite sowie mit der folgenden ähnlichen Bucket-Richtlinie auf Bucket-Ebene:

{
  "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

Verschlüsselung in Ruhe kann weiter unterteilt werden in Die clientseitige Verschlüsselung und Serverseitige Verschlüsselung Auch für die server- und clientseitige Verschlüsselung verwendet AWS AES-256 mit Galois Counter Mode (GCM) für alle symmetrischen Schlüsselverschlüsselungsvorgänge. GCM bietet authentifizierte Verschlüsselung, indem es dem Chiffretext ein eindeutiges Tag hinzufügt, das bestätigt, dass die verschlüsselten Daten in keiner Weise manipuliert wurden.

Clientseitige Verschlüsselung

In Die clientseitige Verschlüsselungwerden die Daten verschlüsselt, bevor sie an den S3-Bucket gesendet werden. Um dies zu implementieren Die clientseitige Verschlüsselung in S3 haben wir die folgenden zwei Optionen:

  • 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 Hauptschlüssel und Ihre unverschlüsselten Daten werden niemals an AWS gesendet. Es ist sehr wichtig, dass Sie Ihre Verschlüsselungsschlüssel mit größter Sorgfalt verwalten. Wenn Sie sie verlieren, können Sie Ihre Daten nicht entschlüsseln.

Serverseitige Verschlüsselung

In Serverseitige Verschlüsselung, werden die Daten nach dem Senden an den S3-Bucket und vor der Speicherung im S3-Bucket verschlüsselt.

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-S3Die serverseitige Verschlüsselung von Amazon S3 verwendet eine der sichersten Blockchiffren, AES-256 (Advanced Encryption Standard), um jedes Objekt mit einem eindeutigen Schlüssel zu verschlüsseln. Dies bedeutet, dass keine sich überschneidenden Schlüssel für die Verschlüsselung der Objekte verwendet werden. Diese eindeutigen Schlüssel werden außerdem mit einem Masterschlüssel verschlüsselt, der regelmäßig rotiert wird, um zusätzliche Datensicherheit zu gewährleisten.

Mit SSE-KMSAmazon S3 verwendet die AWS KMS-Funktionalität, um die Daten im S3-Bucket zu verschlüsseln. Die Kombination von Amazon S3 mit AWS KMS bietet eine perfekte Mischung aus 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-KMSsind 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) für 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-/Quellenidentifizierung durchführen und Ihre Anfragen vor böswilligen Akteuren schützen.

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

Mit SSE-CAmazon S3 führt serverseitige Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln durch. Mit dem vom Benutzer bereitgestellten Verschlüsselungsschlüssel verwaltet Amazon S3 den Ver- und Entschlüsselungsprozess, während die Daten nacheinander auf die Festplatten geschrieben und darauf zugegriffen werden. Da die Verwaltung der Ver- und Entschlüsselung von Amazon S3 übernommen wird, ist es nicht erforderlich, den Code auf Benutzerebene zu verwalten. Die einzige Anforderung aus Benutzersicht ist die 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 des Verschlüsselungsprozesses aus seinem Speicher. Beim Entschlüsselungsprozess hingegen überprüft es zunächst, ob derselbe Schlüssel bereitgestellt wird (der während der Verschlüsselung bereitgestellt wurde), und führt einen Abgleich durch. Anschließend entschlüsselt es die Daten und stellt sie dem Benutzer zur Verfügung.

Hinweis: Amazon S3 speichert den Verschlüsselungsschlüssel nicht, sondern einen zufällig gesalzenen HMAC-Wert (Hash-Based Message Authentication Code) des Verschlüsselungsschlüssels, um zukünftige Anfragen zu validieren. Der gesalzene HMAC-Wert kann nicht verwendet werden, um den eigentlichen Verschlüsselungsschlüssel abzuleiten oder den Inhalt der verschlüsselten Daten zu entschlüsseln. Das bedeutet, dass bei Verlust des Verschlüsselungsschlüssels auch die Daten verloren gehen.

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.