Apigee mTLS özelliği, Edge for the Private Cloud kümenizdeki bileşenler arasındaki iletişime güvenlik katar. Hizmet ağını yapılandırmak ve yüklemek için sektör standardı bir yöntem sunar. Paket yönetimi ve yapılandırma otomasyonunu destekler.
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ı olarak kimliği doğrulanmış TLS bağlantıları oluşturan bir hizmet ağı kullanır.
Aşağıdaki resimde, Apigee mTLS'nin güvenliğini sağladığı Apigee bileşenleri arasındaki bağlantılar (in red) gösterilmektedir. Resimde gösterilen bağlantı noktaları örneklerdir. Her bileşenin kullanabileceği aralıkların listesi için Bağlantı noktası kullanımı bölümüne bakın.
(M harfiyle belirtilen bağlantı noktalarının bileşeni yönetmek için kullanıldığını ve Yönetim Sunucusu'nun erişimi 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 ekler. Bu bileşenler şunlardır:
Kaynak | Hedef | |
---|---|---|
Yönetim Sunucusu | Yönlendirici, MP, QPid, LDAP, Postgres, Zookeeper ve Cassandra düğümleri | |
Yönlendirici | Geri döngü; Qpid, Zookeeper ve Cassandra düğümleri | |
Mesaj İşleyici | Geri döngü; 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 çalışan Consul sunucularından ve kümedeki her düğümde çalışan aşağıdaki Consul hizmetlerinden oluşur:
- Ana makine düğümündeki giden iletileri yakalayan bir çıkış proxy'si. Bu hizmet, giden iletileri hedeflerine göndermeden önce şifreler.
- Ana makine düğümündeki gelen iletileri yakalayan bir giriş proxy'si. Bu hizmet, gelen iletileri nihai hedeflerine göndermeden önce şifrelerini çözer.
Örneğin, Yönetim Sunucusu Yönlendirici'ye bir ileti gönderdiğinde çıkış proxy hizmeti, giden iletiyi yakalar, şifreler ve ardından Yönlendirici'ye gönderir. Yönlendiricinin düğümü mesajı aldığında, giriş proxy hizmeti mesajın şifresini çözer ve ardından işlenmesi için Yönlendirici bileşenine iletir.
Tüm bu işlemler, Edge bileşenleri için şeffaf bir şekilde gerçekleşir. Bu bileşenler, Consul proxy hizmetleri tarafından gerçekleştirilen şifreleme ve şifre çözme işlemlerinden haberdar değildir.
Ayrıca Apigee mTLS, trafik yönlendirmeyi yöneten bir Linux güvenlik duvarı hizmeti olan iptables
yardımcı programını kullanır.
Şartlar
Apigee mTLS'yi yükleyebilmeniz için ortamınızın aşağıdaki koşulları karşılaması gerekir:
- Topoloji koşulları
- Yüklü ve etkin yardımcı programlar
- Uygun izin düzeyine sahip kullanıcı hesabı
- Yönetim makinesi (önerilir)
- Bağlantı noktası kullanımı
Aşağıdaki bölümlerde bu şartların her biri ayrıntılı olarak açıklanmıştır.
Topoloji koşulları
Apigee mTLS, ortamınızın topolojisinin en az üç Zookeeper düğümü içermesini 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 başlıklı makaleyi inceleyin.
Yardımcı programlar/paketler
Apigee mTLS'nin kullanılabilmesi için yükleme işlemine başlamadan önce kümenizdeki her makinede (yönetim makineniz dahil) aşağıdaki paketlerin yüklü ve etkin olması gerekir:
Hizmet/paket | Açıklama | Yüklemeden Sonra Kaldırılabilir mi? |
---|---|---|
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ının (firewalld ) yerini alır. |
|
iptables-services |
iptables yardımcı programına işlevsellik sağlar. |
|
lsof |
Yükleme komut dosyası tarafından kullanılır. | |
nc |
iptables rotalarını doğrular. |
|
openssl |
İlk başlatma işlemi sırasında sertifikaları yerel olarak imzalar. |
Yükleme sırasında, kimlik bilgileri ve şifreleme anahtarı oluşturabilmek için Consul paketini yönetim makinesine de yüklersiniz.
apigee-mtls
paketi, kümedeki ZooKeeper düğümlerinde giriş ve çıkış proxy'leri de dahil olmak üzere Consul sunucularını yükleyip yapılandırır.
Kullanıcı hesabı izinleri
Yüklemeden önce yeni bir kullanıcı hesabı oluşturun veya yükseltilmiş ayrıcalıklara sahip bir hesaba erişebildiğinizden emin olun.
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ı ayarlama
- Yeni bir işletim sistemi/sistem kullanıcı hesabı oluşturun
systemctl
ile hizmetleri etkinleştirme, devre dışı bırakma, başlatma, durdurma ve maskeleme
Yönetim makinesi (önerilir)
Apigee, kümede aşağıdakiler de dahil olmak üzere bu belgede açıklanan çeşitli yönetim görevlerini gerçekleştirebileceğiniz bir düğüm olmasını önerir:
- HashiCorp Consul 1.6.2'yi yükleyin.
- Sertifika/anahtar çifti ve dedikodu şifreleme anahtarı oluşturup dağıtın.
- Yapılandırma dosyasını güncelleyin ve dağıtın.
Yönetim makinesini ayarlarken:
- Cihazda kök erişiminiz olduğundan emin olun.
apigee-service
veapigee-setup
yardımcı programlarını Install Edge apigee-setup utility bölümünde açıklandığı şekilde indirin ve yükleyin.- Yönetim makinesinden kümedeki tüm düğümlere erişmek için
scp/ssh
kullanabildiğinizden emin olun. Bu, yapılandırma dosyanızı ve kimlik bilgilerinizi dağıtabilmeniz için gereklidir.
Bağlantı noktası kullanımı ve ataması
Bu bölümde, Apigee mTLS ile Consul iletişimini desteklemek için bağlantı noktası kullanımı ve bağlantı noktası atamaları açıklanmaktadır.
Bağlantı noktası kullanımı: apigee-mtls'nin çalıştığı tüm düğümler
apigee-mtls
hizmetini kullanan kümedeki 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'ın çalıştığı düğümler)
Kümedeki tüm düğümlerden gelen istekleri kabul etmek için Consul sunucu düğümlerinde (ZooKeeper'ın çalıştığı 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-agents'a izin ver * |
---|---|---|---|---|
Consul sunucusu (ZooKeeper düğümleri) | 8300 |
Kümedeki tüm Consul sunucularını bağlar. | TBG | |
8301 |
Küme içindeki üyelik ve yayın mesajlarını yönetir. | UDP/TCP | ||
8302 |
Çoklu veri merkezi yapılandırmasında üyelik ve yayın mesajlarını 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 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şlemi iptables ile yapabilirsiniz.
|
Bu tabloda gösterildiği gibi, consul-server
bileşenini (ZooKeeper düğümleri) çalıştıran düğümler, veri merkezleri arasında bile apigee-mtls
hizmetini çalıştıran kümenin tüm üyeleri için 8301, 8302, 8502 ve 8503 numaralı bağlantı noktalarını açmalıdır. ZooKeeper'ı çalıştırmayan düğümlerin bu bağlantı noktalarını açması gerekmez.
Tüm Consul düğümleri (ZooKeeper çalıştıran düğümler dahil) için bağlantı noktası atamaları
Consul iletişimini 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 | 10700-10799 | 1 |
Cassandra | 10100-10199 | 2 |
Mesaj İşleyici | 10500 - 10599 | 2 |
SymasLDAP | 10200-10299 | 1 |
Postgres | 10300-10399 | 3 |
Qpid | 10400-10499 | 2 |
Yönlendirici | 10600 - 10699 | 2 |
ZooKeeper | 10000-10099 | 3 |
Consul, bağlantı noktalarını basit bir doğrusal şekilde atar. Örneğin, kümenizde iki Postgres düğümü varsa ilk düğüm iki bağlantı noktası kullanır. Bu nedenle Consul, düğüme 10300 ve 10301 numaralı bağlantı noktalarını atar. İkinci düğüm de iki bağlantı noktası kullandığından Console, bu düğüme 10302 ve 10303'ü atar. Bu durum 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 çarpı iki bağlantı noktası).
Aşağıdakileri göz önünde bulundurun:
- Consul proxy'leri, Apigee hizmetleriyle aynı bağlantı noktalarını dinleyemez.
- Consul'un yalnızca bir bağlantı noktası adresi alanı vardır. Consul proxy bağlantı noktası atamaları, veri merkezleri de dahil olmak üzere küme genelinde benzersiz olmalıdır. Bu, A ana makinesindeki A proxy'si 15000 numaralı bağlantı noktasını dinliyorsa B ana makinesindeki B proxy'sinin 15000 numaralı bağlantı noktasını dinleyemeyeceği anlamına gelir.
- 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 8302 bağlantı noktasını da 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ığını özelleştirme başlıklı makaleyi inceleyin.
Sınırlamalar
Apigee mTLS'nin aşağıdaki sınırlamaları vardır:
- Düğümler arası Cassandra iletişimlerini (7000 numaralı bağlantı noktası) şifrelemez.
- Yapılandırma ve kurulum idempotent değildir. Bu nedenle, bir düğümde değişiklik yaparsanız aynı değişikliği tüm düğümlerde yapmanız gerekir. Sistem, bu değişikliği sizin için başka bir düğüme uygulamaz. Daha fazla bilgi için Mevcut bir apigee-mtls yapılandırmasını değiştirme başlıklı makaleyi inceleyin.
Terminoloji
Bu bölümde aşağıdaki terminoloji kullanılmaktadır:
Terim | Tanım |
---|---|
cluster | Özel bulut kurulumunuz için Edge'i oluşturan makine grubu. |
Consul | Apigee mTLS tarafından kullanılan hizmet ağı. Consul'un özel bulut iletişimlerinizi nasıl güvenceye aldığı hakkında bilgi için Consul'un Güvenlik Modeli'ne bakın. |
mTLS | Karşılıklı kimliği doğrulanmış TLS. |
hizmet ağı | Overlay ağı (veya ağ içindeki bir ağ). |
TLS | İşlem Katmanı Güvenliği Güvenli iletişim için endüstri standardı kimlik doğrulama protokolü. |