Nachdem Sie Apigee mTLS auf allen Knoten in Ihrem Cluster installiert haben, müssen Sie die Komponente apigee-mtls
konfigurieren und initialisieren. Dazu generieren Sie ein Zertifikat/Schlüsselpaar und aktualisieren 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
.
Konfigurieren Sie apigee-mtls (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 bezieht sich auf 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.
Der allgemeine Ablauf zum Konfigurieren von apigee-mtls
sieht so aus:
- Konfigurationsdatei aktualisieren: Aktualisieren Sie die Konfigurationsdatei auf Ihrem Verwaltungscomputer, sodass sie die
apigee-mtls
-Einstellungen enthält. - Consul installieren und Anmeldedaten generieren:Installieren Sie Consul und generieren Sie damit (optional) TLS-Anmeldedaten (nur einmal).
Bearbeiten Sie außerdem Ihre Apigee mTLS-Konfigurationsdatei so:
- Anmeldedaten hinzufügen
- Topologie des Clusters definieren
Sie können Ihre vorhandenen Anmeldedaten verwenden oder mit Consul generieren.
- Anmeldedaten und Konfigurationsdatei verteilen:Verteilen Sie dasselbe generierte Zertifikat/Schlüsselpaar und dieselbe aktualisierte Konfigurationsdatei auf alle Knoten im Cluster.
- 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 in alle Knoten im Cluster, bevor Sie die apigee-mtls
-Komponente auf diesen Knoten initialisieren.
So aktualisieren Sie die Konfigurationsdatei:
- Öffnen Sie die Konfigurationsdatei auf Ihrem Verwaltungscomputer, um sie zu bearbeiten.
- 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"
Legen Sie den Wert der einzelnen Attribute entsprechend Ihrer Konfiguration fest.
In der folgenden Tabelle werden diese Konfigurationsattribute beschrieben:
Property Beschreibung ALL_IP
Eine durch Leerzeichen getrennte Liste der IP-Adressen aller privaten Hosts im Cluster. Die Reihenfolge der IP-Adressen spielt keine Rolle, mit der Ausnahme, 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 IP-Adresse des privaten Hosts 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 von IP-Adressen privater Hosts, auf denen Router im Cluster gehostet werden. MTLS_ENCAPSULATE_LDAP
Verschlüsselt LDAP-Datenverkehr zwischen dem Nachrichtenprozessor und dem LDAP-Server. Legen Sie dafür y
fest.MS_MTLS_HOSTS
Eine durch Leerzeichen getrennte Liste von IP-Adressen privater Hosts, 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 für alle 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, für 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).
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.
- Achten Sie darauf, dass
ENABLE_SIDECAR_PROXY
auf „y“ festgelegt ist. - Aktualisieren Sie die IP-Adressen in den hostbezogenen Attributen. Achten Sie darauf, für jeden Knoten die privaten IP-Adressen zu verwenden und nicht die öffentlichen IP-Adressen.
In späteren Schritten legen Sie die Werte der anderen Attribute wie
ENCRYPT_DATA
,PATH_TO_CA_CERT
undPATH_TO_CA_KEY
fest. Sie haben noch keine Werte festgelegt.Beachten Sie beim Bearbeiten der Konfigurationseigenschaften von
apigee-mtls
Folgendes:- Alle Attribute sind Strings. Sie müssen die Werte aller Attribute in einfache oder doppelte Anführungszeichen setzen.
- 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 keine Hostnamen oder öffentlichen IP-Adressen.
- Die Reihenfolge der IP-Adressen in einem Attributwert muss in allen Konfigurationsdateien im Cluster dieselbe Reihenfolge haben.
- 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 mithilfe von 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.
- Klatschnachricht: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 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 zur Authentifizierung der sicheren 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:
- Laden Sie auf Ihrem Verwaltungscomputer die Binärdatei von Consul 1.8.0 von der HashiCorp-Website herunter.
- Extrahieren Sie den Inhalt der heruntergeladenen Archivdatei. Extrahieren Sie den Inhalt beispielsweise in
/opt/consul/
. - 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üsselpaar bilden:
consul-agent-ca.pem
(Zertifikat)consul-agent-ca-key.pem
(Schlüssel)
Zertifikat- und Schlüsseldateien sind standardmäßig X509v3-codiert.
Später kopieren Sie diese Dateien auf alle Knoten im Cluster. Zu diesem Zeitpunkt müssen Sie jedoch nur entscheiden, wo auf den Knoten Sie diese Dateien ablegen werden. Sie sollten sich auf jedem Knoten an derselben Position befinden. Beispiel:
/opt/apigee/
. - Legen Sie in der Konfigurationsdatei den Wert von
PATH_TO_CA_CERT
auf den Speicherort fest, an den Sie dieconsul-agent-ca.pem
-Datei auf dem Knoten kopieren. Zum Beispiel:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- Legen Sie den Wert von
PATH_TO_CA_KEY
auf den Speicherort fest, an den Sie die Dateiconsul-agent-ca-key.pem
auf dem Knoten kopieren. Zum Beispiel:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- Erstellen Sie mit dem folgenden Befehl einen Verschlüsselungsschlüssel für Consul:
/opt/consul/consul keygen
Consul gibt einen zufälligen String aus, der in etwa so aussieht:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Kopieren Sie diesen generierten String und legen Sie ihn in Ihrer Konfigurationsdatei als Wert des Attributs
ENCRYPT_DATA
fest. Beispiel:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X
/IqX3X429/x1cIQ+JsQvY=" - Speichern Sie die Konfigurationsdatei.
Im folgenden Beispiel sehen Sie 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: Kopieren Sie 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 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, Ihre Konfigurationsdatei aktualisiert und sie und die Anmeldedaten in alle Knoten im Cluster kopiert haben, können Sie die apigee-mtls
-Komponente auf jedem Knoten initialisieren.
So initialisieren Sie apigee-mtls:
- Melden Sie sich bei einem Knoten im Cluster als Root-Nutzer an. Sie können diese Schritte auf den Knoten in beliebiger Reihenfolge ausführen.
- Legen Sie den Nutzer
apigee:apigee
wie im folgenden Beispiel als Inhaber der aktualisierten Konfigurationsdatei fest:chown apigee:apigee config_file
- 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
- (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
- Starten Sie Apigee mTLS mit dem folgenden Befehl:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
Nach der Installation von Apigee mTLS müssen Sie diese Komponente vor allen anderen Komponenten auf dem Knoten starten.
- (Nur Cassandra-Knoten) Cassandra benötigt zusätzliche Argumente, um innerhalb des Sicherheitsnetzes zu funktionieren. Daher müssen Sie auf jedem Cassandra-Knoten die folgenden Befehle 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
- (Nur Postgres-Knoten) Postgres erfordert zusätzliche Argumente, um im Sicherheits-Mesh zu funktionieren. Führen Sie deshalb auf den Postgres-Knoten folgende Schritte aus:
(nur Allgemein)
- 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 auf Stand-by)
- Sichern Sie Ihre vorhandenen Postgres-Daten. Zum Installieren von Apigee mTLS müssen Sie die primären/Stand-by-Knoten neu initialisieren, um Datenverluste zu verursachen. Weitere Informationen finden Sie unter Primäre/Stand-by-Replikation für Postgres einrichten.
- Alle Postgres-Daten löschen:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- Konfigurieren Sie Postgres und starten Sie dann 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 für mehrere Rechenzentren durchführen, verwenden Sie für die Konfigurationsdatei einen absoluten Pfad.
- Führen Sie die folgenden Befehle auf dem primären Postgres-Knoten aus:
- 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
- Wiederholen Sie diesen Vorgang für jeden Knoten im Cluster.
- (Optional) Prüfen Sie mit einer oder mehreren der folgenden Methoden, ob die Initialisierung
apigee-mtls
erfolgreich war:- iptables-Konfiguration validieren
- Status des Remote-Proxys überprüfen
- 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. Außerdem müssen Sie die Anpassung auf alle Knoten anwenden.
Um noch einmal darauf hinzuweisen, wenn Sie eine vorhandene Apigee mTLS-Konfiguration ändern:
- Wenn Sie eine Konfigurationsdatei ändern, müssen Sie zuerst
apigee-mtls
deinstallieren undsetup
oderconfigure
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
oderconfigure
auf allen Knoten im Cluster deinstallieren und noch einmal ausführen, nicht nur auf einem einzelnen Knoten.