Apigee mTLS'ye giriş

Apigee mTLS özelliği, Private Cloud kümesi için Edge'inizdeki bileşenler arasındaki iletişimin güvenliğini artırır.

Mimariye genel bakış

Apigee mTLS, bileşenler arasında güvenli iletişim sağlamak için bileşenler arasında güvenli ve karşılıklı kimlik doğrulaması yapılmış TLS bağlantıları oluşturan bir hizmet ağı kullanır.

Aşağıdaki resimde, Apigee mTLS'nin güvenli hale getirdiği (in red) Apigee bileşenleri arasındaki bağlantılar gösterilmektedir. Resimde gösterilen bağlantı noktaları örnektir. Her bileşenin kullanabileceği aralıkların listesi için Bağlantı noktası kullanımı bölümüne bakın.

("M" ile belirtilen bağlantı noktalarının bileşeni yönetmek için kullanıldığını ve Yönetim Sunucusu tarafından erişilebilmesi için bileşende açık olması gerektiğini unutmayın.)

Yukarıdaki şemada görebileceğiniz gibi Apigee mTLS, kümedeki çoğu bileşen arasındaki bağlantılara güvenlik katar. Örneğin:

Kaynak Hedef
Yönetim Sunucusu Yönlendirici, MP, QPid, LDAP, Postgres, Zookeeper ve Cassandra düğümleri
Yönlendirici Loopback; Qpid, Zookeeper ve Cassandra düğümleri
Mesaj İşleyici Loopback; Qpid, Zookeeper ve Cassandra düğümleri
ZooKeeper ve Cassandra Diğer Zookeeper ve Cassandra düğümleri
Edge kullanıcı arayüzü SMTP (yalnızca harici IdP için)
Postgres Diğer Postgres, Zookeeper ve Cassandra düğümleri

İleti şifreleme/şifre çözme

Apigee mTLS hizmet ağı, kümenizdeki her ZooKeeper düğümünde ve kümedeki her düğümde aşağıdaki Consul hizmetlerini çalışan Consul sunucularından oluşur:

  • Ana makine düğümünde giden iletilere müdahale eden bir çıkış proxy'si. Bu hizmet, giden iletileri hedeflerine göndermeden önce şifreler.
  • Ana makine düğümünde gelen iletilere müdahale eden bir giriş proxy'si. Bu hizmet, gelen mesajları son hedefine göndermeden önce şifresini çözer.

Örneğin, Yönetim Sunucusu Yönlendirici'ye mesaj gönderdiğinde çıkış proxy hizmeti giden iletiye müdahale eder, bu iletiyi şifreler ve ardından Yönlendiriciye gönderir. Yönlendiricinin düğümü mesajı aldığında giriş proxy hizmeti mesajın şifresini çözer ve daha sonra mesajı işlenmek üzere Yönlendirici bileşenine iletir.

Bu işlemlerin tamamı Edge bileşenleri üzerinde şeffaf bir şekilde gerçekleşir. Bu bileşenler, Consul proxy hizmetlerinin gerçekleştirdiği şifreleme ve şifre çözme işleminin farkında olmaz.

Ayrıca Apigee mTLS, trafik yönlendirmesini yöneten bir Linux güvenlik duvarı hizmeti olan iptables yardımcı programını da kullanır.

Koşullar

Apigee mTLS, hizmet ağını yapılandırmak ve kurmak için endüstri standardı bir yol sunar. Paket yönetimini ve yapılandırma otomasyonunu destekler.

Consul proxy hizmetleri bağımsız işlemler için bağlantı noktası atamalarıyla sıkı sıkıya bağlı olduğundan bir düğümde yapılan bir değişiklik diğer tüm düğümleri etkiler. Bunun sonucunda topolojiniz değişirse kümedeki her düğümde hizmetleri yeniden yapılandırıp yeniden başlatmanız gerekir.

Apigee mTLS'yi yükleyebilmeniz için ortamınızın bu bölümde açıklanan aşağıdaki gereksinimleri karşılaması gerekir.

Bu şartlar şunlardır:

  • Private Cloud sürümü için Edge
  • Yüklü ve etkinleştirilen yardımcı programlar grubu
  • Uygun izin düzeyine sahip bir kullanıcı hesabı
  • Bir yönetim makinesi (önerilir)

Private Cloud için Edge gereksinimleri

Apigee mTLS, Private Cloud için Edge'in aşağıdaki sürümünü destekler (ancak OS gereksinimlerinde açıklandığı gibi desteklenen tüm platformlarda desteklenmez):

  • 4.19.06
  • 4.19.01

Apigee mTLS, Private Cloud kümenizin en az üç Hayvanat Bahçesi düğümü içeren bir topoloji kullanmasını gerektirir. Sonuç olarak, Apigee mTLS'yi yalnızca 5, 9, 12 (çoklu veri merkezi) veya 13 düğüm kullanan topolojilere yükleyebilirsiniz. Daha fazla bilgi için Yükleme topolojileri bölümüne bakın.

