Po zainstalowaniu Apigee mTLS na wszystkich węzłach w klastrze musisz skonfigurować i zainicjować komponent apigee-mtls. Aby to zrobić, wygeneruj parę certyfikat/klucz i zaktualizuj plik konfiguracji na komputerze administracyjnym. Następnie wdrażasz te same wygenerowane pliki i plik konfiguracji na wszystkich węzłach w klastrze i inicjujesz lokalny komponent apigee-mtls.
Konfigurowanie apigee-mtls (po instalacji początkowej)
W tej sekcji opisano, jak skonfigurować mTLS Apigee bezpośrednio po instalacji początkowej. Informacje o aktualizowaniu istniejącej instalacji Apigee mTLS znajdziesz w artykule o zmienianiu istniejącej konfiguracji apigee-mtls.
Ta sekcja dotyczy instalacji w jednym centrum danych. Informacje o konfigurowaniu Apigee mTLS w konfiguracji z wieloma centrami danych znajdziesz w artykule Konfigurowanie wielu centrów danych dla Apigee mTLS.
Ogólny proces konfigurowania apigee-mtls wygląda tak:
- Zaktualizuj plik konfiguracji: na komputerze administracyjnym zaktualizuj plik konfiguracji, aby uwzględnić ustawienia
apigee-mtls. - Zainstaluj Consul i wygeneruj dane logowania: zainstaluj Consul i (opcjonalnie) użyj go do wygenerowania danych logowania TLS (tylko raz).
Dodatkowo zmodyfikuj plik konfiguracji mTLS Apigee, aby:
- Dodawanie danych logowania
- Definiowanie topologii klastra
Pamiętaj, że możesz użyć dotychczasowych danych logowania lub wygenerować je za pomocą Consul.
- Rozpowszechnij dane logowania i plik konfiguracji: rozpowszechnij tę samą wygenerowaną parę kluczy certyfikatu i zaktualizowany plik konfiguracji we wszystkich węzłach klastra.
- Inicjowanie apigee-mtls: zainicjuj komponent
apigee-mtlsna każdym węźle.
Każdy z tych kroków został opisany w sekcjach poniżej.
Krok 1. Zaktualizuj plik konfiguracyjny
W tej sekcji opisano, jak zmodyfikować plik konfiguracji, aby uwzględnić właściwości konfiguracji mTLS. Więcej ogólnych informacji o pliku konfiguracji znajdziesz w artykule Tworzenie pliku konfiguracji.
Po zaktualizowaniu pliku konfiguracji o właściwości związane z mTLS skopiuj go do wszystkich węzłów w klastrze, zanim zainicjujesz na nich komponent apigee-mtls.
Aby zaktualizować plik konfiguracji:
- Na komputerze administracyjnym otwórz plik konfiguracji do edycji.
- Skopiuj ten zestaw właściwości konfiguracji mTLS i wklej je do pliku konfiguracji:
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"
Ustaw wartość każdej właściwości zgodnie z konfiguracją.
W tabeli poniżej opisano te właściwości konfiguracji:
Właściwość Opis ALL_IPRozdzielona spacjami lista prywatnych adresów IP hostów wszystkich węzłów w klastrze. Kolejność adresów IP nie ma znaczenia, ale musi być taka sama we wszystkich plikach konfiguracyjnych w klastrze.
Jeśli konfigurujesz Apigee mTLS dla wielu centrów danych, podaj wszystkie adresy IP wszystkich hostów we wszystkich regionach.
LDAP_MTLS_HOSTSPrywatny adres IP hosta węzła OpenLDAP w klastrze. ZK_MTLS_HOSTSRozdzielona spacjami lista prywatnych adresów IP hostów, na których hostowane są węzły ZooKeeper w klastrze.
Pamiętaj, że zgodnie z wymaganiami muszą być co najmniej 3 węzły ZooKeeper.
CASS_MTLS_HOSTSRozdzielona spacjami lista adresów IP hostów prywatnych, na których hostowane są serwery Cassandra w klastrze. PG_MTLS_HOSTSRozdzielona spacjami lista adresów IP hostów prywatnych, na których hostowane są serwery Postgres w klastrze. RT_MTLS_HOSTSRozdzielona spacjami lista prywatnych adresów IP hostów, na których hostowane są routery w klastrze. MTLS_ENCAPSULATE_LDAPSzyfruje ruch LDAP między procesorem komunikatów a serwerem LDAP. Ustaw na y.MS_MTLS_HOSTSRozdzielona spacjami lista prywatnych adresów IP hostów, na których hostowane są węzły serwera zarządzania w klastrze. MP_MTLS_HOSTSRozdzielona spacjami lista prywatnych adresów IP hostów, na których hostowane są procesory komunikatów w klastrze. QP_MTLS_HOSTSRozdzielona spacjami lista prywatnych adresów IP hostów, na których hostowane są serwery Qpid w klastrze. ENABLE_SIDECAR_PROXYOkreśla, czy Cassandra i Postgres powinny być świadome siatki usług. Musisz ustawić tę wartość na „y”.
ENCRYPT_DATAKlucz szyfrowania zakodowany w formacie base64 używany przez Consul. Ten klucz został wygenerowany za pomocą polecenia consul keygenw kroku 2. Zainstaluj Consul i wygeneruj dane logowania.Ta wartość musi być taka sama we wszystkich węzłach w klastrze.
PATH_TO_CA_CERTLokalizacja pliku certyfikatu w węźle. Ten plik został wygenerowany w kroku 2. Zainstaluj Consul i wygeneruj dane logowania. Ta lokalizacja powinna być taka sama we wszystkich węzłach w klastrze, aby pliki konfiguracji były takie same.
Certyfikat musi być zakodowany w formacie X509v3.
PATH_TO_CA_KEYLokalizacja pliku klucza w węźle. Ten plik został wygenerowany w kroku 2. Zainstaluj Consul i wygeneruj dane logowania. Ta lokalizacja powinna być taka sama we wszystkich węzłach w klastrze, aby pliki konfiguracji były takie same.
Plik klucza musi być zakodowany w formacie X509v3.
APIGEE_MTLS_NUM_DAYS_CERT_VALID_FORLiczba dni, przez które certyfikat jest ważny, gdy generujesz certyfikat niestandardowy.
Wartością domyślną jest 365. Maksymalna wartość to 7865 dni (5 lat).
Oprócz właściwości wymienionych powyżej Apigee mTLS używa kilku dodatkowych właściwości, gdy instalujesz go w konfiguracji z wieloma centrami danych. Więcej informacji znajdziesz w artykule o konfigurowaniu wielu centrów danych.
- Upewnij się, że parametr
ENABLE_SIDECAR_PROXYma wartość „y”. - Zaktualizuj adresy IP we właściwościach związanych z hostem. Pamiętaj, aby podczas odwoływania się do poszczególnych węzłów używać prywatnych adresów IP, a nie publicznych.
W kolejnych krokach ustawisz wartości innych właściwości, takich jak
ENCRYPT_DATA,PATH_TO_CA_CERTiPATH_TO_CA_KEY. Nie ustawiasz jeszcze ich wartości.Podczas edytowania właściwości konfiguracji
apigee-mtlspamiętaj o tych kwestiach:- Wszystkie właściwości są ciągami znaków. Wartości wszystkich właściwości musisz ująć w pojedynczy lub podwójny cudzysłów.
- Jeśli wartość związana z hostem ma więcej niż 1 prywatny adres IP, oddziel poszczególne adresy IP spacją.
- W przypadku wszystkich właściwości związanych z hostem w pliku konfiguracji używaj prywatnych adresów IP, a nie nazw hostów ani publicznych adresów IP.
- Kolejność adresów IP w wartości właściwości musi być taka sama we wszystkich plikach konfiguracji w klastrze.
- Zapisz zmiany w pliku konfiguracji.
Krok 2. Zainstaluj Consul i wygeneruj dane logowania
W tej sekcji opisano, jak zainstalować Consul i wygenerować dane logowania używane przez komponenty z włączonym mTLS.
Aby wygenerować dane logowania, musisz wybrać jedną z tych metod:
- (Zalecane) Utwórz własny urząd certyfikacji za pomocą Consul, jak opisano w tej sekcji.
- Używanie danych logowania istniejącego urzędu certyfikacji z mTLS Apigee (zaawansowane)
Informacje o danych logowania
Dane logowania obejmują:
- Certyfikat:certyfikat TLS.
- Klucz: klucz publiczny TLS.
- Gossip message: klucz szyfrowania zakodowany w formacie Base64.
Każdy z tych plików generujesz tylko raz. Następnie skopiuj pliki klucza i certyfikatu do wszystkich węzłów w klastrze i dodaj klucz szyfrowania do pliku konfiguracji, który również skopiujesz do wszystkich węzłów.
Więcej informacji o implementacji szyfrowania w Consul znajdziesz w tych artykułach:
Instalowanie Consula i generowanie danych logowania
Aby wygenerować dane uwierzytelniające, których Apigee mTLS używa do uwierzytelniania bezpiecznej komunikacji między węzłami w klastrze chmury prywatnej, użyj lokalnego pliku binarnego Consul . Dlatego przed wygenerowaniem danych logowania musisz zainstalować Consul na komputerze administracyjnym.
Aby zainstalować Consul i wygenerować dane uwierzytelniające mTLS:
- Na komputerze administracyjnym pobierz plik binarny Consul 1.8.0 ze strony HashiCorp.
- Wyodrębnij zawartość pobranego pliku archiwum. Możesz na przykład wyodrębnić zawartość do folderu
/opt/consul/. - Na komputerze administracyjnym utwórz nowy urząd certyfikacji, wykonując to polecenie:
/opt/consul/consul tls ca create
Consul tworzy te pliki, które tworzą parę certyfikat/klucz:
consul-agent-ca.pem(certyfikat)consul-agent-ca-key.pem(klucz)
Domyślnie pliki certyfikatów i kluczy są kodowane w formacie X509v3.
Później skopiujesz te pliki do wszystkich węzłów w klastrze. Na razie musisz tylko zdecydować, gdzie w węzłach umieścisz te pliki. Powinny znajdować się w tej samej lokalizacji na każdym węźle. Na przykład:
/opt/apigee/. - W pliku konfiguracji ustaw wartość
PATH_TO_CA_CERTna lokalizację, do której skopiujesz plikconsul-agent-ca.pemw węźle. Na przykład:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- Ustaw wartość
PATH_TO_CA_KEYna lokalizację, do której skopiujesz plikconsul-agent-ca-key.pemw węźle. Na przykład:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- Utwórz klucz szyfrowania dla Consul, wykonując to polecenie:
/opt/consul/consul keygen
Consul wyświetli losowy ciąg znaków, który wygląda podobnie do tego:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Skopiuj wygenerowany ciąg znaków i ustaw go jako wartość właściwości
ENCRYPT_DATAw pliku konfiguracji. Na przykład:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" - Zapisz plik konfiguracji.
Poniższy przykład pokazuje ustawienia związane z mTLS w pliku konfiguracji (z przykładowymi wartościami):
... 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" ...
Krok 3. Rozpowszechnij plik konfiguracji i dane logowania
Skopiuj te pliki do wszystkich węzłów, używając narzędzia takiego jak scp:
- Plik konfiguracji: skopiuj zaktualizowaną wersję tego pliku i zastąp nią istniejącą wersję we wszystkich węzłach (nie tylko w węzłach, w których działa ZooKeeper).
- consul-agent-ca.pem: skopiuj do lokalizacji określonej jako wartość
PATH_TO_CA_CERTw pliku konfiguracji. - consul-agent-ca-key.pem: skopiuj do lokalizacji określonej jako wartość
PATH_TO_CA_KEYw pliku konfiguracji.
Upewnij się, że lokalizacje, do których kopiujesz pliki certyfikatu i klucza, odpowiadają wartościom ustawionym w pliku konfiguracji w kroku 2: Zainstaluj Consul i wygeneruj dane logowania.
Krok 4. Zainicjuj apigee-mtls
Po zainstalowaniu apigee-mtls na każdym węźle, zaktualizowaniu pliku konfiguracji i skopiowaniu go oraz danych logowania do wszystkich węzłów w klastrze możesz zainicjować komponent apigee-mtls na każdym węźle.
Aby zainicjować apigee-mtls:
- Zaloguj się w węźle w klastrze jako użytkownik root. Możesz wykonać te czynności na węzłach w dowolnej kolejności.
- Ustaw użytkownika
apigee:apigeejako właściciela zaktualizowanego pliku konfiguracji, jak pokazano w tym przykładzie:chown apigee:apigee config_file
- Skonfiguruj komponent
apigee-mtls, wykonując to polecenie:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
- (Opcjonalnie) Aby sprawdzić, czy konfiguracja przebiegła pomyślnie, uruchom to polecenie:
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
- Uruchom Apigee mTLS, wykonując to polecenie:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
Po zainstalowaniu Apigee mTLS musisz uruchomić ten komponent przed innymi komponentami w węźle.
- (Tylko węzły Cassandra) Cassandra wymaga dodatkowych argumentów do działania w siatce zabezpieczeń. Z tego powodu musisz wykonać te polecenia na każdym węźle Cassandra:
/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 - (Tylko węzły Postgres) Postgres wymaga dodatkowych argumentów do działania w siatce zabezpieczeń. Z tego powodu na węzłach Postgres musisz wykonać te czynności:
(tylko podstawowy)
- Uruchom te polecenia w węźle głównym Postgres:
/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
(tylko w trybie gotowości)
- Utwórz kopię zapasową dotychczasowych danych Postgres. Aby zainstalować Apigee mTLS, musisz ponownie zainicjować węzły podstawowe i węzły w trybie gotowości, co spowoduje utratę danych. Więcej informacji znajdziesz w artykule o konfigurowaniu replikacji podstawowej/rezerwowej w Postgres.
- Usuń wszystkie dane Postgres:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- Skonfiguruj Postgres, a następnie uruchom go ponownie, jak pokazano w tym przykładzie:
/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
Jeśli instalujesz w topologii z wieloma centrami danych, użyj ścieżki bezwzględnej do pliku konfiguracji.
- Uruchom te polecenia w węźle głównym Postgres:
- Uruchom pozostałe komponenty Apigee na węźle w kolejności uruchamiania, jak w tym przykładzie:
/opt/apigee/apigee-service/bin/apigee-service component_name start
- Powtórz ten proces dla każdego węzła w klastrze.
- (Opcjonalnie) Sprawdź, czy
apigee-mtlsinicjalizacja się powiodła, korzystając z co najmniej jednej z tych metod:- Sprawdzanie konfiguracji iptables
- Sprawdzanie stanu zdalnego serwera proxy
- Sprawdzanie stanu kworum
Każda z tych metod jest opisana w sekcji Weryfikacja konfiguracji.
Zmienianie istniejącej konfiguracji apigee-mtls
Aby dostosować istniejącą konfigurację apigee-mtls, musisz odinstalować i ponownie zainstalować apigee-mtls. Musisz też zastosować dostosowanie we wszystkich węzłach.
Przypominamy, że podczas zmiany istniejącej konfiguracji mTLS Apigee:
- Jeśli zmienisz plik konfiguracji, musisz najpierw odinstalować
apigee-mtlsi ponownie uruchomićsetuplubconfigure:# 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 fileOR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure - Musisz odinstalować i ponownie uruchomić
setuplubconfigurena wszystkich węzłach w klastrze, a nie tylko na jednym węźle.