Wprowadzenie do Apigee mTLS

Funkcja mTLS Apigee zwiększa bezpieczeństwo komunikacji między komponentami Edge w klastrze Private Cloud.

Omówienie architektury

Aby zapewnić bezpieczną komunikację między komponentami, Apigee mTLS używa siatki usług, która nawiązuje bezpieczne, wspólnie uwierzytelnione połączenia TLS między komponentami.

Poniższy przykład przedstawia połączenia między komponentami Apigee zabezpieczonymi przez Apigee mTLS (in red). Porty widoczne na ilustracji to tylko przykłady. Na stronie Wykorzystanie portu znajdziesz listę zakresów, których może używać każdy z komponentów.

(Pamiętaj, że porty oznaczone literą „M” są używane do zarządzania komponentem i muszą być otwarte w komponencie, aby uzyskać dostęp do serwera zarządzania).

Jak widać na diagramie powyżej, 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 Router, MP, QPid, LDAP, Postgres, Zookeeper i Cassandra
Router Zapętlenie zwrotne; węzły Qpid, Zookeeper i Cassandra
procesor komunikatów Zapętlenie zwrotne; węzły Qpid, Zookeeper i Cassandra
ZooKeeper i Cassandra Inne węzły Zookeeper i Cassandra
Interfejs Edge SMTP (tylko dla 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ą w każdym węźle ZooKeeper w klastrze, oraz z następujących usług Consul w każdym węźle klastra:

  • Serwer proxy ruchu wychodzącego przechwytujący 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.

Jeśli na przykład serwer zarządzania wysyła wiadomość do routera, usługa proxy ruchu wychodzącego przechwytuje wiadomość wychodzącą, szyfruje ją, a następnie wysyła do routera. Gdy węzeł routera otrzyma komunikat, usługa serwera proxy ruchu przychodzącego odszyfrowuje wiadomość, a następnie przekazuje ją do komponentu routera w celu przetworzenia.

Wszystko to dzieje się w przejrzysty sposób w przypadku komponentów Edge: nie są oni świadomi procesu szyfrowania i odszyfrowywania przeprowadzanego przez usługi proxy Consul.

Dodatkowo Apigee mTLS korzysta z narzędzia iptables – usługi zapory sieciowej w systemie Linux, która zarządza przekierowywaniem ruchu.

Wymagania

Apigee mTLS oferuje standardowy w branży sposób konfigurowania i instalowania siatki usług. Umożliwia zarządzanie pakietami i automatyzację konfiguracji.

Usługi proxy Consul są ściśle sprzężone jako przypisania portów dla poszczególnych procesów, dlatego zmiana jednego węzła wpływa na wszystkie pozostałe węzły. W związku z tym, jeśli topologia ulegnie zmianie, musisz ponownie skonfigurować i ponownie zainicjować usługi w każdym węźle w klastrze.

Zanim zainstalujesz Apigee mTLS, Twoje środowisko musi spełniać poniższe wymagania opisane w tej sekcji.

Oto niektóre z tych wymagań:

  • Edge dla wersji Private Cloud
  • Zestaw zainstalowanych i włączonych narzędzi
  • konto użytkownika z odpowiednim poziomem uprawnień,
  • Komputer administracyjny (zalecane)

Wymagania dotyczące Edge dla Private Cloud

Apigee mTLS obsługuje tę wersję Edge dla Private Cloud (ale nie na wszystkich obsługiwanych platformach, co opisano w wymaganiach systemu operacyjnego):

  • 4.19.06
  • 4.19.01

Apigee mTLS wymaga, aby klaster Private Cloud korzystał z topologii zawierającej co najmniej 3 węzły Zookeeper. W związku z tym możesz zainstalować Apigee mTLS tylko w topologii 5, 9, 12 (wiele centrów danych) lub 13 węzłów. Więcej informacji znajdziesz w artykule Topologie instalacji.

Wymagania dotyczące systemu operacyjnego

Apigee mTLS obsługuje te platformy klastra Private Cloud (obsługiwany system operacyjny dla mTLS zależy od wersji Private Cloud):

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

Apigee mTLS wymaga zainstalowania i włączenia tych pakietów na każdym komputerze w klastrze, w tym na komputerze administracyjnym, przed rozpoczęciem procesu instalacji:

Narzędzie/pakiet Opis Czy usunąć po instalacji?
base64 Weryfikuje dane zawarte w skryptach instalacyjnych.
gnu-bash
gnu-sed
gnu-grep
Używany przez skrypt instalacyjny i inne popularne narzędzia.
iptables Zastępuje domyślną zaporę sieciową firewalld.
iptables-services Udostępnia funkcje narzędzia iptables.
lsof Używana przez skrypt instalacji.
nc Weryfikuje iptables tras.
openssl Podpisuje certyfikaty lokalnie podczas początkowego procesu wczytywania.

Podczas instalacji instalujesz też pakiet Consul na komputerze administracyjnym, aby można było 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 w każdym węźle w klastrze, musi mieć możliwość:

  • Uruchamianie, zatrzymywanie, ponowne uruchamianie i inicjowanie komponentów Apigee
  • Ustaw reguły zapory sieciowej
  • Utwórz nowe konto użytkownika systemu operacyjnego
  • Włączanie, wyłączanie, uruchamianie, zatrzymywanie i maskowanie usług za pomocą systemctl

Komputer administracyjny (zalecane)

Apigee zaleca, aby w klastrze był węzeł, którego można używać do wykonywania różnych zadań opisanych w tym dokumencie, takich jak:

  1. Zainstaluj HashiCorp Consul 1.6.2.
  2. Wygeneruj i rozpowszechnij parę certyfikatu/klucza oraz klucz szyfrowania plotek.
  3. Zaktualizuj i rozpowszechnij plik konfiguracji.

Komputer administracyjny wymaga, aby:

  • Pobrano i zainstalowano w nim narzędzia apigee-service oraz apigee-setup zgodnie z opisem w sekcji Instalowanie narzędzia Edge apigee-setup.
  • Ma dostęp na poziomie scp/ssh do wszystkich węzłów w klastrze. Aby rozpowszechnić plik konfiguracji i dane logowania, musisz mieć dostęp na poziomie scp/ssh do wszystkich hostów w klastrze.
  • Masz dostęp roota do komputera administracyjnego.

Wykorzystanie i przypisanie portów

W tej sekcji opisano wykorzystanie portów i przypisanie portów do obsługi komunikacji Consul z Apigee mTLS.

Wykorzystanie portu: wszystkie węzły obsługujące apigee-mtls

Wszystkie węzły w klastrze, które używają 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.

Wykorzystanie portu: węzły serwera Consul (węzły obsługujące ZooKeeper)

Aby przyjmować żądania od wszystkich węzłów w klastrze, musisz otworzyć większość z tych portów w węzłach serwera Consul (węzłów działających 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ługa członkostwa i komunikatów w klastrze. UDP/TCP
8302 Port WAN, który obsługuje komunikaty o członkostwie i transmisje w konfiguracji wielu centrów danych. UDP/TCP
8500 Obsługuje połączenia HTTP z interfejsami Consul Server API z procesów w tym samym węźle.

Ten port nie jest używany do zdalnej komunikacji ani koordynacji. Nasłuchuje tylko na lokalnym hoście.

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 Consul Server API 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 dotyczących wielu magazynów danych). Możesz to zrobić w aplikacji iptables.

Jak widać w tabeli, węzły korzystające z komponentu consul-server (węzły ZooKeeper) muszą otwierać porty 8301, 8302, 8502 i 8503 do wszystkich członków klastra, którzy korzystają z usługi apigee-mtls, nawet w różnych centrach danych. Węzły, które nie obsługują ZooKeeper, nie muszą otwierać tych portów.

Przypisania portów do wszystkich węzłów Consul (w tym węzłów działających w ZooKeeper)

Aby obsługiwać komunikację Consul, węzły używające tych komponentów Apigee muszą zezwalać na zewnętrzne połączenia z portami w tych zakresach:

Komponent Apigee Zakres Liczba wymaganych portów na węzeł
Apigee mTLS 10 700 do 10 799 1
Cassandra 10 100–10 199 2
procesor komunikatów 10 500 do 10 599 2
OpenLDAP 10 200–10 299 1
Postgres 10 300 do 10 399 3
Qpid 10 400–10 499 2
Router Od 10 600 do 10 699 2
ZooKeeper 10001–10 099 3

Konsul przypisuje porty w prosty, liniowy sposób. Jeśli na przykład klaster ma 2 węzły Postgres, pierwszy węzeł korzysta z 2 portów, więc Consul przypisuje do niego porty 10300 i 10301. Drugi węzeł także używa 2 portów, więc aplikacja Consol przypisuje do niego numery 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 razy 2 porty każdy).

