In diesem Dokument wird erläutert, wie Sie die Verschlüsselung von Gespeicherte Consumer-Secrets (Clientanmeldedaten) für Entwickler-App in der Cassandra-Datenbank.
Übersicht
Traditionell bietet Apigee Edge for Private Cloud eine optionale Verschlüsselung für die Schlüsselwertzuordnung an. KVM-Daten und OAuth-Zugriffstokens.
In der folgenden Tabelle werden die Verschlüsselungsoptionen für ruhende Daten in Apigee for Private Cloud beschrieben:
Entität | Verschlüsselung standardmäßig aktiviert | Verschlüsselung optional verfügbar | Weitere Dokumentation |
KVMs | Nein | Ja | Weitere Informationen finden Sie unter Verschlüsselte KVMs. |
OAuth-Zugriffstokens | Nein | Ja | Weitere Informationen finden Sie unter Hash-Tokens für zusätzliche Sicherheit. |
Consumer-Secrets für Entwickler-Apps | Nein | Ja | Führen Sie zum Aktivieren die Konfigurationsschritte in diesem Dokument aus. |
Führen Sie die folgenden Aufgaben aus, um die Verschlüsselung von Clientanmeldedaten zu aktivieren alle Knoten des Nachrichtenprozessors und des Verwaltungsservers:
- Erstellen Sie einen Schlüsselspeicher zum Speichern eines Schlüsselverschlüsselungsschlüssel (KEK) Apigee verwendet diesen verschlüsselten Schlüssel, um die geheimen Schlüssel zu verschlüsseln, die zum Verschlüsseln Ihrer Daten erforderlich sind.
- Konfigurationseigenschaften auf allen Verwaltungsserver- und Nachrichtenprozessorknoten bearbeiten.
- Erstellen Sie eine Entwickler-App, um die Schlüsselerstellung auszulösen.
- Starten Sie die Knoten neu.
Diese Aufgaben werden in diesem Dokument erläutert.
Wichtige Informationen zum Schlüssel Verschlüsselungsfunktion
In diesem Dokument wird erläutert, wie Sie das KEK-Feature aktivieren, mit dem Apigee geheime Schlüssel zum Verschlüsseln der Entwickler-App Consumer-Secrets, wenn diese inaktiv in der Cassandra-Datenbank gespeichert werden.
Standardmäßig bleiben alle vorhandenen Werte in der Datenbank unverändert (im Nur-Text-Format) und wie gehabt weiterzuarbeiten.
Wenn Sie einen Schreibvorgang für eine unverschlüsselte Entität ausführen, wird diese verschlüsselt, wenn der wird gespeichert. Wenn Sie beispielsweise ein unverschlüsseltes Token widerrufen und es später genehmigen, wird das neu genehmigte Token verschlüsselt.
Sichere Aufbewahrung der Schlüssel
Speichern Sie eine Kopie des Schlüsselspeichers, in dem der KEK gespeichert ist, an einem sicheren Ort. Wir empfehlen die Verwendung Ihrer eigenen sicheren Mechanismus zum Speichern einer Kopie des Schlüsselspeichers. Wie in der Anleitung in diesem Dokument erläutert, Ein Schlüsselspeicher muss auf jedem Knoten von Nachrichtenprozessor und Verwaltungsservern platziert werden, an dem der lokale Konfigurationsdatei darauf verweisen kann. Es ist jedoch auch wichtig, eine Kopie des Schlüsselspeichers zur Sicherheit und als Sicherung an einem anderen Ort aufzubewahren.
Schlüsselverschlüsselung aktivieren
Gehen Sie wie folgt vor, um Consumer-Secret-Key-Verschlüsselung zu nutzen:
Vorbereitung
Sie müssen die folgenden Anforderungen erfüllen, bevor Sie die Schritte in diesem Dokument ausführen:
- Sie müssen Apigee Edge for Private Cloud 4.50.00.10 oder höher installieren oder ein Upgrade darauf ausführen.
- Sie müssen Administrator von Apigee Edge for Private Cloud sein.
Schritt 1: Schlüsselspeicher generieren
So erstellen Sie einen Schlüsselspeicher für den Schlüsselverschlüsselungsschlüssel (Key Encryption Key, KEK):
- Führen Sie den folgenden Befehl aus, um einen Schlüsselspeicher zum Speichern eines Schlüssels zu generieren, der für Folgendes verwendet wird:
Verschlüsseln Sie den KEK. Geben Sie den Befehl genau wie gezeigt ein. Sie können einen beliebigen Schlüsselspeichernamen angeben:
keytool -genseckey -alias KEYSTORE_NAME -keyalg AES -keysize 256 \ -keystore kekstore.p12 -storetype PKCS12
Geben Sie ein Passwort ein, wenn Sie dazu aufgefordert werden. Sie werden dieses Passwort später verwenden, wenn Sie Verwaltungsserver und Nachrichtenprozessor konfigurieren.
Dieser Befehl generiert die Schlüsselspeicherdatei kekstore.p12, die einen Schlüssel mit Alias KEYSTORE_NAME.
- Optional: Prüfen Sie mit dem folgenden Befehl, ob die Datei korrekt generiert wurde. Wenn die Datei
richtig ist, gibt der Befehl einen Schlüssel mit dem Alias KEYSTORE_NAME zurück:
keytool -list -keystore kekstore.p12
Schritt 2: Verwaltungsserver konfigurieren
Konfigurieren Sie als Nächstes den Verwaltungsserver. Wenn Verwaltungsserver auf mehreren Knoten installiert sind, müssen Sie diese Schritte auf jedem Knoten wiederholen.
- Kopieren Sie die in Schritt 1 generierte Schlüsselspeicherdatei in ein Verzeichnis auf dem Knoten des Verwaltungsservers, z. B.
/opt/apigee/customer/application
. Beispiel:cp certs/kekstore.p12 /opt/apigee/customer/application
- Sorgen Sie dafür, dass die Datei für
apigee
-Nutzer lesbar ist:chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
chmod 400 /opt/apigee/customer/application/kekstore.p12
- Fügen Sie
/opt/apigee/customer/application/management-server.properties
die folgenden Attribute hinzu. Wenn die Datei nicht vorhanden ist, erstellen Sie sie. Weitere Informationen finden Sie unter Property-Datei-Referenz.
conf_keymanagement_kmscred.encryption.enabled=true # Fallback is true to ensure your existing plaintext credentials continue to work conf_keymanagement_kmscred.encryption.allowFallback=true conf_keymanagement_kmscred.encryption.keystore.path=PATH_TO_KEYSTORE_FILE conf_keymanagement_kmscred.encryption.kek.alias=KEYSTORE_NAME # These could alternately be set as environment variables. These variables should be # accessible to Apigee user during bootup of the Java process. If environment # variables are specified, you can skip the password configs below. # KMSCRED_ENCRYPTION_KEYSTORE_PASS= # KMSCRED_ENCRYPTION_KEK_PASS= See also Using environment variables for configuration properties. conf_keymanagement_kmscred.encryption.keystore.pass=KEYSTORE_PASSWORD conf_keymanagement_kmscred.encryption.kek.pass=KEK_PASSWORD
Hinweis: Abhängig von dem Tool, mit dem der Schlüsselspeicher generiert wird, kann
KEK_PASSWORD
mitKEYSTORE_PASSWORD
identisch sein. - Starten Sie den Verwaltungsserver mit den folgenden Befehlen neu:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
/opt/apigee/apigee-service/bin/apigee-service edge-management-server wait_for_ready
Der Befehl
wait_for_ready
gibt die folgende Meldung zurück, wenn der Verwaltungsserver bereit ist:Checking if management-server is up: management-server is up.
- Wenn Sie Verwaltungsserver auf mehreren Knoten installiert haben, wiederholen Sie die Schritte 1 bis 4 oben auf jedem Verwaltungsserverknoten.
Schritt 3: Entwickler-App erstellen
Nachdem die Verwaltungsserver aktualisiert wurden, müssen Sie eine Entwickler-App erstellen, um die Generierung auszulösen des Schlüssels, mit dem die Daten der Clientanmeldedaten verschlüsselt werden:
- Erstellen Sie eine Entwickler-App, um die Erstellung eines Datenverschlüsselungsschlüssels (Data Encryption Key, DEK) auszulösen. Schritte: Siehe App registrieren.
- Sie können die Entwickler-App löschen, wenn Sie möchten. Sie müssen sie nach der Verschlüsselung nicht mehr Schlüssel generiert wird.
Schritt 4: Nachrichtenprozessoren konfigurieren
Solange die Verschlüsselung in den Nachrichtenprozessoren nicht aktiviert ist, können Laufzeitanfragen keine verschlüsselten Anmeldedaten verarbeiten.
- Kopieren Sie die in Schritt 1 generierte Schlüsselspeicherdatei in ein Verzeichnis auf dem Nachrichtenprozessorknoten.
wie
/opt/apigee/customer/application
. Beispiel:cp certs/kekstore.p12 /opt/apigee/customer/application
- Sorgen Sie dafür, dass die Datei für
apigee
-Nutzer lesbar ist:chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
- Fügen Sie
/opt/apigee/customer/application/message-processor.properties
die folgenden Properties hinzu. Wenn die Datei nicht vorhanden ist, erstellen Sie sie. Weitere Informationen finden Sie unter Property-Datei-Referenz.conf_keymanagement_kmscred.encryption.enabled=true # Fallback is true to ensure your existing plaintext credentials continue to work conf_keymanagement_kmscred.encryption.allowFallback=true conf_keymanagement_kmscred.encryption.keystore.path=PATH_TO_KEYSTORE_FILE conf_keymanagement_kmscred.encryption.kek.alias=KEYSTORE_NAME # These could alternately be set as environment variables. These variables should be # accessible to Apigee user during bootup of the Java process. If environment # variables are specified, you can skip the password configs below. # KMSCRED_ENCRYPTION_KEYSTORE_PASS= # KMSCRED_ENCRYPTION_KEK_PASS= See also Using environment variables for configuration properties. conf_keymanagement_kmscred.encryption.keystore.pass=KEYSTORE_PASSWORD conf_keymanagement_kmscred.encryption.kek.pass=KEK_PASSWORD
Der
KEK_PASSWORD
kann mit demKEYSTORE_PASSWORD
identisch sein. je nachdem, mit welchem Tool der Schlüsselspeicher generiert wurde. - Starten Sie den Nachrichtenprozessor mit den folgenden Befehlen neu:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
Wenn der Nachrichten-Prozessor bereit ist, Nachrichten zu verarbeiten, gibt der Befehl
wait_for_ready
die folgende Meldung zurück:Checking if message-processor is up: message-processor is up.
- Wenn Sie Message Processor auf mehreren Knoten installiert haben, wiederholen Sie die Schritte 1 bis 4 auf jedem Knoten Message Processor Node.
Zusammenfassung
Das Anmeldedaten-Secret aller Entwickler-Apps, die Sie ab jetzt erstellen, wird unter in der Cassandra-Datenbank aus.
Umgebungsvariablen für Konfigurationseigenschaften verwenden
Alternativ können Sie die folgenden Konfigurationseigenschaften für den Nachrichtenprozessor und den Verwaltungsserver mithilfe von Umgebungsvariablen festlegen. Wenn festgelegt, überschreiben die Umgebungsvariablen die Attribute in der Konfigurationsdatei des Nachrichtenprozessors oder des Verwaltungsservers festgelegt.
conf_keymanagement_kmscred.encryption.keystore.pass= conf_keymanagement_kmscred.encryption.kek.pass=
Die entsprechenden Umgebungsvariablen sind:
export KMSCRED_ENCRYPTION_KEYSTORE_PASS=KEYSTORE_PASSWORD
export KMSCRED_ENCRYPTION_KEK_PASS=KEK_PASSWORD
Wenn Sie diese Umgebungsvariablen festlegen, können Sie diese Konfigurationseigenschaften aus dem Konfigurationsdateien auf den Knoten des Message Processor und des Verwaltungsservers, da sie ignoriert werden:
conf_keymanagement_kmscred.encryption.keystore.pass conf_keymanagement_kmscred.encryption.kek.pass
Attributdateireferenz
In diesem Abschnitt werden die Konfigurationsattribute beschrieben, die Sie für jeden Message Processor festlegen müssen und Verwaltungsserverknoten, wie zuvor in diesem Dokument erläutert.
Attribut | Standard | Beschreibung |
conf_keymanagement_kmscred.encryption.enabled
|
false
|
Muss true sein, um die Schlüsselverschlüsselung zu aktivieren.
|
conf_keymanagement_kmscred.encryption.allowFallback
|
false
|
Setzen Sie „allowFallback“ auf true , damit Ihre vorhandenen Anmeldedaten im Nur-Text-Format weiterhin funktionieren.
|
conf_keymanagement_kmscred.encryption.keystore.path
|
– | Geben Sie den Pfad zum KEK-Schlüsselspeicher auf dem Knoten des Nachrichtenprozessors oder des Verwaltungsservers an. Siehe Schritt 2: Verwaltung konfigurieren Server und Schritt 3: Nachrichtenprozessoren konfigurieren aus. |
conf_keymanagement_kmscred.encryption.kek.alias
|
– | Alias, unter dem der KEK im Schlüsselspeicher gespeichert ist. |
conf_keymanagement_kmscred.encryption.keystore.pass
|
– | Optional, wenn Sie diese Attribute mithilfe von Umgebungsvariablen festlegen. Siehe auch Umgebung verwenden Variablen für Konfigurationsattribute. |
conf_keymanagement_kmscred.encryption.kek.pass
|
– | Optional, wenn Sie diese Attribute mithilfe von Umgebungsvariablen festlegen. Siehe auch Umgebung verwenden Variablen für Konfigurationsattribute. |