Po zainstalowaniu protokołu mTLS Apigee na wszystkich węzłach w klastrze musisz skonfigurować i zainicjować komponent apigee-mtls
. Aby to zrobić, wygeneruj parę kluczy i certyfikatów oraz zaktualizuj plik konfiguracji na maszynie administracyjnej. Następnie wdrażasz te same wygenerowane pliki i plik konfiguracji na wszystkich węzłach w klastrze i inicjujesz lokalny komponentapigee-mtls
.
Konfigurowanie apige-mtls (po początkowej instalacji)
Z tej sekcji dowiesz się, jak skonfigurować uwierzytelnianie mTLS w Apigee bezpośrednio po pierwszej instalacji. Informacje o aktualizowaniu istniejącej instalacji interfejsu Apigee mTLS znajdziesz w artykule Zmienianie istniejącej konfiguracji apigee-mtls.
Ta sekcja dotyczy instalacji w pojedynczym centrum danych. Informacje o konfigurowaniu mTLS w Apigee w konfiguracji z wieloma centrami danych znajdziesz w artykule Konfigurowanie mTLS w Apigee w wielu centrach danych.
Ogólny proces konfigurowania apigee-mtls
:
- Zaktualizuj plik konfiguracji: na maszynie administracyjnej zaktualizuj plik konfiguracji, aby uwzględnić ustawienia
apigee-mtls
. - Zainstaluj usługę Consul i wygeneruj poświadczenia: zainstaluj usługę Consul i (opcjonalnie) użyj jej do wygenerowania poświadczeń TLS (tylko raz).
Dodatkowo zmodyfikuj plik konfiguracji mTLS w Apigee, aby:
- Dodawanie informacji o danych logowania
- Definiowanie topologii klastra
Pamiętaj, że możesz użyć istniejących danych logowania lub wygenerować je za pomocą Consula.
- Rozpowszechnij poświadczenia i plik konfiguracji: rozpowszechnij ten sam wygenerowany klucz i certyfikat oraz zaktualizowany plik konfiguracji na wszystkich węzłach w klastrze.
- Inicjowanie apige-mtls: zainicjuj komponent
apigee-mtls
na każdym węźle.
Każdy z tych kroków jest opisany w dalszych sekcjach.
Krok 1. Zaktualizuj plik konfiguracji
W tej sekcji opisaliśmy, jak zmodyfikować plik konfiguracji, aby uwzględniał właściwości konfiguracji mTLS. Więcej ogólnych informacji o pliku konfiguracyjnym znajdziesz w artykule Tworzenie pliku konfiguracyjnego.
Po zaktualizowaniu pliku konfiguracji o właściwości związane z mTLS skopiuj go na wszystkie węzły 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" TLS_MIN_VERSION="tls12" TLS_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
Ustaw wartość każdej właściwości zgodnie z konfiguracją.
Właściwości konfiguracji opisane są w tabeli poniżej:
Właściwość Opis ALL_IP
Lista oddzielonych spacjami prywatnych adresów IP hosta wszystkich węzłów w klastrze. Kolejność adresów IP nie ma znaczenia, z tym zastrzeżeniem, że musi być taka sama we wszystkich plikach konfiguracyjnych w klastrze.
Jeśli skonfigurujesz mTLS w Apigee dla wielu centrów danych, podaj listę wszystkich adresów IP wszystkich hostów we wszystkich regionach.
LDAP_MTLS_HOSTS
Prywatny adres IP hosta węzła OpenLDAP w klastrze. ZK_MTLS_HOSTS
Lista oddzielonych spacjami prywatnych adresów IP hosta, na których są hostowane węzły ZooKeeper w klastrze.
Pamiętaj, że zgodnie z wymaganiami musisz mieć co najmniej 3 węzły ZooKeeper.
CASS_MTLS_HOSTS
Lista oddzielonych spacjami prywatnych adresów IP hosta, na których znajdują się serwery Cassandra w klastrze. PG_MTLS_HOSTS
Lista oddzielonych spacjami prywatnych adresów IP hosta, na których znajdują się serwery Postgres w klastrze. RT_MTLS_HOSTS
Lista oddzielonych spacjami prywatnych adresów IP hosta, na których są hostowane routery w klastrze. MTLS_ENCAPSULATE_LDAP
Szyfruje ruch LDAP między procesorem wiadomości a serwerem LDAP. Ustaw na y
.MS_MTLS_HOSTS
Lista oddzielonych spacjami prywatnych adresów IP hosta, na których są hostowane węzły serwera zarządzania w klastrze. MP_MTLS_HOSTS
Lista oddzielonych spacjami prywatnych adresów IP hosta, na których hostowane są przetwarzacze wiadomości w klastrze. QP_MTLS_HOSTS
Lista prywatnych adresów IP hosta oddzielonych spacjami, na których w klastrze są hostowane serwery Qpid. ENABLE_SIDECAR_PROXY
Określa, czy Cassandra i Postgres powinny być świadome istnienia sieci usług. Tę wartość należy ustawić na „y”.
ENCRYPT_DATA
Klucz szyfrujący zakodowany w base64 używany przez Consula. Klucz ten został wygenerowany za pomocą polecenia consul keygen
w sekcji Krok 2. Zainstaluj Consul i wygeneruj dane logowania.Ta wartość musi być taka sama na wszystkich węzłach w klastrze.
PATH_TO_CA_CERT
Lokalizacja pliku certyfikatu w węźle. Ten plik został wygenerowany w kroku 2. Zainstaluj Consul i wygeneruj poświadczenia. Ta lokalizacja powinna być taka sama na 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 na węźle. Ten plik został wygenerowany w kroku 2. Zainstaluj Consul i wygeneruj poświadczenia. Ta lokalizacja powinna być taka sama na wszystkich węzłach w klastrze, aby pliki konfiguracji były takie same.
Plik klucza musi być zakodowany w standardzie X509v3.
APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR
Liczba 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).
TLS_MIN_VERSION
Określa minimalną dozwoloną wersję TLS. Ustaw na tls12
, aby narzucić minimalną wersję TLS 1.2.TLS_CIPHER_SUITES
Rozdzielana przecinkami lista dozwolonych zestawów szyfrów TLS. Na przykład:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Oprócz wymienionych powyżej właściwości Apigee mTLS używa kilku dodatkowych właściwości, gdy zainstalujesz go w konfiguracji z wieloma centrami danych. Więcej informacji znajdziesz w artykule Konfigurowanie wielu centrów danych.
- Upewnij się, że
ENABLE_SIDECAR_PROXY
jest ustawiony na „y”. - Zaktualizuj adresy IP w usługach związanych z hostem. Pamiętaj, aby używać prywatnych adresów IP, a nie publicznych adresów IP, gdy odwołujesz się do poszczególnych węzłów.
W kolejnych krokach skonfigurujesz wartości innych właściwości, takich jak
ENCRYPT_DATA
,PATH_TO_CA_CERT
iPATH_TO_CA_KEY
. Nie masz jeszcze ustawionych ich wartości.Podczas edytowania właściwości konfiguracji
apigee-mtls
pamiętaj o tych kwestiach:- Wszystkie właściwości mają formę ciągu znaków. Wartości wszystkich właściwości musisz ująć w pojedyncze lub podwójne cudzysłowe.
- Jeśli wartość powiązana z hostem ma więcej niż 1 prywatny adres IP, oddziel poszczególne adresy IP spacjami.
- W przypadku wszystkich właściwości hosta w pliku konfiguracyjnym 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 usługę Consul i wygeneruj dane logowania
W tej sekcji opisaliśmy, jak zainstalować Consul i wygenerować poświadczenia używane przez komponenty obsługujące mTLS.
Aby wygenerować dane logowania, wybierz jedną z tych metod:
- (zalecane) Utwórz własny urząd certyfikacji (CA) za pomocą usługi Consul zgodnie z opisem w tej sekcji
- Używanie danych logowania do dotychczasowego urzędu certyfikacji z Apigee mTLS (zaawansowane)
Dane logowania
Uprawnienia obejmują:
- Certyfikat: certyfikat TLS.
- Klucz: klucz publiczny TLS.
- Wiadomość szeptem: klucz szyfrowania zakodowany w formacie Base64.
Każdy z tych plików generujesz tylko raz. Następnie skopiuj pliki klucza i certyfikatu na wszystkie węzły w klastrze oraz dodaj klucz szyfrowania do pliku konfiguracji, który również skopiujesz na wszystkie węzły.
Więcej informacji o implementacji szyfrowania w Consul znajdziesz w tych dokumentach:
Instalowanie usługi Consul i generowanie danych logowania
Aby wygenerować poświadczenia, których Apigee mTLS używa do uwierzytelniania bezpiecznej komunikacji między węzłami w klastrze chmury prywatnej, użyj lokalnego binarnego pakietu Consul . Dlatego przed wygenerowaniem danych logowania musisz zainstalować Consul na maszynie administracyjnej.
Aby zainstalować Consul i wygenerować poświadczenia mTLS:
- Na maszynie administracyjnej pobierz binarną wersję Consul 1.8.0 z witryny HashiCorp.
- Wyodrębnij zawartość pobranego pliku archiwum. Na przykład wyodrębnij zawartość do pliku
/opt/consul/
. . - Na maszynie administracyjnej utwórz nowy urząd certyfikacji (CA) za pomocą tego polecenia:
/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 standardzie X509v3.
Później skopiujesz te pliki na wszystkie węzły w klastrze. Na razie musisz tylko zdecydować, gdzie w węzłach umieścisz te pliki. Powinny znajdować się w tym samym miejscu 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
na węźle. Na przykład:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- Ustaw wartość
PATH_TO_CA_KEY
na lokalizację, do której skopiujesz plikconsul-agent-ca-key.pem
w węźle. Na przykład:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- Utwórz klucz szyfrowania dla usługi Consul, wykonując to polecenie:
/opt/consul/consul keygen
Consul zwraca losowy ciąg znaków podobny do tego:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Skopiuj wygenerowany ciąg znaków i ustaw go jako wartość właściwości
ENCRYPT_DATA
w pliku konfiguracyjnym. Na przykład:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X
/IqX3X429/x1cIQ+JsQvY=" - Zapisz plik konfiguracji.
Ten 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 poświadczenia tożsamości
Skopiuj te pliki na wszystkie węzły za pomocą narzędzia takiego jak scp
:
- Plik konfiguracji: skopiuj zaktualizowaną wersję tego pliku i zastąp nią istniejącą wersję na wszystkich węzłach (nie tylko na węzłach z ZooKeeper).
- consul-agent-ca.pem: skopiuj do lokalizacji określonej jako wartość parametru
PATH_TO_CA_CERT
w pliku konfiguracyjnym. - consul-agent-ca-key.pem: skopiuj do lokalizacji określonej jako wartość parametru
PATH_TO_CA_KEY
w pliku konfiguracyjnym.
Upewnij się, że lokalizacje, do których kopiujesz pliki certyfikatu i klucza, są zgodne z wartościami ustawionymi w pliku konfiguracji w kroku 2: Zainstaluj Consul i wygeneruj dane logowania.
Krok 4. Inicjalizacja apige-mtls
Po zainstalowaniu usługi apigee-mtls
na każdym węźle, zaktualizowaniu pliku konfiguracji oraz skopiowaniu go wraz z danymi logowania na wszystkie węzły w klastrze możesz zainicjować komponent apigee-mtls
na każdym węźle.
Aby zainicjować apige-mtls:
- Zaloguj się na węzeł w klastrze jako użytkownik root. Te czynności możesz wykonywać w dowolnej kolejności.
- Ustaw użytkownika
apigee:apigee
jako 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 została zakończona pomyślnie, uruchom to polecenie:
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
- Uruchom mTLS w Apigee, wykonując to polecenie:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
Po zainstalowaniu interfejsu Apigee mTLS musisz uruchomić ten komponent przed innymi komponentami w węźle.
- (Dotyczy tylko węzłów Cassandra) Aby działać w ramach sieci bezpieczeństwa, Cassandra wymaga dodatkowych argumentów. 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) Aby działać w ramach sieci bezpieczeństwa, Postgres wymaga dodatkowych argumentów. W związku z tym musisz wykonać te czynności na węzłach Postgres:
(tylko podstawowe)
- Wykonaj te polecenia na węźle głównym Postgresa:
/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 stanie gotowości)
- Utwórz kopię zapasową dotychczasowych danych Postgres. Aby zainstalować mTLS w Apigee, musisz ponownie zainicjować węzły główne/zapasowe, co spowoduje utratę danych. Więcej informacji znajdziesz w artykule Konfigurowanie replikacji głównej/awaryjnej w przypadku PostgreSQL.
- Usuwanie wszystkich danych z serwera PostgreSQL:
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 bezwzględnej ścieżki do pliku konfiguracji.
- Wykonaj te polecenia na węźle głównym Postgresa:
- Uruchom pozostałe komponenty Apigee na węźle w kolejności uruchamiania, jak pokazano w tym przykładzie:
/opt/apigee/apigee-service/bin/apigee-service component_name start
- Powtórz ten proces w przypadku każdego węzła w klastrze.
- (Opcjonalnie) Sprawdź, czy inicjalizacja
apigee-mtls
została wykonana prawidłowo, korzystając z jednej z tych metod:- Sprawdzanie konfiguracji iptables
- Sprawdzanie stanu serwera proxy zdalnego
- Sprawdzanie stanu kworum
Każdą z tych metod opisujemy w artykule Weryfikacja konfiguracji.
Zmiana istniejącej konfiguracji apigee-mtls
Aby dostosować istniejącą konfigurację apigee-mtls
, musisz odinstalować i ponownie zainstalować apigee-mtls
. Musisz też zastosować te zmiany we wszystkich węzłach.
Przypominamy, że podczas zmiany istniejącej konfiguracji mTLS w usłudze 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
na wszystkich węzłach w klastrze, a nie tylko na jednym.