Apigee mTLS'ye giriş

Apigee mTLS özelliği, Edge for Private Cloud kümenizdeki bileşenler arasındaki iletişimlere güvenlik ekler. Hizmet ağını yapılandırmak ve yüklemek için endüstri standardı bir yöntem sunar. Paket yönetimini 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, karşılıklı kimlik doğrulamalı 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ı ö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'nun erişebilmesi 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 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 çalışan Consul sunucularından ve kümedeki her düğümde bulunan aşağıdaki Consul hizmetlerinden oluşur:

  • Ana makine düğümünde giden mesajları yakalayan bir çıkış proxy'si. Bu hizmet, giden mesajları hedeflerine göndermeden önce şifreler.
  • Ana makine düğümünde gelen mesajları yakalayan bir giriş proxy'si. Bu hizmet, gelen mesajların şifresini çözerek nihai hedeflerine gönderir.

Örneğin, Yönetim Sunucusu Yönlendirici'ye bir mesaj gönderdiğinde çıkış proxy hizmeti giden mesajı yakalar, şifreler ve ardından Yönlendirici'ye gönderir. Yönlendirici'nin düğümü mesajı aldığında giriş proxy hizmeti mesajın şifresini çözer ve ardından işlenmek üzere Yönlendirici bileşenine iletir.

Tüm bunlar Edge bileşenleri için şeffaf bir şekilde gerçekleşir: Consul proxy hizmetleri tarafından gerçekleştirilen şifreleme ve şifre çözme işlemlerinden haberdar olmazlar.

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:

Aşağıdaki bölümlerde bu şartların her biri ayrıntılı olarak açıklanmaktadır.

Sürüm, platform ve topoloji

Aşağıdaki tabloda mTLS koşulları listelenmiştir:

Gereksinim Açıklama
Sürümler
  • 4.51.00
  • 4.50.00
  • 4.19.06
Topoloji En az üç ZooKeeper düğümü içermelidir. 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.
Platformlar/İşletim Sistemleri

Apigee mTLS'nin belirli bir işletim sisteminde desteklenip desteklenmediğini belirlemek için aşağıdaki değerleri kullanın:

İş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

Apigee mTLS'nin, çalıştığı Apigee Edge for Private Cloud'un ilgili sürümü tarafından desteklenen tüm işletim sistemlerini desteklemediğini unutmayın.

Örneğin, 4.19.06 sürümü CentOS x ve y'yi destekliyorsa bu, Apigee mTLS'nin 4.19.06 sürümü için CentOS x ve y'de desteklendiği anlamına gelmez.

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 Yükleme işleminden 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ı olan firewalld değiştirilir.
iptables-services iptables yardımcı programına işlevsellik 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 bilgileri ve şifreleme anahtarı oluşturabilmek için yönetim makinesine Consul paketini 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 üst düzey ayrıcalıklara sahip bir hesaba erişiminiz olduğundan 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 ilk kullanıma hazırlama
  • Güvenlik duvarı kurallarını ayarlama
  • Yeni bir işletim sistemi/sistem kullanıcı hesabı oluşturma
  • systemctl ile hizmetleri etkinleştirme, devre dışı bırakma, başlatma, durdurma ve maskeleme

Yönetim makinesi (önerilir)

Apigee, küme içinde bu dokümanda açıklanan çeşitli yönetim görevlerini gerçekleştirebileceğiniz bir düğümünüz olmasını önerir. Bu görevler arasında şunlar yer alır:

  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üncelleyip dağıtın.

Yönetim makinesini ayarlarken:

  • Cihaza root erişiminiz olduğundan emin olun.
  • Edge apigee-setup yardımcı programını yükleme bölümünde açıklandığı şekilde apigee-service ve apigee-setup yardımcı programlarını indirip 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ş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ümede apigee-mtls hizmetini kullanan tüm düğümler, yerel ana makinedeki (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-agents'a izin ver
*
Consul Server (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ı işler. 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ı yönetir.

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

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

Bu tabloda gösterildiği gibi, consul-server bileşenini çalıştıran düğümler (ZooKeeper düğümleri), veri merkezleri arasında bile apigee-mtls hizmetini çalıştıran kümenin tüm üyelerine 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 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üğümler, aşağıdaki aralıklardaki bağlantı noktalarına harici bağlantılara izin vermelidir:

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
OpenLDAP 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 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, bu düğüme 10300 ve 10301 numaralı 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 ç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'da yalnızca bir bağlantı noktası adres alanı vardır. Consul proxy bağlantı noktası atamaları, veri merkezleri de dahil olmak üzere küme genelinde benzersiz olmalıdır. Yani, A ana makinesindeki A proxy'si 15000 numaralı bağlantı noktasını dinliyorsa B ana makinesindeki B proxy'si 15000 numaralı bağlantı noktasını dinleyemez.
  • Kullanılan bağlantı noktalarının 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 numaralı 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ığı özelleştirmesi başlıklı makaleyi inceleyin.

Sınırlamalar

Apigee mTLS'de 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, bir düğümde bir değişiklik yaparsanız aynı değişikliği tüm düğümlerde yapmanız gerektiği anlamına gelir. 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 için Edge kurulumunuzu oluşturan makine grubu.
Consul Apigee mTLS tarafından kullanılan hizmet ağı. Consul'un Private Cloud iletişimlerinizin güvenliğini nasıl sağladığı hakkında bilgi edinmek için Consul'un Güvenlik Modeli'ni inceleyin.
mTLS Karşılıklı Kimlik Doğrulamalı TLS.
hizmet ağı Yer paylaşımlı ağ (veya ağ içinde ağ).
TLS Taşıma Katmanı Güvenliği. Güvenli iletişim için endüstri standardı bir kimlik doğrulama protokolü.