Kubernetes'e ağ erişiminin güvenliğini sağlama

Azure Bastion
Azure DNS
Azure Kubernetes Service (AKS)
Azure Private Link
Azure Virtual Network

Bu makalede Azure Kubernetes Service (AKS) ve Amazon Elastic Kubernetes Service (Amazon EKS) için ağ modları karşılaştırılıyor. Makalede, AKS kümesinin yönetilen API sunucusuna bağlantı güvenliğinin nasıl artırıldığı ve genel ağ erişimini kısıtlamaya yönelik farklı seçenekler açıklanır.

Not

Bu makale, Amazon EKS'yi bilen profesyonellerin AKS'yi anlamasına yardımcı olan bir dizi makalenin bir parçasıdır.

Amazon EKS ağ modları

Amazon Virtual Private Cloud (Amazon VPC) ile Amazon Web Services (AWS) kaynaklarını genel ve özel alt ağlardan veya VPC'deki IP adresi aralıklarından oluşan bir sanal ağda başlatabilirsiniz. Genel alt ağ, İnternet'e bağlı olması gereken kaynakları barındırıyor ve özel alt ağ ise genel İnternet'e bağlı olmayan kaynakları barındırıyor. Amazon EKS, hem genel hem de özel alt ağlarda yönetilen düğüm grupları sağlayabilir.

Uç nokta erişim denetimi, API Server uç noktasının genel İnternet'ten mi yoksa VPC üzerinden mi erişilebilir olduğunu yapılandırmanıza olanak tanır. EKS , küme uç noktasına erişimi denetlemenin çeşitli yollarını sağlar. Varsayılan genel uç noktayı, özel uç noktayı veya her iki uç noktayı aynı anda etkinleştirebilirsiniz. Genel uç noktayı etkinleştirdiğinizde, genel uç noktaya bağlanabilen istemci IP adreslerini sınırlamak için Sınıfsız Inter-Domain Yönlendirme (CIDR) kısıtlamaları ekleyebilirsiniz.

Amazon EKS düğümlerinin yönetilen Kubernetes denetim düzlemine nasıl bağlandığı, küme için hangi uç nokta ayarının yapılandırıldığına göre belirlenir. Uç nokta ayarlarını istediğiniz zaman Amazon EKS konsolu veya API aracılığıyla değiştirebilirsiniz. Daha fazla bilgi için bkz. Amazon EKS küme uç noktası erişim denetimi.

Yalnızca genel uç nokta

Denetim düzleminin genel uç nokta üzerinden kullanıma alınması, yeni Amazon EKS kümeleri için varsayılan moddur. Küme için yalnızca genel uç nokta etkinleştirildiğinde, Kubernetes API'sinin Amazon VPC'den kaynaklanan istekleri (düzlem iletişimini kontrol etmek için çalışan düğümü gibi) VPC'den ayrılır ancak Amazon'un ağından ayrılmaz. Düğümlerin denetim düzlemine bağlanabilmesi için bir genel IP adresi ve İnternet ağ geçidi yolu ya da NAT ağ geçidinin genel IP adresini kullanabilecekleri bir ağ adresi çevirisi (NAT) ağ geçidi yolu kullanmaları gerekir.

Genel ve özel uç noktalar

Hem genel hem de özel uç noktalar etkinleştirildiğinde, VPC'nin içinden Kubernetes API istekleri, VPC'deki Amazon EKS tarafından yönetilen Elastik Ağ Arabirimleri (ENI) aracılığıyla denetim düzlemine iletişim kurar. Küme API sunucusuna İnternet'ten erişilebilir.

Yalnızca özel uç nokta

Yalnızca özel uç nokta etkinleştirildiğinde, veya helm komutları gibi kubectl küme API sunucusuna gelen tüm trafiğin kümenin VPC'sinden veya bağlı bir ağdan gelmesi gerekir. API sunucusuna İnternet'ten genel erişim devre dışıdır. BU erişim modunu , AWS Sanal Özel Ağı (AWS VPN) veya AWS DirectConnect ile VPC'ye uygulayabilirsiniz. AWS VPN veya DirectConnect olmadan uç noktaya erişimi kısıtlamak için, daha fazla ağ ayarlamadan bağlantıları sınırlamak için genel uç noktaya CIDR kısıtlamaları ekleyebilirsiniz.

Bağlantı seçenekleri hakkında daha fazla bilgi için bkz . Yalnızca Özel API Sunucusuna Erişme.

API sunucusuna AKS ağı erişimi

AKS'de Kubernetes API'sine ağ erişiminin güvenliğini sağlamak için özel bir AKS kümesi veya yetkili IP aralıkları olmak üzere iki seçenek vardır.

Özel AKS kümesi

