Funkcja mTLS w Apigee zwiększa bezpieczeństwo komunikacji między komponentami w klastrze Edge for chmura prywatna. Zapewnia standardowy sposób konfigurowania i instalowania siatki usług. Obsługuje automatyzację zarządzania pakietami i konfiguracji.
Omówienie architektury
Aby zapewnić bezpieczną komunikację między komponentami, Apigee mTLS używa siatki usług, która ustanawia bezpieczne, wzajemnie uwierzytelnione połączenia TLS między komponentami.
Obraz poniżej przedstawia połączenia między komponentami Apigee, które są zabezpieczone przez Apigee mTLS (in red). Porty pokazane na obrazie są przykładowe. Listę zakresów, których może używać każdy komponent, znajdziesz w artykule o używaniu portów.

(Pamiętaj, że porty oznaczone literą „M” służą do zarządzania komponentem i muszą być otwarte na komponencie, aby serwer zarządzania miał do nich dostęp).
Jak widać na powyższym diagramie, Apigee mTLS zwiększa bezpieczeństwo połączeń między większością komponentów w klastrze, w tym:
| Źródło | Miejsce docelowe | |
|---|---|---|
| Serwer zarządzania | Węzły routera, procesora wiadomości, QPid, LDAP, Postgres, Zookeeper i Cassandra | |
| Router | Sprzężenie zwrotne; węzły Qpid, Zookeeper i Cassandra | |
| procesor komunikatów | Sprzężenie zwrotne; węzły Qpid, Zookeeper i Cassandra | |
| ZooKeeper i Cassandra | Inne węzły ZooKeeper i Cassandra | |
| Interfejs Edge | SMTP (tylko w przypadku zewnętrznego dostawcy tożsamości) | |
| Postgres | Inne węzły Postgres, Zookeeper i Cassandra |
Szyfrowanie/odszyfrowywanie wiadomości
Siatka usług Apigee mTLS składa się z serwerów Consul, które działają na każdym węźle ZooKeeper w klastrze, oraz z tych usług Consul na każdym węźle w klastrze:
- Serwer proxy ruchu wychodzącego, który przechwytuje wiadomości wychodzące w węźle hosta. Ta usługa szyfruje wiadomości wychodzące przed wysłaniem ich do miejsca docelowego.
- Serwer proxy ruchu przychodzącego, który przechwytuje wiadomości przychodzące w węźle hosta. Ta usługa odszyfrowuje wiadomości przychodzące przed wysłaniem ich do miejsca docelowego.
Na przykład gdy serwer zarządzania wysyła wiadomość do routera, usługa pośrednicząca ruchu wychodzącego przechwytuje wiadomość wychodzącą, szyfruje ją, a następnie wysyła do routera. Gdy węzeł routera otrzyma wiadomość, usługa pośrednicząca ruchu przychodzącego odszyfrowuje ją, a następnie przekazuje do komponentu routera w celu przetworzenia.
Wszystko to odbywa się w sposób przejrzysty dla komponentów Edge: nie są one świadome procesu szyfrowania i odszyfrowywania przeprowadzanego przez usługi pośredniczące Consul.
Dodatkowo Apigee mTLS używa narzędzia iptables, usługi zapory sieciowej systemu Linux, która zarządza przekierowywaniem ruchu.
Wymagania
Zanim zainstalujesz Apigee mTLS, Twoje środowisko musi spełniać te wymagania:
- Wymagania dotyczące topologii
- Zainstalowane i włączone narzędzia
- Konto użytkownika z odpowiednim poziomem uprawnień
- Maszyna administracyjna (zalecane)
- Wykorzystanie portów
W sekcjach poniżej znajdziesz szczegółowe informacje o poszczególnych wymaganiach.
Wymagania dotyczące topologii
Apigee mTLS wymaga, aby topologia środowiska obejmowała co najmniej 3 węzły ZooKeeper. W związku z tym Apigee mTLS można zainstalować tylko w topologiach, które używają 5, 9, 12 (wiele centrów danych) lub 13 węzłów. Więcej informacji znajdziesz w artykule o topologiach instalacji.
Narzędzia/pakiety
Zanim rozpoczniesz proces instalacji, Apigee mTLS wymaga zainstalowania i włączenia na każdym komputerze w klastrze, w tym na komputerze administracyjnym, tych pakietów:
| Narzędzie/pakiet | Opis | Czy można usunąć po instalacji? |
|---|---|---|
base64 |
Weryfikuje dane w skryptach instalacyjnych. | |
gnu-bashgnu-sedgnu-grep |
Używane przez skrypt instalacyjny i inne popularne narzędzia. | |
iptables |
Zastępuje domyślną zaporę sieciową firewalld. |
|
iptables-services |
Zapewnia funkcje narzędzia iptables. |
|
lsof |
Używane przez skrypt instalacyjny. | |
nc |
Weryfikacja obejmuje te trasy: iptables. |
|
openssl |
Podpisuje certyfikaty lokalnie podczas początkowego procesu uruchamiania. |
Podczas instalacji na komputerze administracyjnym instalujesz też pakiet Consul, aby móc wygenerować dane logowania i klucz szyfrowania.
Pakiet apigee-mtls instaluje i konfiguruje serwery Consul, w tym serwery proxy ruchu przychodzącego i wychodzącego w węzłach ZooKeeper w klastrze.
Uprawnienia konta użytkownika
Przed instalacją utwórz nowe konto użytkownika lub upewnij się, że masz dostęp do konta z podwyższonymi uprawnieniami.
Konto, które wykonuje instalację Apigee mTLS na każdym węźle w klastrze, musi mieć możliwość:
- Uruchamianie, zatrzymywanie, ponowne uruchamianie i inicjowanie komponentów Apigee
- Ustaw reguły zapory sieciowej
- Tworzenie nowego konta użytkownika systemu operacyjnego
- Włączanie, wyłączanie, uruchamianie, zatrzymywanie i maskowanie usług za pomocą
systemctl
Maszyna administracyjna (zalecane)
Apigee zaleca, aby w klastrze znajdował się węzeł, na którym można wykonywać różne zadania administracyjne opisane w tym dokumencie, w tym:
- Zainstaluj HashiCorp Consul 1.6.2.
- Wygeneruj i rozpowszechnij parę certyfikat/klucz oraz klucz szyfrowania protokołu Gossip.
- Zaktualizuj i rozpowszechnij plik konfiguracji.
Podczas konfigurowania komputera administracyjnego:
- Upewnij się, że masz do niego dostęp na poziomie roota.
- Pobierz i zainstaluj na nim narzędzia
apigee-serviceiapigee-setupzgodnie z opisem w artykule Instalowanie narzędzia apigee-setup w Edge. - Upewnij się, że możesz używać
scp/ssh, aby uzyskać dostęp do wszystkich węzłów w klastrze z komputera administracyjnego. Jest to wymagane, aby można było rozpowszechniać plik konfiguracji i dane logowania.
Wykorzystanie i przypisanie portów
W tej sekcji opisano użycie portów i przypisanie portów do obsługi komunikacji Consul z Apigee mTLS.
Wykorzystanie portu: wszystkie węzły, na których działa apigee-mtls
Wszystkie węzły w klastrze, które korzystają z usługi apigee-mtls, muszą zezwalać na połączenia z usług na hoście lokalnym (127.0.0.1). Dzięki temu serwery proxy Consul mogą komunikować się z innymi usługami podczas przetwarzania wiadomości przychodzących i wychodzących.
Użycie portów: węzły serwera Consul (węzły, na których działa ZooKeeper)
Aby akceptować żądania ze wszystkich węzłów w klastrze, musisz otworzyć większość z tych portów na węzłach serwera Consul (węzłach, na których działa ZooKeeper):
| Węzeł | Port serwera Consul | Opis | Protokół | Zezwalaj na zewnętrzne agenty mTLS * |
|---|---|---|---|---|
| Serwer Consul (węzły ZooKeeper) | 8300 |
Łączy wszystkie serwery Consul w klastrze. | RPC | |
8301 |
Obsługuje członkostwo i komunikaty w klastrze. | UDP/TCP | ||
8302 |
Port WAN, który obsługuje komunikaty o członkostwie i komunikaty w konfiguracji z wieloma centrami danych. | UDP/TCP | ||
8500 |
Obsługuje połączenia HTTP z interfejsami API serwera Consul z procesów w tym samym węźle.
Ten port nie jest używany do komunikacji zdalnej ani koordynacji. Nasłuchuje tylko na hoście lokalnym. |
HTTP | ||
8502 |
Obsługuje połączenia gRPC+HTTPS z interfejsami API serwera Consul z innych węzłów w klastrze. | gRPC+HTTPS | ||
8503 |
Obsługuje połączenia HTTPS z interfejsami API serwera Consul z innych węzłów w klastrze. | HTTPS | ||
8600 |
Obsługuje DNS serwera Consul. | UDP/TCP | ||
* Apigee zaleca ograniczenie żądań przychodzących tylko do członków klastra (w tym między magazynami danych). Możesz to zrobić za pomocą iptables.
|
||||
Jak widać w tej tabeli, węzły, na których działa komponent consul-server (węzły ZooKeeper), muszą otwierać porty 8301, 8302, 8502 i 8503 dla wszystkich członków klastra, na których działa usługa apigee-mtls, nawet w różnych centrach danych. Węzły, które nie korzystają z ZooKeeper, nie muszą otwierać tych portów.
przypisania portów dla wszystkich węzłów Consul (w tym węzłów, na których działa ZooKeeper);
Aby obsługiwać komunikację Consul, węzły, na których działają te komponenty Apigee, muszą zezwalać na połączenia zewnętrzne z portami w tych zakresach:
| Komponent Apigee | Zakres | Liczba portów wymaganych na węzeł |
|---|---|---|
| Apigee mTLS | 10700–10799 | 1 |
| Cassandra | 10100–10199 | 2 |
| procesor komunikatów | 10500–10599 | 2 |
| OpenLDAP | 10200–10299 | 1 |
| Postgres | 10300–10399 | 3 |
| Qpid | 10400–10499 | 2 |
| Router | 10600–10699 | 2 |
| ZooKeeper | 10000–10099 | 3 |
Consul przypisuje porty w prosty, liniowy sposób. Jeśli na przykład klaster ma 2 węzły Postgres, pierwszy węzeł używa 2 portów, więc Consul przypisuje mu porty 10300 i 10301. Drugi węzeł również używa 2 portów, więc Consul przypisuje mu porty 10302 i 10303. Dotyczy to wszystkich typów komponentów.
Jak widać, rzeczywista liczba portów zależy od topologii: jeśli klaster ma 2 węzły Postgres, musisz otworzyć 4 porty (2 węzły po 2 porty każdy).
Uwaga:
- Serwery proxy Consul nie mogą nasłuchiwać na tych samych portach co usługi Apigee.
- Consul ma tylko jedną przestrzeń adresową portów. Przypisania portów serwera proxy Consul muszą być unikalne w całym klastrze, który obejmuje centra danych. Oznacza to, że jeśli serwer proxy A na hoście A nasłuchuje na porcie 15000, serwer proxy B na hoście B nie może nasłuchiwać na porcie 15000.
- Liczba używanych portów różni się w zależności od topologii, jak opisano wcześniej.
W konfiguracji z wieloma centrami danych wszystkie hosty z mTLS muszą też mieć otwarty port 8302.
Możesz dostosować domyślne porty używane przez Apigee mTLS. Informacje o tym, jak to zrobić, znajdziesz w sekcji Dostosowywanie zakresu portów serwera proxy.
Ograniczenia
Apigee mTLS ma te ograniczenia:
- nie szyfruje komunikacji między węzłami Cassandra (port 7000);
- Konfiguracja i konfigurowanie nie są idempotentne. Oznacza to, że jeśli wprowadzisz zmianę w jednym węźle, musisz wprowadzić tę samą zmianę we wszystkich węzłach. System nie zastosuje tej zmiany w żadnym innym węźle. Więcej informacji znajdziesz w artykule o zmienianiu istniejącej konfiguracji apigee-mtls.
Terminologia
W tej sekcji używamy tych terminów:
| Okres obowiązywania | Definicja |
|---|---|
| cluster | Grupa maszyn, które tworzą instalację Edge for Private Cloud. |
| Consul | Siatka usług używana przez Apigee mTLS. Informacje o tym, jak Consul zabezpiecza komunikację w chmurze prywatnej, znajdziesz w artykule na temat modelu zabezpieczeń Consula. |
| mTLS | Wzajemnie uwierzytelniony protokół TLS. |
| siatka usług | sieć nakładkowa (czyli sieć w sieci); |
| TLS | Transaction Layer Security. Standardowy protokół uwierzytelniania zapewniający bezpieczną komunikację. |