Secret-Verschlüsselung aktivieren

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):

  1. 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.

  2. 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.

  1. 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
  2. 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
  3. 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 mit KEYSTORE_PASSWORD identisch sein.

  4. 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.
    
  5. 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:

  1. Erstellen Sie eine Entwickler-App, um die Erstellung eines Datenverschlüsselungsschlüssels (Data Encryption Key, DEK) auszulösen. Schritte: Siehe App registrieren.
  2. 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.

  1. 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
  2. Sorgen Sie dafür, dass die Datei für apigee-Nutzer lesbar ist:
    chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
  3. 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 dem KEYSTORE_PASSWORD identisch sein. je nachdem, mit welchem Tool der Schlüsselspeicher generiert wurde.

  4. 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.
  5. 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.