Edge for Private Cloud w wersji 4.19.01
Po zainstalowaniu komponentu apigee-mtls
w każdym węźle klastra musisz go skonfigurować i zainicjować. Aby to zrobić, wygeneruj parę certyfikatu i klucza oraz zaktualizuj plik konfiguracji na komputerze administracyjnym. Następnie wdrożysz te same wygenerowane pliki na wszystkich węzłach w klastrze i zainicjujesz lokalny komponent apigee-mtls
.
Skonfiguruj apigee-mtls (po wstępnej instalacji)
W tej sekcji opisano, jak skonfigurować protokół Apigee mTLS dla pojedynczego centrum danych natychmiast po pierwszej instalacji. Informacje o aktualizowaniu istniejącej instalacji Apigee mTLS znajdziesz w sekcji Zmienianie istniejącej konfiguracji apigee-mtls. Informacje na temat konfigurowania wielu centrów danych znajdziesz w artykule Konfigurowanie wielu centrów danych na potrzeby Apigee mTLS.
Oto ogólna procedura konfigurowania usługi apigee-mtls
:
- Zaktualizuj plik konfiguracji: na komputerze administracyjnym zaktualizuj plik konfiguracji, aby zawierał ustawienia
apigee-mtls
. - Zainstaluj Consul i wygeneruj dane logowania: zainstaluj aplikację Consul i użyj jej do wygenerowania danych logowania TLS (tylko raz).
Dodatkowo edytuj plik konfiguracji Apigee mTLS, aby:
- Dodaj dane logowania
- Określ topologię klastra
Możesz użyć istniejących danych logowania lub wygenerować je w Consul.
- Przekaż plik konfiguracji i dane logowania: 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.
Opisujemy je w kolejnych sekcjach.
Krok 1. Zaktualizuj plik konfiguracji
W tej sekcji opisaliśmy, jak zmodyfikować plik konfiguracji, aby zawierał właściwości konfiguracji mTLS. Więcej ogólnych informacji o pliku konfiguracji znajdziesz w artykule o tworzeniu pliku konfiguracji.
Po zaktualizowaniu pliku konfiguracji o właściwości związane z mTLS, a następnie skopiuj go do wszystkich węzłów w klastrze przed zainicjowaniem w nich komponentu apigee-mtls
.
Polecenia odwołujące się do pliku konfiguracji używają parametru „config_file”, aby wskazać, że jego lokalizacja jest zmienna w zależności od tego, gdzie przechowujesz plik w każdym węźle.
Aby zaktualizować plik konfiguracji:
- Na komputerze administracyjnym otwórz plik konfiguracji.
- 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 właściwości zgodnie ze swoją konfiguracją.
Tabela poniżej zawiera opis tych właściwości konfiguracji:
Właściwość Opis ALL_IP
Lista rozdzielonych spacjami adresów IP prywatnych hostów 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 mTLS Apigee 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
Lista rozdzielonych spacjami adresów IP prywatnych hostów, na których węzły ZooKeeper są hostowane w klastrze.
Pamiętaj, że zgodnie z wymaganiami muszą być 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 serwery Postgres są hostowane w klastrze. RT_MTLS_HOSTS
Lista rozdzielonych spacjami adresów IP prywatnych hostów, na 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 serwery Qpid są hostowane 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 standardzie 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 jest 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 Apigee mTLS instaluje je w konfiguracji z wieloma centrami danych przy użyciu kilku dodatkowych właściwości. Więcej informacji znajdziesz w artykule o konfigurowaniu wielu centrów danych.
- Upewnij się, że właściwość
ENABLE_SIDECAR_PROXY
ma wartość „y”. - Zaktualizuj adresy IP we właściwościach związanych z hostem. Pamiętaj, aby przy odwoływaniu się do każdego węzła używać prywatnych adresów IP, a nie publicznych adresów IP.
W kolejnych 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 kwestiach:- Wszystkie właściwości są ciągami tekstowymi – wartości wszystkich właściwości musisz umieszczać w cudzysłowach pojedynczych lub podwójnych.
- 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 być taka sama we wszystkich plikach konfiguracji w klastrze.
- Zapisz zmiany w pliku konfiguracji.
Krok 2. Zainstaluj Consul i wygeneruj dane logowania
Ta sekcja zawiera informacje o instalowaniu Consul i generowaniu danych logowania.
Aby wygenerować dane logowania, musisz wybrać jedną z tych metod:
- Utwórz własny urząd certyfikacji za pomocą Consul w sposób opisany w tej sekcji (zalecane)
- 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:
- Certyfikat: certyfikat TLS hostowany w każdym węźle.
- Klucz: klucz publiczny TLS hostowany w każdym węźle
- Plotki: klucz szyfrowania w formacie base-64.
Generujesz tylko jedną wersję każdego z tych plików tylko raz. Skopiuj pliki klucza i certyfikatów do wszystkich węzłów w klastrze i dodaj do pliku konfiguracji klucz szyfrowania, który też kopiujesz do wszystkich węzłów.
Więcej informacji o implementacji szyfrowania w Consul znajdziesz tutaj:
Instalowanie Consul i generowanie danych logowania
Za pomocą pliku binarnego lokalnego Consul możesz wygenerować dane uwierzytelniające, których Apigee mTLS używa do uwierzytelniania bezpiecznej komunikacji między węzłami w klastrze Private Cloud. W związku z tym, 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.6.2 z witryny 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 będące parami certyfikat/klucz:
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 chcesz skopiować 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
Narzędzie Consul generuje randomizowany ciąg znaków podobny do tego:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Skopiuj 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.
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. Przekaż plik konfiguracji i dane logowania
Skopiuj te pliki do węzłów, na których działa ZooKeeper, np. scp
:
- Plik konfiguracji: skopiuj zaktualizowaną wersję tego pliku i zastąp obecną wersję we wszystkich węzłach (nie tylko w tych węzłach, na których działa ZooKeeper).
- consul-agent-ca.pem: skopiuj do lokalizacji określonej w pliku konfiguracji jako wartość
PATH_TO_CA_CERT
. - consul-agent-ca-key.pem: skopiuj do lokalizacji określonej w pliku konfiguracji jako wartość
PATH_TO_CA_KEY
.
Upewnij się, że lokalizacje, do których kopiujesz pliki certyfikatu i klucza, są zgodne z wartościami określonymi w pliku konfiguracji w kroku 2: Zainstaluj aplikację Consul i wygeneruj dane logowania.
Krok 4. Zainicjuj apigee-mtls
Gdy zaktualizujesz plik konfiguracji, skopiujesz go i dane logowania do wszystkich węzłów w klastrze oraz zainstalujesz apigee-mtls
w każdym węźle, możesz zainicjować komponent apigee-mtls
w każdym węźle.
Aby zainicjować apigee-mtls:
- Zaloguj się do węzła w klastrze jako główny użytkownik. 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) Uruchom to polecenie, aby sprawdzić, czy konfiguracja zakończyła się powodzeniem:
/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 Apigee 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ń. W związku z tym w każdym węźle Cassandra musisz wykonać te polecenia:
/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ń. W związku z tym w węzłach Postgres musisz wykonać te czynności:
(Tylko nadrzędna)
- Wykonaj te polecenia w węźle nadrzędnym 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 główne/gotowe, co spowoduje utratę danych. Więcej informacji znajdziesz w artykule o konfigurowaniu replikacji mastera/gotowości dla Postgres.
- Usuń wszystkie dane Postgres:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- Skonfiguruj Postgres, a następnie ponownie uruchom Postgres, zgodnie z poniższym 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 nadrzędnym Postgres:
- Uruchom pozostałe komponenty Apigee w węźle w kolejności początkowej, jak pokazano w poniższym 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 inicjowanie elementu
apigee-mtls
się udało, korzystając z co najmniej 1 z tych metod:- Zweryfikuj konfigurację iptables
- Zweryfikuj stan zdalnego serwera proxy
- Zweryfikuj stan kworum
Każdą z tych metod opisano w sekcji Weryfikowanie konfiguracji.
Zmień istniejącą konfigurację apigee-mtls
Aby dostosować istniejącą konfigurację apigee-mtls
, musisz odinstalować i ponownie zainstalować apigee-mtls
.
Pamiętaj o tym, gdy zmieniasz istniejącą konfigurację mTLS Apigee:
- Jeśli zmienisz plik konfiguracji, musisz najpierw odinstalować plik
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
na wszystkich węzłach w klastrze, a nie tylko w jednym.