Po zainstalowaniu Apigee mTLS we 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 wdrożysz te same wygenerowane pliki i plik konfiguracji na wszystkich węzłach w klastrze oraz zainicjujesz lokalny komponent apigee-mtls
.
Skonfiguruj apigee-mtls (po pierwszej instalacji)
W tej sekcji opisaliśmy, jak skonfigurować Apigee mTLS bezpośrednio po instalacji początkowej. Informacje o aktualizowaniu istniejącej instalacji Apigee mTLS znajdziesz w artykule Zmienianie 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ólna procedura konfigurowania usługi apigee-mtls
wygląda tak:
- Zaktualizuj plik konfiguracji: na komputerze administracyjnym zaktualizuj plik konfiguracji, aby zawierał ustawienia
apigee-mtls
. - Zainstaluj aplikację Consul i wygeneruj dane logowania: zainstaluj aplikację Consul i (opcjonalnie) użyj jej do wygenerowania danych logowania TLS (tylko raz).
Dodatkowo zmodyfikuj plik konfiguracji Apigee mTLS, aby:
- Dodaj dane logowania
- Określ topologię klastra
Możesz użyć swoich dotychczasowych danych logowania lub wygenerować je w Consul.
- Prześlij dane logowania i plik konfiguracji: roześlij tę samą wygenerowaną parę certyfikat/klucz i zaktualizowany plik konfiguracji do wszystkich węzłów w klastrze.
- Zainicjuj apigee-mtls: zainicjuj komponent
apigee-mtls
w każdym węźle.
Wszystkie te czynności opisaliśmy w kolejnych sekcjach.
Krok 1. Zaktualizuj plik konfiguracyjny
W tej sekcji opisano, jak zmodyfikować plik konfiguracji, aby zawierał właściwości konfiguracji mTLS. Ogólne informacje o pliku konfiguracji znajdziesz w artykule o tworzeniu pliku konfiguracji.
Gdy zaktualizujesz plik konfiguracji przy użyciu właściwości związanych z mTLS, skopiuj go do wszystkich węzłów w klastrze przed zainicjowaniem w tych węzłach komponentu 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 w 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 usługi tak, aby odpowiadała Twojej konfiguracji.
W tabeli poniżej opisujemy te właściwości konfiguracji:
Właściwość Opis ALL_IP
Rozdzielona spacjami lista adresów IP prywatnego hosta wszystkich węzłów w klastrze. Kolejność adresów IP nie ma znaczenia, z wyjątkiem tego, że musi być taka sama we wszystkich plikach konfiguracji w klastrze.
Jeśli skonfigurujesz Apigee mTLS dla wielu centrów danych, podaj wszystkie adresy IP dla wszystkich hostów we wszystkich regionach.
LDAP_MTLS_HOSTS
Adres IP prywatnego hosta węzła OpenLDAP w klastrze. ZK_MTLS_HOSTS
Rozdzielona spacjami lista adresów IP prywatnego hosta, na których hostowane są w klastrze węzły ZooKeeper.
Pamiętaj, że zgodnie z wymaganiami muszą istnieć co najmniej 3 węzły ZooKeeper.
CASS_MTLS_HOSTS
Lista rozdzielonych spacjami adresów IP prywatnych hostów, na których hostowane są serwery Cassandra w klastrze. PG_MTLS_HOSTS
Lista rozdzielonych spacjami adresów IP prywatnych hostów, na których hostowane są serwery Postgres w klastrze. RT_MTLS_HOSTS
Lista rozdzielonych spacjami adresów IP prywatnych hostów, w których routery są hostowane w klastrze. MTLS_ENCAPSULATE_LDAP
Szyfruje ruch LDAP między procesorem wiadomości a serwerem LDAP. Ustaw jako y
.MS_MTLS_HOSTS
Lista rozdzielonych spacjami adresów IP prywatnych hostów, na których węzły serwera zarządzania są hostowane w klastrze. MP_MTLS_HOSTS
Lista rozdzielonych spacjami adresów IP prywatnych hostów, na których hostowane są procesory wiadomości w klastrze. QP_MTLS_HOSTS
Lista rozdzielonych spacjami adresów IP prywatnych hostów, na których hostowane są serwery Qpid w klastrze. ENABLE_SIDECAR_PROXY
Określa, czy Cassandra i Postgres powinny wiedzieć o siatce usług. Musisz ustawić dla tej wartości wartość „y”.
ENCRYPT_DATA
Klucz szyfrowania zakodowany w base64 używany przez Consul. Ten klucz został wygenerowany za pomocą polecenia consul keygen
w kroku 2. Zainstaluj aplikację Consul i wygeneruj dane logowania.Ta wartość musi być taka sama we wszystkich węzłach w klastrze.
PATH_TO_CA_CERT
Lokalizacja pliku certyfikatu w węźle. Ten plik został wygenerowany w kroku 2. Zainstaluj aplikację 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_KEY
Lokalizacja pliku klucza w węźle. Ten plik został wygenerowany w kroku 2. Zainstaluj aplikację 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_FOR
Przez ile dni certyfikat ma być ważny podczas generowania certyfikatu niestandardowego.
Wartością domyślną jest 365. Maksymalna wartość to 7865 dni (5 lat).
Oprócz wymienionych powyżej właściwości usługa Apigee mTLS instaluje ją w konfiguracji wielu centrów danych, a także używa kilku dodatkowych właściwości. Więcej informacji znajdziesz w artykule o konfigurowaniu wielu centrów danych.
- Upewnij się, że atrybut
ENABLE_SIDECAR_PROXY
ma wartość „y”. - Zaktualizuj adresy IP we właściwościach związanych z hostem. Gdy odwołujesz się do każdego węzła, używaj prywatnych adresów IP, a nie publicznych adresów IP.
W późniejszych krokach ustawisz wartości innych właściwości, np.
ENCRYPT_DATA
,PATH_TO_CA_CERT
iPATH_TO_CA_KEY
. Nie ustawiono jeszcze ich wartości.Podczas edytowania właściwości konfiguracji
apigee-mtls
pamiętaj o tych uwagach:- Wszystkie właściwości są ciągami tekstowymi – wartości wszystkich właściwości musisz ująć w cudzysłowy pojedyncze lub podwójne.
- Jeśli wartość związana z hostem ma więcej niż 1 prywatny adres IP, oddziel je spacją.
- Do 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 mieć taką samą kolejność we wszystkich plikach konfiguracji w klastrze.
- Zapisz zmiany w pliku konfiguracji.
Krok 2. Zainstaluj aplikację Consul i wygeneruj dane logowania
W tej sekcji opisano, jak zainstalować Consul i wygenerować dane logowania używane przez komponenty obsługujące mTLS.
Aby wygenerować dane logowania, musisz wybrać jedną z tych metod:
- (Zalecane) Utwórz własny urząd certyfikacji za pomocą usługi Consul zgodnie z opisem w tej sekcji
- Użyj danych logowania istniejącego urzędu certyfikacji z Apigee mTLS (zaawansowane)
Informacje o danych logowania
Dane logowania składają się z tych elementów:
- Certificate (Certyfikat): certyfikat TLS.
- Klucz: klucz publiczny TLS
- Plotki: klucz szyfrowania zakodowany w standardzie base-64
Generujesz tylko jedną wersję każdego z tych plików tylko raz. Następnie skopiuj plik klucza i certyfikatu do wszystkich węzłów w klastrze i dodaj klucz szyfrowania do pliku konfiguracji, który również kopiujesz do wszystkich węzłów.
Więcej informacji o implementacji szyfrowania w Consul znajdziesz tutaj:
Zainstaluj aplikację Consul i wygeneruj dane logowania
Aby wygenerować dane logowania używane przez Apigee mTLS do uwierzytelniania bezpiecznej komunikacji między węzłami klastra Private Cloud, użyj lokalnego pliku binarnego Consul . Dlatego, aby móc generować dane logowania, musisz zainstalować Consul na komputerze administracyjnym.
Aby zainstalować Consul i wygenerować dane logowania mTLS:
- Na komputerze administracyjnym pobierz plik binarny Consul 1.8.0 ze strony HashiCorp.
- Wyodrębnij zawartość pobranego pliku archiwum. Na przykład rozpakuj zawartość do
/opt/consul/
. - Na komputerze administracyjnym utwórz nowy urząd certyfikacji, wykonując to polecenie:
/opt/consul/consul tls ca create
Consul tworzy następujące pliki, które tworzą parę certyfikatu/klucza:
consul-agent-ca.pem
(certyfikat)consul-agent-ca-key.pem
(klucz)
Domyślnie pliki certyfikatu i klucza są zakodowane w formacie X509v3.
Później skopiujesz te pliki do wszystkich węzłów w klastrze. Obecnie musisz jednak tylko zdecydować, gdzie w węzłach chcesz umieścić te pliki. Powinny one znajdować się w tej samej lokalizacji w każdym węźle. Na przykład:
/opt/apigee/
. - W pliku konfiguracji ustaw wartość
PATH_TO_CA_CERT
na lokalizację, do której skopiujesz plikconsul-agent-ca.pem
w węźle. Przykład:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- Ustaw wartość
PATH_TO_CA_KEY
na lokalizację, do której chcesz skopiować plikconsul-agent-ca-key.pem
w węźle. 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
Aplikacja Consul generuje randomizowany ciąg znaków podobny do tego:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Skopiuj ten wygenerowany ciąg znaków i ustaw go jako wartość właściwości
ENCRYPT_DATA
w pliku konfiguracji. Na przykład:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X
/IqX3X429/x1cIQ+JsQvY=" - Zapisz plik konfiguracji.
Oto przykład ustawień związanych 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. Przekaż plik konfiguracji i dane logowania
Skopiuj te pliki do wszystkich węzłów, używając takiego narzędzia jak scp
:
- Plik konfiguracji: skopiuj zaktualizowaną wersję tego pliku i zastąp istniejącą wersję we wszystkich węzłach (nie tylko w tych węzłach, w których działa ZooKeeper).
- consul-agent-ca.pem: skopiuj do lokalizacji podanej w pliku konfiguracji jako wartość
PATH_TO_CA_CERT
. - consul-agent-ca-key.pem: skopiuj do lokalizacji podanej w pliku konfiguracji jako wartość
PATH_TO_CA_KEY
.
Upewnij się, że lokalizacje, do których kopiujesz certyfikat i pliki klucza, są zgodne z wartościami ustawionymi w pliku konfiguracji w kroku 2. Zainstaluj Consul i wygeneruj dane logowania.
Krok 4. Zainicjuj apigee-mtls
Po zainstalowaniu apigee-mtls
w każdym węźle, zaktualizowaniu pliku konfiguracji oraz skopiowaniu go i danych logowania do wszystkich węzłów w klastrze możesz zainicjować komponent apigee-mtls
w każdym węźle.
Aby zainicjować apigee-mtls:
- Zaloguj się do węzła w klastrze jako użytkownik root. Te czynności możesz wykonać na węzłach w dowolnej kolejności.
- Przypisz użytkownikowi
apigee:apigee
rolę 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 się powiodła, 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 mTLS dla Apigee trzeba uruchomić ten komponent przed innymi komponentami w węźle.
- (Tylko węzły Cassandra) Cassandra wymaga dodatkowych argumentów, by działać w siatce zabezpieczeń. W związku z tym musisz wykonać te polecenia w 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, aby działać w siatce zabezpieczeń. W związku z tym w węzłach Postgres musisz wykonać te czynności:
(Tylko podstawowe)
- Wykonaj 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ą istniejących danych Postgres. Aby zainstalować Apigee mTLS, musisz ponownie zainicjować węzły podstawowe/gotowe, co spowoduje utratę danych. Więcej informacji znajdziesz w artykule o konfigurowaniu replikacji podstawowej/czujnej w Postgres.
- Usuń wszystkie dane Postgres:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- Skonfiguruj Postgres, a następnie ponownie uruchom Postgres, zgodnie z tym przykładem:
/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
W przypadku instalacji w topologii wielu centrów danych użyj ścieżki bezwzględnej pliku konfiguracji.
- Wykonaj te polecenia w węźle głównym Postgres:
- Rozpocznij pozostałe komponenty Apigee w węźle w kolejności początkowej, zgodnie z tym przykładem:
/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 inicjowanie elementu
apigee-mtls
powiodło się, korzystając z co najmniej 1 z tych metod:- Zweryfikuj konfigurację iptables
- Sprawdzanie stanu zdalnego serwera proxy
- Sprawdź stan kworum
Opis każdej z tych metod znajdziesz w sekcji Weryfikowanie konfiguracji.
Zmienianie istniejącej konfiguracji apigee-mtls
Aby dostosować istniejącą konfigurację apigee-mtls
, musisz odinstalować i ponownie zainstalować apigee-mtls
. Musisz też zastosować te same dostosowania we wszystkich węzłach.
Aby powtórzyć ten punkt, podczas zmiany istniejącej konfiguracji mTLS Apigee:
- Jeśli zmienisz plik konfiguracji, musisz najpierw odinstalować
apigee-mtls
i ponownie uruchomićsetup
lubconfigure
:# 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
- Musisz odinstalować i ponownie uruchomić
setup
lubconfigure
we wszystkich węzłach w klastrze, a nie tylko w jednym.