Standardmäßig werden die folgenden Daten auf der Hybridlaufzeitebene 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 (die Standardschlüssel ersetzen), können Sie dies tun, wie in diesem Thema erläutert.
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 |
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 Hybridinstallationsprogramm von Apigee 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 liegen unter Ihrer Kontrolle. Die hybride Verwaltungsebene ist sich ihrer zu keinem Zeitpunkt bewusst.
Standardverschlüsselungsschlüssel ändern
Obwohl nicht erforderlich, können Sie jeden der Standardverschlüsselungsschlüssel ändern, wenn Sie dies wünschen. Gehen Sie folgendermaßen vor, um einen oder mehrere Standardschlüssel zu ersetzen:
- Kopieren Sie die folgenden Stanzas 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
- Generieren Sie einen neuen Schlüssel für jeden Schlüssel, den Sie ersetzen möchten. Jeder Schlüssel muss ein Base64-codierter String sein, der genau 16, 24 oder 32 Byte lang ist. Siehe auch Codierten Schlüssel erstellen.
- 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="
- So wenden Sie die Überschreibungsdatei auf Ihren Cluster an:
- Wenn Sie die KVM- oder Cache-Schlüssel ändern, aktualisieren Sie nur die Umgebung:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name
- Wenn Sie KMS-Schlüssel ändern, aktualisieren Sie sowohl die Organisation als auch die Umgebung:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name --org org_name
- Wenn Sie die KVM- oder Cache-Schlüssel ändern, aktualisieren Sie nur die Umgebung:
- Starten Sie die Pods
apigee-runtime
undapigee-mart
neu.
Hinweis zur Abwärtskompatibilität
Wenn Sie Apigee Hybrid zum ersten Mal installieren, werden die Standardverschlüsselungsschlüssel verwendet. Wenn Sie die Verschlüsselungsschlüssel entfernen, würden Sie die Verschlüsselung effektiv deaktivieren und nachfolgende Werte werden unverschlüsselt gespeichert. Wenn Sie die Verschlüsselung zu einem späteren Zeitpunkt durch die Bereitstellung von Schlüsseln aktivieren, bleiben alle unverschlüsselten 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 unten erläutert:
Mit dem folgenden Beispielbefehl wird ein geeigneter, zufällig generierter, Base64-codierter String mit 32 Zeichen generiert:
head -c 32 /dev/random | openssl base64