AKS özel kümesi, API sunucusu ile düğüm havuzları arasındaki ağ trafiğinin sanal ağ içinde kalmasını sağlar. Özel AKS kümesinde, denetim düzlemi veya API sunucusu yalnızca aynı sanal ağda bulunan bir Azure özel uç noktası aracılığıyla erişilebilen bir iç IP adresine sahiptir. Aynı sanal ağdaki herhangi bir sanal makine (VM), özel uç nokta üzerinden denetim düzlemiyle özel olarak iletişim kurabilir. Denetim düzlemi veya API sunucusu Azure tarafından yönetilen abonelikte barındırılırken AKS kümesi ve düğüm havuzları müşterinin aboneliğindedir.

Aşağıdaki diyagramda özel küme yapılandırması gösterilmektedir.

Özel aks kümesini gösteren diyagram.

Bu mimarinin bir Visio dosyasını indirin.

Özel bir AKS kümesi sağlamak için AKS kaynak sağlayıcısı, özel bir DNS bölgesindeki düğüm kaynak grubu için özel bir tam etki alanı adı (FQDN) oluşturur. İsteğe bağlı olarak AKS, Azure genel DNS bölgesinde karşılık gelen adres (A) kaydıyla bir genel FQDN de oluşturabilir. Aracı düğümleri, API sunucusuyla A iletişim için özel uç nokta IP adresini çözümlemek üzere özel DNS bölgesindeki kaydı kullanır.

AKS kaynak sağlayıcısı düğüm kaynak grubunda özel DNS bölgesi oluşturabilir veya özel DNS bölgesini oluşturup kaynak kimliğini sağlama sistemine geçirebilirsiniz. Terraform'u Azure, Bicep, ARM şablonları, Azure CLI, Azure PowerShell modülü veya Azure REST API ile kullanarak kümeyi oluştururken özel küme oluşturabilirsiniz.

Sağlama sırasında veya mevcut kümelerde parametresiyle --enable-public-fqdnaz aks update komutunu kullanarak API sunucusu için genel FQDN'yi etkinleştirebilirsiniz. Genel FQDN'yi etkinleştirirseniz, Azure DevOps şirket içinde barındırılan aracı veya GitHub Actions şirket içinde barındırılan çalıştırıcı gibi sunucuya erişen tüm VM'ler, kümeyi barındıran aynı sanal ağda ya da sanal ağ eşlemesi veya siteden siteye VPN aracılığıyla bağlanan bir ağda olmalıdır.

Özel aks kümesi için API sunucusunun genel FQDN'sini devre dışı bırakırsınız. Özel denetim düzlemiyle iletişim kurmak için vm'nin aynı sanal ağda veya özel DNS bölgesine sanal ağ bağlantısı olan eşlenmiş bir sanal ağda olması gerekir. A Özel DNS bölgesindeki kayıt, API sunucusunun FQDN'sini temel alınan denetim düzlemiyle iletişim kuran özel uç nokta IP adresine çözümler. Daha fazla bilgi için bkz. Özel Azure Kubernetes Service kümesi oluşturma.

Özel küme dağıtım seçenekleri

AKS kaynak sağlayıcısı, özel AKS kümesi dağıtımını özelleştirmek için aşağıdaki parametreleri kullanıma sunar:

  • authorizedIpRanges (dize) izin verilen IP aralıklarını CIDR biçiminde belirtir.
  • disableRunCommand (boole), küme için komutun run devre dışı bırakılıp bırakılmayacağını belirtir.
  • enablePrivateCluster (boole), kümenin özel olarak oluşturulup oluşturulmayacağını belirtir.
  • enablePrivateClusterPublicFQDN (boole), özel küme için başka bir genel FQDN oluşturulup oluşturulmayacağını belirtir.
  • privateDnsZone (dize) düğüm kaynak grubunda özel bir DNS bölgesi belirtir. Bir değer belirtmezseniz, kaynak sağlayıcısı bölgeyi oluşturur. Aşağıdaki değerleri belirtebilirsiniz:
    • System varsayılan değerdir.
    • None varsayılan olarak genel DNS'yi kullanır, bu nedenle AKS özel dns bölgesi oluşturmaz.
    • <Your own private DNS zone resource ID> , veya biçiminde privatelink.<region>.azmk8s.io oluşturduğunuz bir özel DNS bölgesi kullanır <subzone>.privatelink.<region>.azmk8s.io.

Aşağıdaki tabloda, özel AKS kümesi dağıtmaya yönelik DNS yapılandırma seçenekleri gösterilmektedir:

bölge seçeneklerini Özel DNS enablePrivateClusterPublicFQDN: true enablePrivateClusterPublicFQDN: false
Sistem Aracı düğümleri ve AKS kümesi sanal ağındaki veya özel DNS bölgesine bağlı herhangi bir sanal ağdaki diğer vm'ler, özel uç noktanın özel IP adresini çözümlemek için özel DNS bölgesi A kaydını kullanın.

Diğer tüm VM'ler API sunucusunun genel FQDN'sini kullanır.
Aracı düğümleri ve AKS kümesi sanal ağındaki veya özel DNS bölgesine bağlı herhangi bir sanal ağdaki diğer vm'ler, özel uç noktanın özel IP adresini çözümlemek için özel DNS bölgesi A kaydını kullanın.

