Apigee mTLS konfigurieren

Nachdem Sie Apigee mTLS auf allen Knoten im Cluster installiert haben, müssen Sie die Komponente apigee-mtls konfigurieren und initialisieren. Generieren Sie dazu ein Zertifikat/Schlüsselpaar und aktualisieren Sie die Konfigurationsdatei auf Ihrem Verwaltungscomputer. Anschließend stellen Sie die generierten Dateien und die Konfigurationsdatei auf allen Knoten im Cluster bereit und initialisieren die lokale Komponente apigee-mtls.

Apigee-mtls konfigurieren (nach Erstinstallation)

In diesem Abschnitt wird beschrieben, wie Sie Apigee mTLS direkt nach der Erstinstallation konfigurieren. Informationen zum Aktualisieren einer vorhandenen Installation von Apigee mTLS finden Sie unter Vorhandene Apigee-mtls-Konfiguration ändern.

Dieser Abschnitt gilt für Installationen in einem einzelnen Rechenzentrum. Informationen zum Konfigurieren von Apigee mTLS in einer Einrichtung mit mehreren Rechenzentren finden Sie unter Mehrere Rechenzentren für Apigee mTLS konfigurieren.

Die allgemeine Konfiguration von apigee-mtls sieht so aus:

  1. Konfigurationsdatei aktualisieren: Aktualisieren Sie die Konfigurationsdatei auf Ihrem Verwaltungscomputer, sodass sie die apigee-mtls-Einstellungen enthält.
  2. Consul installieren und Anmeldedaten generieren: Installieren Sie Consul und verwenden Sie es (optional) zum Generieren von TLS-Anmeldedaten (nur einmal).

    Bearbeiten Sie außerdem Ihre Apigee-mTLS-Konfigurationsdatei:

    1. Anmeldedaten hinzufügen
    2. Topologie des Clusters definieren

    Beachten Sie, dass Sie Ihre vorhandenen Anmeldedaten verwenden oder mit Consul generieren können.

  3. Anmeldedaten und Konfigurationsdatei verteilen: Verteilen Sie das generierte Zertifikat/Schlüsselpaar und die aktualisierte Konfigurationsdatei an alle Knoten in Ihrem Cluster.
  4. apigee-mtls initialisieren: Initialisieren Sie die Komponente apigee-mtls auf jedem Knoten.

Jeder dieser Schritte wird in den folgenden Abschnitten beschrieben.

Schritt 1: Konfigurationsdatei aktualisieren

In diesem Abschnitt wird beschrieben, wie Sie Ihre Konfigurationsdatei so ändern, dass sie mTLS-Konfigurationsattribute enthält. Allgemeine Informationen zur Konfigurationsdatei finden Sie unter Konfigurationsdatei erstellen.

Nachdem Sie die Konfigurationsdatei mit den mTLS-bezogenen Attributen aktualisiert haben, kopieren Sie sie auf alle Knoten im Cluster, bevor Sie die Komponente apigee-mtls auf diesen Knoten initialisieren.