Pamiętaj:

  • Serwery proxy Consul nie mogą nasłuchiwać na tych samych portach co usługi Apigee.
  • Consul ma tylko 1 przestrzeń adresową portu. Przypisania portów serwera proxy Consul muszą być unikalne w całym klastrze, w tym centrach danych. Oznacza to, że jeśli serwer proxy A na hoście A nasłuchuje na porcie 15000, serwer proxy 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 wielu centrów danych wszystkie hosty obsługujące mTLS muszą też mieć otwarty port 8302.

Możesz dostosować domyślne porty używane przez Apigee mTLS. Aby dowiedzieć się, jak to zrobić, przeczytaj artykuł o dostosowywaniu zakresu portów serwera proxy.

Ograniczenia

Apigee mTLS ma te ograniczenia:

  • Nie szyfruje komunikacji między węzłami Cassandra (port 7000)
  • Konfiguracja nie jest idempotentna. Oznacza to, że jeśli wprowadzisz jedną zmianę w jednym węźle, musisz wprowadzić tę samą zmianę we wszystkich węzłach. System nie zastosuje tej zmiany za Ciebie do innych węzłów. Więcej informacji znajdziesz w artykule o zmienianiu istniejącej konfiguracji apigee-mtls.

Terminologia

W tej sekcji zastosowano następującą terminologię:

Termin Definicja
klaster Grupa maszyn tworzących Edge na potrzeby instalacji Private Cloud.
Konsul Siatka usług używana przez Apigee mTLS. Informacje o tym, jak Consul zabezpiecza komunikację Private Cloud, znajdziesz w artykule o modelu zabezpieczeń Consula.
mTLS Wzajemnie uwierzytelnione protokół TLS.
siatka usług Sieć nakładki (lub sieć w sieci).
TLS Transaction Layer Security (Zabezpieczenia warstwy transakcji). Standardowy protokół uwierzytelniania zapewniający bezpieczną komunikację.