Edge dla chmury prywatnej w wersji 4.19.01
Funkcja mTLS w Apigee zwiększa bezpieczeństwo komunikacji między komponentami w klastrze Edge for chmura prywatna.
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
Apigee mTLS zapewnia standardowy sposób konfigurowania i instalowania siatki usług. Obsługuje zarządzanie pakietami i automatyzację konfiguracji.
Usługi pośredniczące Consul są ściśle powiązane jako przypisania portów dla poszczególnych procesów, więc zmiana w jednym węźle wpływa na wszystkie pozostałe węzły. W związku z tym, jeśli topologia ulegnie zmianie, musisz ponownie skonfigurować i zainicjować usługi na każdym węźle w klastrze.
Zanim zainstalujesz Apigee mTLS, Twoje środowisko musi spełniać wymagania opisane w tej sekcji.
Oto te wymagania:
- Wersja Edge dla chmury prywatnej
- Zestaw zainstalowanych i włączonych narzędzi
- konto użytkownika z odpowiednim poziomem uprawnień,
- komputer administracyjny (zalecane),
Wymagania dotyczące Edge dla chmury prywatnej
Apigee mTLS obsługuje tę wersję Edge for Private Cloud (ale nie na wszystkich obsługiwanych platformach, jak opisano w sekcji Wymagania dotyczące systemu operacyjnego):
- 4.19.06
- 4.19.01
Apigee mTLS wymaga, aby klaster chmury prywatnej używał topologii obejmującej 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.
Wymagania dotyczące systemu operacyjnego
Apigee mTLS obsługuje te platformy dla klastra chmury prywatnej (obsługiwany system operacyjny dla mTLS zależy od wersji chmury prywatnej):
| System operacyjny | Obsługiwana wersja chmury prywatnej | ||
|---|---|---|---|
| v4.19.06 | v4.50.00 | v4.51.00 | |
| CentOS RedHat Enterprise Linux (RHEL) Oracle Linux |
7.5, 7.6, 7.7 | 7.5, 7.6, 7.7, 7.8, 7.9 | 7.5, 7.6, 7.7, 7.8, 7.9, 8.0 |
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
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ł, którego można używać do wykonywania różnych zadań opisanych w tym dokumencie, takich jak:
- Zainstaluj HashiCorp Consul 1.6.2.
- Wygeneruj i rozpowszechnij parę certyfikat/klucz oraz klucz szyfrowania protokołu Gossip.
- Zaktualizuj i rozpowszechnij plik konfiguracji.
Maszyna administracyjna musi spełniać te wymagania:
- Pobrano i zainstalowano na nim narzędzia
apigee-serviceiapigee-setupzgodnie z opisem w artykule Instalowanie narzędzia apigee-setup w Edge. - Ma dostęp
scp/sshdo wszystkich węzłów w klastrze. Aby rozpowszechnić plik konfiguracji i dane logowania, musisz mieć dostępscp/sshdo wszystkich hostów w klastrze. - Masz dostęp na poziomie roota do komputera administracyjnego.
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 członkostwo 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 | 10001–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 wykryje tej zmiany i nie zastosuje jej w innych węzłach. 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ę. |