So aktualisieren Sie die Konfigurationsdatei:

  1. Öffnen Sie auf Ihrem Verwaltungscomputer die Konfigurationsdatei zur Bearbeitung.
  2. Kopieren Sie die folgenden mTLS-Konfigurationsattribute und fügen Sie sie in die Konfigurationsdatei ein:
    ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER"
    ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS"
    CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS"
    PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS"
    RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS"
    MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS"
    MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS"
    QP_MTLS_HOSTS="QPID_PRIVATE_IPS"
    LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS"
    MTLS_ENCAPSULATE_LDAP="y"
    
    ENABLE_SIDECAR_PROXY="y"
    ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE"
    PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem"
    PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem"
    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"
    TLS_MIN_VERSION="tls12"
    TLS_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
    

    Legen Sie den Wert jeder Eigenschaft so fest, dass er Ihrer Konfiguration entspricht.

    In der folgenden Tabelle werden diese Konfigurationsattribute beschrieben:

    Attribut Beschreibung
    ALL_IP Eine durch Leerzeichen getrennte Liste der privaten Host-IP-Adressen aller Knoten im Cluster.

    Die Reihenfolge der IP-Adressen spielt keine Rolle, außer dass sie in allen Konfigurationsdateien im Cluster gleich sein muss.

    Wenn Sie Apigee mTLS für mehrere Rechenzentren konfigurieren, listen Sie alle IP-Adressen für alle Hosts in allen Regionen auf.

    LDAP_MTLS_HOSTS Die private Host-IP-Adresse des OpenLDAP-Knotens im Cluster.
    ZK_MTLS_HOSTS

    Eine durch Leerzeichen getrennte Liste privater Host-IP-Adressen, auf denen ZooKeeper-Knoten im Cluster gehostet werden.

    Gemäß den Anforderungen müssen mindestens drei ZooKeeper-Knoten vorhanden sein.

    CASS_MTLS_HOSTS Eine durch Leerzeichen getrennte Liste privater Host-IP-Adressen, auf denen Cassandra-Server im Cluster gehostet werden.
    PG_MTLS_HOSTS Eine durch Leerzeichen getrennte Liste privater Host-IP-Adressen, auf denen Postgres-Server im Cluster gehostet werden.
    RT_MTLS_HOSTS Eine durch Leerzeichen getrennte Liste privater Host-IP-Adressen, auf denen Router im Cluster gehostet werden.
    MTLS_ENCAPSULATE_LDAP Verschlüsselt den LDAP-Traffic zwischen dem Message Processor und dem LDAP-Server. Legen Sie y fest.
    MS_MTLS_HOSTS Eine durch Leerzeichen getrennte Liste privater Host-IP-Adressen, auf denen Verwaltungsserverknoten im Cluster gehostet werden.
    MP_MTLS_HOSTS Eine durch Leerzeichen getrennte Liste privater Host-IP-Adressen, auf denen Message Processor im Cluster gehostet werden.
    QP_MTLS_HOSTS Eine durch Leerzeichen getrennte Liste privater Host-IP-Adressen, auf denen Qpid-Server im Cluster gehostet werden.
    ENABLE_SIDECAR_PROXY Bestimmt, ob Cassandra und Postgres das Service Mesh kennen sollten.

    Sie müssen diesen Wert auf „y“ festlegen.

    ENCRYPT_DATA Der von Consul verwendete base64-codierte Verschlüsselungsschlüssel. Sie haben diesen Schlüssel mit dem Befehl consul keygen in Schritt 2: Consul installieren und Anmeldedaten generieren generiert.

    Dieser Wert muss auf allen Knoten im Cluster gleich sein.

    PATH_TO_CA_CERT Der Speicherort der Zertifikatsdatei auf dem Knoten. Sie haben diese Datei in Schritt 2: Consul installieren und Anmeldedaten generieren generiert.

    Dieser Speicherort sollte auf allen Knoten im Cluster gleich sein, damit die Konfigurationsdateien identisch sind.

    Das Zertifikat muss X509v3-codiert sein.

    PATH_TO_CA_KEY Der Speicherort der Schlüsseldatei auf dem Knoten. Sie haben diese Datei in Schritt 2: Consul installieren und Anmeldedaten generieren generiert.

    Dieser Speicherort sollte auf allen Knoten im Cluster gleich sein, damit die Konfigurationsdateien identisch sind.

    Die Schlüsseldatei muss X509v3-codiert sein.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    Die Anzahl der Tage, die ein Zertifikat gültig ist, wenn Sie ein benutzerdefiniertes Zertifikat generieren.

    Der Standardwert ist 365. Der Höchstwert beträgt 7.865 Tage (5 Jahre).

    TLS_MIN_VERSION Gibt die mindestens zulässige TLS-Version an. Legen Sie tls12 fest, um mindestens TLS 1.2 zu erzwingen.
    TLS_CIPHER_SUITES Eine durch Kommas getrennte Liste der zulässigen TLS-Cipher Suites.

    Beispiel: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

    Zusätzlich zu den oben aufgeführten Attributen verwendet Apigee mTLS mehrere zusätzliche Attribute, wenn Sie es in einer Konfiguration mit mehreren Rechenzentren installieren. Weitere Informationen finden Sie unter Mehrere Rechenzentren konfigurieren.

  3. ENABLE_SIDECAR_PROXY muss auf „y“ festgelegt sein.
  4. Aktualisieren Sie die IP-Adressen in den hostbezogenen Properties. Achten Sie darauf, die privaten IP-Adressen zu verwenden, wenn Sie auf die einzelnen Knoten verweisen, und nicht auf die öffentlichen IP-Adressen.

    In späteren Schritten legen Sie die Werte der anderen Attribute wie ENCRYPT_DATA, PATH_TO_CA_CERT und PATH_TO_CA_KEY fest. Sie legen die Werte noch nicht fest.

    Beachten Sie beim Bearbeiten der apigee-mtls-Konfigurationsattribute Folgendes:

    • Alle Attribute sind Strings. Die Werte aller Attribute müssen in einfache oder doppelte Anführungszeichen gesetzt werden.
    • Wenn ein hostbezogener Wert mehr als eine private IP-Adresse hat, trennen Sie die einzelnen IP-Adressen durch ein Leerzeichen.
    • Verwenden Sie für alle hostbezogenen Attribute in der Konfigurationsdatei private IP-Adressen und nicht Hostnamen oder öffentliche IP-Adressen.
    • Die Reihenfolge der IP-Adressen in einem Attributwert muss in allen Konfigurationsdateien im Cluster in derselben Reihenfolge angegeben werden.
  5. Speichern Sie die Änderungen in der Konfigurationsdatei.