Kullanılabilir genel API sunucusu FQDN'i yok.
Hiçbiri Aracı düğümleri de dahil olmak üzere tüm VM'ler, Azure tarafından yönetilen genel DNS bölgesindeki bir A kayıt aracılığıyla kullanılabilen API sunucusunun genel FQDN'sini kullanır. Yanlış yapılandırma. Özel AKS kümesinin, API sunucusunun ad çözümlemesi için en az bir genel veya özel DNS bölgesi olması gerekir.
<Kendi özel DNS bölgesi kaynak kimliğiniz> Aracı düğümleri ve AKS kümesi sanal ağındaki veya özel DNS bölgesine bağlı herhangi bir sanal ağdaki diğer vm'ler, özel uç noktanın özel IP adresini çözümlemek için özel DNS bölgesi A kaydını kullanın.

Diğer tüm VM'ler API sunucusunun genel FQDN'sini kullanır.
Aracı düğümleri ve AKS kümesi sanal ağındaki veya özel DNS bölgesine bağlı herhangi bir sanal ağdaki diğer vm'ler, özel uç noktanın özel IP adresini çözümlemek için özel DNS bölgesi A kaydını kullanın.

Kullanılabilir genel API sunucusu FQDN'i yok.

Özel küme bağlantısı ve yönetimi

Özel kümeye ağ bağlantısı kurmak için çeşitli seçenekler vardır.

Aynı sanal ağdaki veya eşlenmiş bir sanal ağdaki bir yönetim VM'sinden kubectl komut satırı aracını kullanarak özel bir AKS kümesini yönetebilirsiniz.

Sıçrama kutusu yönetim VM'sine bağlanmak için Azure Bastion'ı aynı sanal ağda veya eşlenmiş bir sanal ağda kullanabilirsiniz. Azure Bastion, tarayıcınızı ve Azure portal kullanarak bir VM'ye bağlanmanızı sağlayan, tam olarak yönetilen bir hizmet olarak platformdur (PaaS). Azure Bastion, doğrudan Azure portal aktarım katmanı güvenliği (TLS) üzerinden güvenli ve sorunsuz uzak masaüstü protokolü (RDP) veya güvenli kabuk (SSH) VM bağlantısı sağlar. VM'ler Azure Bastion üzerinden bağlandığında genel IP adresine, aracıya veya özel bir istemci yazılımına ihtiyaç duymaz.

Bir sıçrama kutusu VM'sine bağlanmak zorunda kalmadan özel AKS kümenizde veya helm komutlarını çalıştırmak kubectl için az aks command invoke komutunu da kullanabilirsiniz.

Yetkili IP aralıkları

Küme güvenliğini iyileştirmeye ve API sunucusuna yönelik saldırıları en aza indirmeye yönelik ikinci seçenek , yetkili IP aralıklarını kullanmaktır. Yetkili IP'ler, genel AKS kümesinin denetim düzlemine erişimi bilinen IP adresleri ve CIDR'ler listesiyle kısıtlar. Bu seçeneği kullandığınızda API sunucusu genel kullanıma sunulmaya devam eder ancak erişim sınırlıdır. Daha fazla bilgi için bkz. Azure Kubernetes Service(AKS) içinde yetkili IP adresi aralıklarını kullanarak API sunucusuna güvenli erişim.

Aşağıdaki az aks update Azure CLI komutu IP aralıklarını yetkiler:

 az aks update \
     --resource-group myResourceGroup \
     --name myAKSCluster \
     --api-server-authorized-ip-ranges  73.140.245.0/24

AKS bağlantısında dikkat edilmesi gerekenler

  • AKS özel kümesi, yetkili IP'lerden daha yüksek güvenlik ve yalıtım sağlar. Ancak, mevcut bir genel AKS kümesini özel bir kümeye dönüştüremezsiniz. Mevcut herhangi bir AKS kümesi için yetkili IP'leri etkinleştirebilirsiniz.

  • Özel API sunucusu uç noktasına yetkili IP aralıkları uygulayamazsınız. Yetkili IP'ler yalnızca genel API sunucusuna uygulanır.

  • Özel kümeler Azure DevOps tarafından barındırılan aracıları desteklemez. Şirket içinde barındırılan aracıları kullanmayı göz önünde bulundurun.

  • Azure Container Registry özel bir AKS kümesiyle çalışmasını sağlamak için, küme sanal ağında kapsayıcı kayıt defteri için özel bir bağlantı ayarlayın. Veya Container Registry sanal ağı ile özel kümenin sanal ağı arasında eşleme ayarlayın.

  • Azure Özel Bağlantı hizmet sınırlamaları özel kümeler için geçerlidir.

  • Özel bir kümenin müşteri alt ağındaki özel uç noktayı siler veya değiştirirseniz, küme çalışmayı durdurur.

Katkıda Bulunanlar

Bu makale Microsoft tarafından korunur. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazarlar:

Diğer katkıda bulunanlar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar

Aşağıdaki başvurular, güvenli bir API ile AKS kümelerini dağıtmak için belgelere ve otomasyon örneklerine bağlantılar sağlar: