Datenverschlüsselung

Standardmäßig werden die folgenden Daten auf der Hybrid-Laufzeitebene verschlüsselt:

  • KMS-Daten (Key Management System)
  • Daten der Schlüsselwertzuordnung (KVM)
  • Daten im Cache

Die Datenverschlüsselung erfordert keine spezielle Konfiguration Ihrerseits. Wenn Sie jedoch Ihre eigenen Verschlüsselungsschlüssel verwenden möchten (also die Standardschlüssel ersetzen), folgen Sie der Anleitung in diesem Thema.

Bereich des Verschlüsselungsschlüssels

Die Verschlüsselungsschlüssel für KMS, KVM und Cache haben einen Bereich. KMS-Schlüssel haben beispielsweise den Bereich Organisation. Dies bedeutet, dass der Schlüssel verwendet wird, um KMS-Daten für die gesamte Organisation zu verschlüsseln. In der folgenden Tabelle sind die Bereiche für jeden Schlüsseltyp aufgeführt:

Verschlüsselungsschlüssel Umfang
KMS Nur Organisation
KVM Organisation oder Umgebung

Wenn eine KVM-Richtlinie den Bereich apiproxy oder policy (API-Proxy-Version) angibt, wird der Schlüssel auf Organisationsebene zum Verschlüsseln der Daten verwendet. Eine allgemeine Übersicht über die Verwendung von KVMs in Apigee Edge finden Sie unter Mit Schlüsselwertzuordnungen arbeiten.

Cache Nur Umgebung

Standardverschlüsselungsschlüssel

Standardmäßig stellt Apigee Hybrid eine Reihe von Base64-codierten Schlüsseln bereit, die zum Verschlüsseln von KVM-, KMS- und Cache-Daten verwendet werden. Das Apigee Hybrid-Installationsprogramm speichert die Schlüssel in der Laufzeitebene als Kubernetes-Secrets und verwendet sie, um Ihre Daten mit der AES‑128-Standardverschlüsselung zu verschlüsseln. Die Schlüssel befinden sich in Ihrer Kontrolle. Die Hybrid-Verwaltungsebene ist sich der Schlüssel zu keinem Zeitpunkt bewusst.

Standardverschlüsselungsschlüssel ändern

Obwohl nicht erforderlich, können Sie jeden der Standardverschlüsselungsschlüssel ändern, wenn Sie möchten. Gehen Sie so vor, um einen oder mehrere Standardschlüssel zu ersetzen:

  1. Kopieren Sie die folgenden Blöcke in die Überschreibungsdatei. Mit dieser Konfiguration können Sie die KMS- und KVM-Verschlüsselungsschlüssel für die Organisationsebene und die KVM- und Cache-Verschlüsselungsschlüssel für die Umgebungsebene ändern:
    defaults:
      org:
        kmsEncryptionKey: base64-encoded-key
        kvmEncryptionKey: base64-encoded-key
      env:
        kvmEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
  2. Generieren Sie für jeden Schlüssel, den Sie ersetzen möchten, einen neuen Schlüssel. Jeder Schlüssel muss ein Base64-codierter String sein, der genau 16, 24 oder 32 Byte lang ist. Weitere Informationen finden Sie unter Codierten Schlüssel erstellen.
  3. Ersetzen Sie die Standardschlüssel durch neue. In diesem Beispiel werden alle Standardschlüssel durch Schlüssel ersetzt:
    defaults:
      org:
        kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c="
        kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU="
      env:
        kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE="
        cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
  4. Wenden Sie die Überschreibungsdatei auf Ihren Cluster an.

Hinweis zur Abwärtskompatibilität

Wenn Sie die Verschlüsselungsschlüssel aus Ihrer Überschreibungsdatei bei der Erstinstallation von Apigee Hybrid entfernen, würden Sie die Verschlüsselung effektiv deaktivieren und die Werte würden unverschlüsselt gespeichert. Wenn Sie die Verschlüsselung zu einem späteren Zeitpunkt durch die Bereitstellung von Schlüsseln aktivieren, bleiben die vorhandenen Daten unverschlüsselt. Alle zukünftig hinzugefügten Daten werden jedoch verschlüsselt. Das System funktioniert weiterhin mit den unverschlüsselten Daten und den neuen verschlüsselten Daten.

Beachten Sie außerdem, dass Sie die Verschlüsselungsschlüssel später nicht mehr ändern können, sobald die Laufzeitdaten verschlüsselt sind.

So erstellen Sie einen codierten Schlüssel

Ein korrekt formatierter Base64-codierter Schlüssel ist für KVM-, KMS- und Cache-Verschlüsselung erforderlich. Der für diese Zwecke verwendete Schlüssel muss Base-64-codiert aus einem String mit 16, 24 oder 32 Byte sein, wie in den folgenden Schritten erläutert:

Die folgenden Beispielbefehle generieren geeignete, zufällig generierte, 32 Zeichen lange, Base64-codierte Strings, die keine nicht druckbaren Zeichen enthalten:

LC_ALL=C tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)\\-+= < /dev/urandom | head -c 32  | openssl base64
PSFvX0BPc1Z2NVklcXdxcF8xR0N4MV4temFveStITU4=

oder

LC_ALL=C tr -dc "[:print:]" < /dev/urandom | head -c 32 | openssl base64