Schritt 2: Consul installieren und Anmeldedaten generieren

In diesem Abschnitt wird beschrieben, wie Sie Consul installieren und die Anmeldedaten generieren, die von den mTLS-fähigen Komponenten verwendet werden.

Wählen Sie eine der folgenden Methoden aus, um Ihre Anmeldedaten zu generieren:

  • (Empfohlen) Erstellen Sie mit Consul eine eigene Zertifizierungsstelle (Certificate Authority, CA), wie in diesem Abschnitt beschrieben
  • Anmeldedaten einer vorhandenen Zertifizierungsstelle mit Apigee mTLS verwenden (erweitert)

Anmeldedaten

Die Anmeldedaten sehen so aus:

  • Zertifikat:das TLS-Zertifikat
  • Schlüssel:der öffentliche TLS-Schlüssel
  • Gossip message:Ein base-64-codierter Verschlüsselungsschlüssel

Sie generieren eine Version jeder dieser Dateien nur einmal. Anschließend kopieren Sie die Schlüssel- und Zertifikatsdateien auf alle Knoten in Ihrem Cluster und fügen den Verschlüsselungsschlüssel zu Ihrer Konfigurationsdatei hinzu, die Sie ebenfalls auf alle Knoten kopieren.

Weitere Informationen zur Verschlüsselungsimplementierung von Consul finden Sie hier:

Consul installieren und Anmeldedaten generieren

Verwenden Sie eine lokale Consul-Binärdatei, um Anmeldedaten zu generieren, die Apigee mTLS für die sichere Kommunikation zwischen den Knoten in Ihrem Private Cloud-Cluster verwendet . Daher müssen Sie Consul auf Ihrem Verwaltungscomputer installieren, bevor Sie Anmeldedaten generieren können.