OS gereksinimleri

Apigee mTLS, Private Cloud kümeniz için aşağıdaki platformları destekler (mTLS için desteklenen işletim sistemi, Private Cloud sürümüne bağlıdır):

İşletim Sistemi Desteklenen Private Cloud Sürümü
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

Yardımcı programlar/paketler

Apigee mTLS, yükleme işlemine başlamadan önce yönetim makineniz de dahil olmak üzere kümenizdeki her makinede aşağıdaki paketlerin yüklü ve etkin olmasını gerektirir:

Yardımcı program/paket Açıklama Kurulumdan Sonra Kaldırılsın mı?
base64 Yükleme komut dosyalarındaki verileri doğrular.
gnu-bash
gnu-sed
gnu-grep
Yükleme komut dosyası ve diğer yaygın araçlar tarafından kullanılır.
iptables Varsayılan güvenlik duvarı olan firewalld'in yerini alır.
iptables-services iptables yardımcı programına işlev sağlar.
lsof Yükleme komut dosyası tarafından kullanılır.
nc iptables rotayı doğrular.
openssl İlk önyükleme işlemi sırasında sertifikaları yerel olarak imzalar.

Yükleme sırasında, kimlik bilgilerini ve şifreleme anahtarını oluşturabilmek için Consul paketini yönetim makinesine de yüklersiniz.

apigee-mtls paketi, kümedeki ZooKeeper düğümlerindeki giriş ve çıkış proxy'leri de dahil olmak üzere Consul sunucularını yükler ve yapılandırır.

Kullanıcı hesabı izinleri

Kümedeki her düğümde Apigee mTLS yüklemesini yürüten hesap şunları yapabilmelidir:

  • Apigee bileşenlerini başlatma, durdurma, yeniden başlatma ve başlatma
  • Güvenlik duvarı kurallarını ayarlayın
  • Yeni bir OS/sistem kullanıcı hesabı oluşturma
  • systemctl ile hizmetleri etkinleştirin, devre dışı bırakın, başlatın, durdurun ve maskeleyin

Yönetim makinesi (önerilir)

Apigee, bu belgede açıklanan çeşitli görevleri gerçekleştirmek için kullanabileceğiniz, kümenin içinde bir düğümünüzün olmasını önerir:

  1. HashiCorp Consul 1.6.2'yi yükleyin.
  2. Sertifika/anahtar çifti ve dedikodu şifreleme anahtarı oluşturup dağıtın.
  3. Yapılandırma dosyasını güncelleyin ve dağıtın.

Yönetim makinesi şunları gerektirir:

  • Install Edge Apigee-setup yardımcı programı bölümünde açıklandığı gibi apigee-service ve apigee-setup yardımcı programlarını indirip yüklediniz.
  • Kümedeki tüm düğümlere scp/ssh erişimi var. Yapılandırma dosyanızı ve kimlik bilgilerinizi dağıtmak için kümedeki tüm ana makinelere scp/ssh erişiminiz olmalıdır.
  • Yönetim makinesine root erişiminiz var.

Bağlantı noktası kullanımı ve ataması

Bu bölümde, Apigee mTLS ile Consul iletişimlerini desteklemek için bağlantı noktası kullanımı ve bağlantı noktası atamaları açıklanmaktadır.

Bağlantı noktası kullanımı: Apigee-mtls çalıştıran tüm düğümler

Kümedeki apigee-mtls hizmetini kullanan tüm düğümler, localhost'taki (127.0.0.1) hizmetlerden gelen bağlantılara izin vermelidir. Bu sayede Consul proxy'leri gelen ve giden mesajları işlerken diğer hizmetlerle iletişim kurabilir.

Bağlantı noktası kullanımı: Consul sunucu düğümleri (ZooKeeper çalıştıran düğümler)

Kümedeki tüm düğümlerden gelen istekleri kabul etmek için Consul sunucu düğümlerinde (ZooKeeper'ı çalıştıran düğümler) aşağıdaki bağlantı noktalarının çoğunu açmanız gerekir:

Düğüm Consul Sunucu Bağlantı Noktası Açıklama Protokol Harici mtls-agent'lara izin verin
*
Consul Server (ZooKeeper düğümleri) 8300 Kümedeki tüm Consul sunucularını bağlar. RPC
8301 Küme içindeki üyelik ve yayın mesajlarını işler. UDP/TCP
8302 Üyelik ve yayın mesajlarını birden çok veri merkezi yapılandırmasında işleyen WAN bağlantı noktası. UDP/TCP
8500 Aynı düğümdeki işlemlerden Consul Server API'lerine yapılan HTTP bağlantılarını işler.

Bu bağlantı noktası, uzaktan iletişim veya koordinasyon için kullanılmaz; yalnızca localhost'ta dinleme yapar.

HTTP
8502 Kümedeki diğer düğümlerden Consul Server API'lerine yapılan gRPC+HTTPS bağlantılarını işler. gRPC+HTTPS
8503 Kümedeki diğer düğümlerden Consul Server API'lerine yapılan HTTPS bağlantılarını işler. HTTPS
8600 Consul sunucusunun DNS'sini işler. UDP/TCP
* Apigee, gelen istekleri yalnızca küme üyeleriyle (veri depoları arası dahil) kısıtlamanızı önerir. Bu işlemleri iptables ile yapabilirsiniz.

Bu tabloda da gösterildiği gibi, consul-server bileşenini çalıştıran düğümlerin (ZooKeeper düğümleri) 8301, 8302, 8502 ve 8503 bağlantı noktalarını, veri merkezlerinde bile apigee-mtls hizmetini çalıştıran kümenin tüm üyeleri için açması gerekir. ZooKeeper'ı çalıştırmayan düğümlerin bu bağlantı noktalarını açması gerekmez.

Tüm Consul düğümleri için bağlantı noktası atamaları (ZooKeeper çalıştıran düğümler dahil)

Consul iletişimlerini desteklemek için aşağıdaki Apigee bileşenlerini çalıştıran düğümlerin aşağıdaki aralıklardaki bağlantı noktalarına harici bağlantılara izin vermesi gerekir:

Apigee Bileşeni Aralık Düğüm Başına Gerekli Bağlantı Noktası Sayısı
Apigee mTLS 10.700-10.799 1
Cassandra 10.100-10.199 2
Mesaj İşleyici 10.500-10.599 2
OpenLDAP 10.200-10.299 1
Postgres 10.300-10.399 3
Qpid 10.400-10.499 2
Yönlendirici 10.600-10.699 2
ZooKeeper 10.001-10.099 3

Consul, bağlantı noktalarını basit ve doğrusal bir şekilde atar. Örneğin, kümenizde iki Postgres düğümü varsa ilk düğüm iki bağlantı noktası kullanır. Bu nedenle Consul, 10300 ve 10301 bağlantı noktalarını atar. İkinci düğüm de iki bağlantı noktası kullandığından Consol bu düğüme 10302 ve 10303 atar. Bu, tüm bileşen türleri için geçerlidir.

Gördüğünüz gibi, gerçek bağlantı noktası sayısı topolojiye bağlıdır: Kümenizde iki Postgres düğümü varsa dört bağlantı noktası açmanız gerekir (iki düğüm x iki bağlantı noktası).

Aşağıdakileri göz önünde bulundurun:

  • Consul proxy'leri, Apigee hizmetleriyle aynı bağlantı noktalarından veri alamaz.
  • Consul'un yalnızca bir bağlantı noktası adres alanı vardır. Consul proxy bağlantı noktası atamaları, veri merkezlerini de içeren küme genelinde benzersiz olmalıdır. Yani, ana makine A'daki A proxy'si 15000 bağlantı noktasında dinleme yaparsa B ana makinesindeki proxy B, 15000 bağlantı noktasında dinleme yapamaz.
  • Kullanılan bağlantı noktası sayısı, daha önce açıklandığı gibi topolojiye göre değişir.

Çoklu veri merkezi yapılandırmasında, mTLS çalıştıran tüm ana makinelerin de 8302 numaralı bağlantı noktasını açması gerekir.

Apigee mTLS'nin kullandığı varsayılan bağlantı noktalarını özelleştirebilirsiniz. Bunun nasıl yapılacağı hakkında bilgi edinmek için Proxy bağlantı noktası aralığı özelleştirmesi bölümüne bakın.

Sınırlamalar

Apigee mTLS'de aşağıdaki sınırlamalar geçerlidir:

  • Cassandra düğümleri arası iletişimleri (bağlantı noktası 7000) şifrelemez
  • Yapılandırma ve kurulum eş değerli değil. Diğer bir deyişle, bir düğümde bir değişiklik yaparsanız tüm düğümlerde aynı değişikliği yapmanız gerekir. Sistem bu değişikliği almaz ve sizin için diğer düğümlere uygulamaz. Daha fazla bilgi için Mevcut Apigee-mtls yapılandırmasını değiştirme bölümüne bakın.

Terminoloji

Bu bölümde şu terminoloji kullanılmaktadır:

Terim Tanım
küme Private Cloud kurulumu için Edge'inizi oluşturan makine grubu.
Konsolos Apigee mTLS tarafından kullanılan hizmet ağı. Consul'un Private Cloud iletişimlerinizin güvenliğini nasıl sağladığı hakkında bilgi için Consul'un Güvenlik Modeli'ne bakın.
mTLS Karşılıklı Olarak Doğrulanmış TLS.
hizmet ağı Yer paylaşımlı bir ağ (veya ağ içindeki bir ağ).
TLS İşlem Katmanı Güvenliği. Güvenli iletişim için endüstri standardı bir kimlik doğrulama protokolüdür.