So installieren Sie Consul und generieren mTLS-Anmeldedaten:

  1. Laden Sie auf Ihrem Verwaltungscomputer das Consul 1.8.0-Binärprogramm von der HashiCorp-Website herunter.
  2. Extrahieren Sie den Inhalt der heruntergeladenen Archivdatei. Extrahieren Sie den Inhalt beispielsweise in /opt/consul/.
  3. Erstellen Sie auf Ihrem Verwaltungscomputer eine neue Zertifizierungsstelle. Führen Sie dazu den folgenden Befehl aus:
    /opt/consul/consul tls ca create

    Consul erstellt die folgenden Dateien, die ein Zertifikat/Schlüssel-Paar bilden:

    • consul-agent-ca.pem (Zertifikat)
    • consul-agent-ca-key.pem (Schlüssel)

    Standardmäßig sind Zertifikat- und Schlüsseldateien X509v3-codiert.

    Später kopieren Sie diese Dateien auf alle Knoten im Cluster. Derzeit müssen Sie jedoch nur entscheiden, wo auf den Knoten diese Dateien abgelegt werden sollen. Sie sollten sich auf jedem Knoten an derselben Position befinden. Beispiel: /opt/apigee/.

  4. Legen Sie in der Konfigurationsdatei den Wert von PATH_TO_CA_CERT auf den Speicherort fest, an den Sie die Datei consul-agent-ca.pem auf dem Knoten kopieren möchten. Zum Beispiel:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. Legen Sie den Wert von PATH_TO_CA_KEY auf den Speicherort fest, in den die Datei consul-agent-ca-key.pem auf dem Knoten kopiert werden soll. Zum Beispiel:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. Erstellen Sie einen Verschlüsselungsschlüssel für Consul. Führen Sie dazu den folgenden Befehl aus:
    /opt/consul/consul keygen

    Consul gibt eine zufällige Zeichenfolge aus, die in etwa so aussieht:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Kopieren Sie diesen generierten String und legen Sie ihn als Wert des Attributs ENCRYPT_DATA in Ihrer Konfigurationsdatei fest. Beispiel:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. Speichern Sie die Konfigurationsdatei.

Das folgende Beispiel zeigt die mTLS-bezogenen Einstellungen in einer Konfigurationsdatei (mit Beispielwerten):

...
IP1=10.126.0.121
IP2=10.126.0.124
IP3=10.126.0.125
IP4=10.126.0.127
IP5=10.126.0.130
ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5"
LDAP_MTLS_HOSTS="$IP3"
ZK_MTLS_HOSTS="$IP3 $IP4 $IP5"
CASS_MTLS_HOSTS="$IP3 $IP4 $IP5"
PG_MTLS_HOSTS="$IP2 $IP1"
RT_MTLS_HOSTS="$IP4 $IP5"
MS_MTLS_HOSTS="$IP3"
MP_MTLS_HOSTS="$IP4 $IP5"
QP_MTLS_HOSTS="$IP2 $IP1"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
...

Schritt 3: Konfigurationsdatei und Anmeldedaten verteilen

Kopieren Sie die folgenden Dateien mit einem Tool wie scp auf alle Knoten:

  • Konfigurationsdatei: Kopieren Sie die aktualisierte Version dieser Datei und ersetzen Sie die vorhandene Version auf allen Knoten (nicht nur auf den Knoten, auf denen ZooKeeper ausgeführt wird).
  • consul-agent-ca.pem: Kopiert an den Speicherort, den Sie in der Konfigurationsdatei als Wert für PATH_TO_CA_CERT angegeben haben.
  • consul-agent-ca-key.pem: Kopieren Sie die Datei an den Speicherort, den Sie in der Konfigurationsdatei als Wert für PATH_TO_CA_KEY angegeben haben.

Achten Sie darauf, dass die Speicherorte, in die Sie das Zertifikat und die Schlüsseldateien kopieren, mit den Werten übereinstimmen, die Sie in der Konfigurationsdatei in Schritt 2: Consul installieren und Anmeldedaten generieren festgelegt haben.

Schritt 4: Apigee-mtls initialisieren

Nachdem Sie apigee-mtls auf jedem Knoten installiert, die Konfigurationsdatei aktualisiert und sie sowie die Anmeldedaten auf alle Knoten im Cluster kopiert haben, können Sie die apigee-mtls-Komponente auf jedem Knoten initialisieren.

So initialisieren Sie Apigee-mtls:

  1. Melden Sie sich als Root-Nutzer bei einem Knoten im Cluster an. Sie können diese Schritte auf den Knoten in einer beliebigen Reihenfolge ausführen.
  2. Legen Sie den Nutzer apigee:apigee wie im folgenden Beispiel zum Inhaber der aktualisierten Konfigurationsdatei fest:
    chown apigee:apigee config_file
  3. Konfigurieren Sie die Komponente apigee-mtls, indem Sie den folgenden Befehl ausführen:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. Optional: Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Einrichtung erfolgreich war:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. Starten Sie Apigee mTLS, indem Sie den folgenden Befehl ausführen:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    Nach der Installation von Apigee mTLS müssen Sie diese Komponente vor anderen Komponenten auf dem Knoten starten.

  6. (Nur Cassandra-Knoten) Cassandra benötigt zusätzliche Argumente, um im Sicherheits-Mesh zu funktionieren. Daher müssen Sie die folgenden Befehle auf jedem Cassandra-Knoten ausführen:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. (Nur Postgres-Knoten) Postgres benötigt zusätzliche Argumente, um im Sicherheits-Mesh zu funktionieren. Daher müssen Sie auf den Postgres-Knoten Folgendes tun:

    (Nur primär)

    1. Führen Sie die folgenden Befehle auf dem primären Postgres-Knoten aus:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    (Nur Stand-by)

    1. Sichern Sie Ihre vorhandenen Postgres-Daten. Zum Installieren von Apigee mTLS müssen Sie die primären/Stand-by-Knoten neu initialisieren, da es zu Datenverlusten kommt. Weitere Informationen finden Sie unter Primäre/Standby-Replikation für Postgres einrichten.
    2. Alle Postgres-Daten löschen:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. Konfigurieren Sie Postgres und starten Sie Postgres neu, wie im folgenden Beispiel gezeigt:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    Wenn Sie die Installation in einer Topologie mit mehreren Rechenzentren vornehmen, verwenden Sie einen absoluten Pfad für die Konfigurationsdatei.

  8. Starten Sie die verbleibenden Apigee-Komponenten auf dem Knoten in der Startreihenfolge, wie im folgenden Beispiel gezeigt:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. Wiederholen Sie diesen Vorgang für jeden Knoten im Cluster.
  10. (Optional) Überprüfe mithilfe einer oder mehrerer der folgenden Methoden, ob die Initialisierung von apigee-mtls erfolgreich war:
    1. iptables-Konfiguration validieren
    2. Remote-Proxy-Status prüfen
    3. Quorumstatus prüfen

    Jede dieser Methoden wird unter Konfiguration prüfen beschrieben.

Vorhandene Apigee-mtls-Konfiguration ändern

Wenn Sie eine vorhandene apigee-mtls-Konfiguration anpassen möchten, müssen Sie apigee-mtls deinstallieren und dann neu installieren. Sie müssen außerdem darauf achten, dass Sie Ihre Anpassung auf alle Knoten anwenden.

Um diesen Punkt noch einmal zu betonen, wenn Sie eine vorhandene Apigee mTLS-Konfiguration ändern:

  • Wenn Sie eine Konfigurationsdatei ändern, müssen Sie zuerst apigee-mtls deinstallieren und setup oder configure noch einmal ausführen:
    # DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
    
    # BEFORE YOU DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
    OR
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
  • Sie müssen setup oder configure auf allen Knoten im Cluster deinstallieren und noch einmal ausführen, nicht nur auf einem einzelnen Knoten.