Azure Kubernetes Service (AKS) kümesini korumaya yardımcı olmak için Azure Güvenlik Duvarı kullanma

Azure Firewall
Azure Kubernetes Service (AKS)
Azure Private Link
Azure Virtual Network
Azure DevOps

Bu kılavuzda Terraform ve Azure DevOps kullanarak merkez-uç ağ topolojisinde özel AKS kümesinin nasıl oluşturulacağı açıklanır. Azure Güvenlik Duvarı, Azure Kubernetes Service (AKS) kümesine gelen ve bu kümeden gelen trafiği incelemek için kullanılır. Küme, merkez sanal ağıyla eşlenen bir veya daha fazla uç sanal ağı tarafından barındırılır.

Mimari

Diagram that shows an architecture that has a private A K S cluster in a hub-and-spoke network topology.

Bu mimarinin bir Visio dosyasını indirin.

İş Akışı

Terraform modülleri , barındırdığı dört alt ağa sahip yeni bir sanal ağ dağıtmak için kullanılır:

  • AKS kümesi (AksSubnet).
  • Atlama kutusu sanal makinesi (VM) ve özel uç noktalar (VmSubnet).
  • Application Gateway WAF2 (AppGatewaySubnet).
  • Azure Bastion (AzureBastionSubnet).

AKS kümesi, yük dengeleyiciler ve Azure'daki yönetilen diskler gibi ek kaynaklar oluşturmak için kullanıcı tanımlı yönetilen kimliği kullanır. Terraform modülleri, isteğe bağlı olarak şu özelliklere sahip bir AKS kümesi dağıtmanıza olanak sağlar:

AKS kümesi aşağıdaki havuzlardan oluşur:

  • Yalnızca kritik sistem podlarını ve hizmetlerini barındıran bir sistem düğümü havuzu
  • Kullanıcı iş yüklerini ve yapıtlarını barındıran bir kullanıcı düğümü havuzu

AKS kümesini barındıran sanal ağda bir VM dağıtılır. AKS'yi özel küme olarak dağıttığınızda, sistem yöneticileri kubernetes komut satırı aracı aracılığıyla kümeyi yönetmek için bu VM'yi kullanabilir. VM'nin önyükleme tanılama günlükleri bir Azure Depolama hesabında depolanır.

Azure Bastion konağı, SSL üzerinden atlama kutusu VM'sine gelişmiş güvenlik SSH bağlantısı sağlar. Azure Container Registry kapsayıcı görüntülerini ve yapıtlarını (Helm grafikleri gibi) oluşturmak, depolamak ve yönetmek için kullanılır.

Mimari, DNAT kuralları, ağ kuralları ve uygulama kuralları aracılığıyla gelen ve giden trafiği denetlemek için kullanılan bir Azure Güvenlik Duvarı içerir. Ayrıca tehdit bilgileri tabanlı filtrelemeyi kullanarak iş yüklerinin korunmasına da yardımcı olur. Azure Güvenlik Duvarı ve Bastion, özel AKS kümesini barındıran sanal ağ ile eşlenmiş bir merkez sanal ağına dağıtılır. Özel AKS kümesinden giden trafiği Azure Güvenlik Duvarı yönlendirmek için yol tablosu ve kullanıcı tanımlı yollar kullanılır.

Dekont

Gelişmiş tehdit koruması sağladığından Azure Güvenlik Duvarı Premium SKU'su kullanmanızı kesinlikle öneririz.

Key Vault, Microsoft Entra İş Yükü Kimliği, Gizli Dizi Deposu CSI Sürücüsü veya Dapr aracılığıyla anahtarları, sertifikaları ve gizli dizileri almak için AKS üzerinde çalışan iş yükleri tarafından gizli dizi deposu olarak kullanılır. Azure Özel Bağlantı, AKS iş yüklerinin sanal ağdaki özel bir uç nokta üzerinden Azure Key Vault gibi Azure PaaS hizmetlerine erişmesini sağlar.

Topoloji, bu hizmetler için özel uç noktaları ve özel DNS bölgelerini içerir:

  • Azure Blob Depolama hesabı
  • Container Registry
  • Anahtar Kasası
  • Kubernetes kümesinin API sunucusu

AKS kümesini barındıran merkez-uç sanal ağları ile daha önce açıklanan özel DNS bölgeleri arasında bir sanal ağ bağlantısı vardır.

Log Analytics çalışma alanı, Azure hizmetlerinden tanılama günlüklerini ve ölçümlerini toplamak için kullanılır.

Bileşenler

  • Azure Güvenlik Duvarı, Azure'da çalışan bulut iş yükleri için tehdit koruması sağlayan bulutta yerel, akıllı bir ağ güvenlik duvarı güvenlik hizmetidir. Yerleşik yüksek kullanılabilirlik oranına ve kısıtlamasız bulut ölçeklenebilirliğine sahip, tam durum bilgisi olan bir hizmet olarak güvenlik duvarıdır. Hem doğu-batı hem de kuzey-güney trafik denetimi sağlar.

  • Container Registry , açık kaynak Docker Registry 2.0'ı temel alan yönetilen, özel bir Docker kayıt defteri hizmetidir. Mevcut kapsayıcı geliştirme ve dağıtım işlem hatlarınızla Azure kapsayıcı kayıt defterlerini kullanabilir veya Azure'da kapsayıcı görüntüleri oluşturmak için Container Registry Görevleri'ni kullanabilirsiniz.

  • Azure Kubernetes Service , işletim yükünü Azure'a devrederek Yönetilen Kubernetes kümelerinin Azure'da dağıtılmasına basitleştirilir. Azure, barındırılan bir Kubernetes hizmeti olarak sistem durumu izleme ve bakım gibi kritik görevleri üstlenir. Kubernetes ana makineleri Azure tarafından yönetildiğinden, aracı düğümlerini yalnızca siz yönetir ve korursunuz.

  • Key Vault api anahtarları, parolalar, sertifikalar ve şifreleme anahtarları gibi gizli dizilere erişimi depolar ve denetler ve gelişmiş güvenlik sağlar. Key Vault ayrıca Azure ve dahili bağlı kaynaklarınız ile kullanmak üzere genel ve özel Aktarım Katmanı Güvenliği/Güvenli Yuva Katmanı (TLS/SSL) sertifikalarını kolayca sağlamanızı, yönetmenizi ve dağıtmanızı sağlar.

  • Azure Bastion , sanal ağınızda sağladığınız tam olarak yönetilen bir hizmet olarak platformdur (PaaS). Azure Bastion, doğrudan TLS üzerinden Azure portalından sanal ağınızdaki VM'lere gelişmiş güvenlikli Uzak Masaüstü Protokolü (RDP) ve Secure Shell (SSH) bağlantısı sağlar.

  • Azure Sanal Makineler, sanallaştırma esnekliği sağlayan isteğe bağlı, ölçeklenebilir bilgi işlem kaynakları sağlar.

  • Azure Sanal Ağ, Azure özel ağlarının temel yapı taşıdır. Sanal Ağ, Azure kaynaklarının (VM'ler gibi) gelişmiş güvenlikle birbirleriyle, İnternet'le ve şirket içi ağlarla iletişim kurmasını sağlar. Azure sanal ağı, şirket içinde bulunan geleneksel bir ağ gibidir, ancak ölçeklenebilirlik, kullanılabilirlik ve yalıtım gibi Azure altyapısı avantajlarını içerir.

  • Sanal Ağ Arabirimleri, Azure VM'lerinin İnternet, Azure ve şirket içi kaynaklarla iletişim kurmasını sağlar. Alt VM'lerin kendi ayrılmış ağ arabirimi cihazlarına ve IP adreslerine sahip olabilmesi için bir Azure VM'sine birkaç ağ arabirimi kartı ekleyebilirsiniz.

  • Azure yönetilen diskleri, Azure'ın Azure VM'lerinde yönettiği blok düzeyinde depolama birimleri sağlar. Ultra diskler, premium katı hal sürücüleri (SSD), standart SSD'ler ve standart sabit disk sürücüleri (HDD) kullanılabilir.

  • Blob Depolama, bulut için bir nesne depolama çözümüdür. Blob Depolama, çok büyük miktarlarda yapılandırılmamış verileri depolamak için iyileştirilmiştir.

  • Özel Bağlantı, sanal ağınızdaki özel bir uç nokta üzerinden Azure PaaS hizmetlerine (örneğin Blob Depolama ve Key Vault) erişmenizi sağlar. Ayrıca, sahibi olduğunuz veya bir Microsoft iş ortağı tarafından sağlanan Azure tarafından barındırılan hizmetlere erişmek için de kullanabilirsiniz.

Alternatifler

Azure Güvenlik Duvarı yerine Azure Market üçüncü taraf güvenlik duvarı kullanabilirsiniz. Bunu yaparsanız, güvenlik duvarını AKS kümesinden gelen ve giden trafiği inceleyip izin verecek veya reddedecek şekilde düzgün bir şekilde yapılandırmak sizin sorumluluğunuzdadır.

Senaryo ayrıntıları

Üretim ortamında Kubernetes kümesiyle yapılan iletişimler, bir dizi güvenlik kuralına göre gelen ve giden ağ trafiğini izleyen ve denetleen bir güvenlik duvarı tarafından korunmalıdır. Güvenlik duvarı genellikle güvenilir ağ ile İnternet gibi güvenilmeyen bir ağ arasında bir engel oluşturur.

Terraform ve Azure DevOps kullanarak merkez-uç ağ topolojisinde özel aks kümesi oluşturabilirsiniz. Azure Güvenlik Duvarı, Azure Kubernetes Service (AKS) kümesine gelen ve bu kümeden gelen trafiği incelemek için kullanılır. Küme, merkez sanal ağıyla eşlenen bir veya daha fazla uç sanal ağı tarafından barındırılır.

Azure Güvenlik Duvarı, çok çeşitli müşteri kullanım örneklerine ve tercihlerine uygun olarak üç farklı SKU'yu destekler:

  • Azure Güvenlik Duvarı Premium, ödeme işleme gibi yüksek oranda hassas uygulamaların güvenliğini sağlamak için önerilir. Kötü amaçlı yazılım ve TLS denetimi gibi gelişmiş tehdit koruma özelliklerini destekler.
  • Azure Güvenlik Duvarı Standard, Katman 3-Katman 7 güvenlik duvarı arayan ve 30 Gb/sn'ye kadar en yoğun trafik dönemlerini işlemek için otomatik ölçeklendirmeye ihtiyaç duyan müşteriler için önerilir. Tehdit bilgileri, DNS ara sunucusu, özel DNS ve web kategorileri gibi kurumsal özellikleri destekler.
  • Azure Güvenlik Duvarı Basic, aktarım hızı 250 Mb/sn'den az olan müşteriler için önerilir.

Aşağıdaki tabloda üç Azure Güvenlik Duvarı SKU'sunun özellikleri gösterilmektedir. Daha fazla bilgi için bkz. fiyatlandırma Azure Güvenlik Duvarı.

Screenshot that shows features of the three Azure Firewall SKUs

Varsayılan olarak AKS kümeleri sınırsız giden İnternet erişimine sahiptir. Bu ağ erişimi düzeyi, AKS kümesinde çalışan düğümlerin ve hizmetlerin gerektiğinde dış kaynaklara erişmesine olanak tanır. Çıkış trafiğini kısıtlamak istiyorsanız, iyi durumdaki küme bakım görevlerini sürdürmek için sınırlı sayıda bağlantı noktası ve adresin erişilebilir durumda kalması gerekir. AKS gibi bir Kubernetes kümesinden giden trafik için güvenlik sağlamanın en kolay yolu, etki alanı adlarına göre giden trafiği denetleyebilen bir yazılım güvenlik duvarı kullanmaktır. Azure Güvenlik Duvarı giden HTTP ve HTTPS trafiğini hedefin tam etki alanı adına (FQDN) göre kısıtlayabilir. Ayrıca güvenlik duvarınızı ve güvenlik kurallarınızı bu gerekli bağlantı noktalarına ve adreslere izin verecek şekilde yapılandırabilirsiniz. Daha fazla bilgi için bkz. AKS'de küme düğümleri için çıkış trafiğini denetleme.

Benzer şekilde, paylaşılan çevre ağına dağıtılan bir Azure Güvenlik Duvarı tehdit zekası tabanlı filtrelemeyi etkinleştirerek giriş trafiğini denetleyebilir ve güvenliği geliştirebilirsiniz. Bu filtreleme, uyarılar sağlayabilir ve bilinen kötü amaçlı IP adreslerine ve etki alanlarına gelen ve giden trafiği reddedebilir.

Olası kullanım örnekleri

Bu senaryo, Kubernetes kümesine gelen ve giden trafiğin güvenliğini artırma gereksinimini ele alır.

Asimetrik yönlendirmeden kaçının

Bu çözümde Azure Güvenlik Duvarı bir merkez sanal ağına dağıtılır ve özel AKS kümesi uç sanal ağına dağıtılır. Azure Güvenlik Duvarı çıkış trafiğini denetlemek için ağ ve uygulama kuralı koleksiyonlarını kullanır. Bu durumda, Azure Güvenlik Duvarı tarafından kullanılan genel IP adreslerinden biri aracılığıyla sisteme girmek için AKS üzerinde çalışan herhangi bir hizmetin kullanıma sunduğu herhangi bir genel uç noktaya giriş trafiğini yapılandırmanız gerekir.

Paketler güvenlik duvarının genel IP adresine ulaşır, ancak özel IP adresi aracılığıyla (varsayılan yolu kullanarak) güvenlik duvarına geri döner. Bu bir sorun. Bunu önlemek için, aşağıdaki diyagramda gösterildiği gibi güvenlik duvarının genel IP adresi için kullanıcı tanımlı başka bir yol oluşturun. Güvenlik duvarının genel IP adresine giden paketler İnternet üzerinden yönlendirilir. Bu yapılandırma, güvenlik duvarının özel IP adresine giden varsayılan yolu önler.

AKS iş yüklerinizin trafiğini merkez sanal ağındaki Azure Güvenlik Duvarı yönlendirmek için şunları yapmanız gerekir:

  • Bir yönlendirme tablosu oluşturun ve kümenizin çalışan düğümlerini barındıran her alt ağ ile ilişkilendirin.
  • 0.0.0.0/0 CIDR trafiğini Azure Güvenlik Duvarı özel IP adresine iletmek için kullanıcı tanımlı bir yol oluşturun. Sonraki atlama türü için Sanal gereci belirtin.

Daha fazla bilgi için bkz. Öğretici: Azure portalını kullanarak Azure Güvenlik Duvarı dağıtma ve yapılandırma.

Diagram that shows how to avoid asymmetric routing when you use Azure Firewall in front of your workloads.

Daha fazla bilgi için bkz.

Azure DevOps kullanırken iş yüklerini özel aks kümesine dağıtma

Azure DevOps kullanıyorsanız iş yüklerinizi özel bir AKS kümesine dağıtmak için Azure DevOps Microsoft tarafından barındırılan aracıları kullanamazsınız. Api sunucusuna erişimi yoktur. İş yüklerini özel AKS kümenize dağıtmak için, özel AKS kümenizle aynı sanal ağda veya eşlenmiş bir sanal ağda Azure DevOps şirket içinde barındırılan aracıyı sağlamanız ve kullanmanız gerekir. İkinci durumda, düğüm kaynak grubundaki AKS kümesinin özel DNS bölgesi ile Azure DevOps şirket içinde barındırılan aracısını barındıran sanal ağ arasında bir sanal ağ bağlantısı oluşturduğunuzdan emin olun.

Bir sanal makineye tek bir Windows veya Linux Azure DevOps aracısı dağıtabilir veya bir Sanal Makine Ölçek Kümesi kullanabilirsiniz. Daha fazla bilgi için bkz . Azure Sanal Makine Ölçek Kümesi aracıları. Alternatif olarak, Azure Pipelines'da Docker ile bir Windows Server Core kapsayıcısı (Windows konakları için) veya Ubuntu kapsayıcısı (Linux konakları için) içinde çalışacak şekilde şirket içinde barındırılan bir aracı ayarlayabilirsiniz. Özel AKS kümenizde bir veya birden çok çoğaltması olan bir pod olarak dağıtın. Daha fazla bilgi için bkz.

Özel AKS kümenizin düğüm havuzlarını barındıran alt ağlar çıkış trafiğini yönlendirme tablosu ve kullanıcı tanımlı yol aracılığıyla bir Azure Güvenlik Duvarı yönlendirecek şekilde yapılandırılmışsa, uygun uygulama ve ağ kurallarını oluşturduğunuzdan emin olun. Bu kuralların aracı sanal makinesinde Docker, Kubectl, Azure CLI ve Helm gibi araçları indirip yüklemek için aracının dış sitelere erişmesine izin verilmelidir. Daha fazla bilgi için bkz . Docker'da şirket içinde barındırılan aracı çalıştırma ve AKS üzerinde Azure DevOps Pipeline Agent oluşturma ve dağıtma.

Diagram that shows deployment of workloads to a private AKS cluster for use with Azure DevOps.

Genel Standart Load Balancer önünde Azure Güvenlik Duvarı kullanma

Terraform modüllerindeki kaynak tanımları , Azure kaynakları Terraform denetiminin dışında değiştirildiğinde eylemleri özelleştirmek için yaşam döngüsü meta bağımsız değişkenini kullanır. ignore_changes bağımsız değişkeni, Terraform'a etiketler gibi belirli kaynak özelliklerine yönelik güncelleştirmeleri yoksaymasını bildirmek için kullanılır. Azure Güvenlik Duvarı İlkesi kaynak tanımı, terraform'un bir kural koleksiyonu veya tek bir kural oluşturulduğunda, güncelleştirildiğinde veya silindiğinde kaynağı güncelleştirmesini engelleyen bir yaşam döngüsü bloğu içerir. Benzer şekilde, Azure Route Tablosu kullanıcı tanımlı bir yol oluşturulduğunda, silindiğinde veya güncelleştirildiğinde Terraform'un kaynağı güncelleştirmesini önlemek için bir yaşam döngüsü bloğu içerir. Bu, Azure Güvenlik Duvarı İlkesi'nin DNAT, uygulama ve ağ kurallarını ve Terraform denetiminin dışında bir Azure Route Tablosunun kullanıcı tanımlı yollarını yönetmenizi sağlar.

Bu makaleyle ilişkilendirilmiş örnek, şirket içinde barındırılan bir aracı üzerinde çalışan bir Azure DevOps işlem hattı kullanarak bir iş yükünün özel AKS kümesine nasıl dağıtıldığını gösteren bir Azure DevOps CD işlem hattı içerir. Örnek, bitnami redmine proje yönetimi web uygulamasını genel helm grafiği kullanarak dağıtır. Bu diyagramda, örneğin ağ topolojisi gösterilmektedir:

Diagram that shows Azure Firewall in front of a public Standard Load Balancer.

İleti akışı şu şekildedir:

  1. AKS tarafından barındırılan web uygulaması için bir istek, genel IP yapılandırması aracılığıyla Azure Güvenlik Duvarı tarafından kullanıma sunulan bir genel IP'ye gönderilir. Hem genel IP hem de genel IP yapılandırması bu iş yüküne ayrılmıştır.
  2. Azure Güvenlik Duvarı DNAT kuralı, Azure Güvenlik Duvarı genel IP adresini ve bağlantı noktasını düğüm kaynak grubundaki AKS kümesinin Kubernetes genel Standart Load Balancer iş yükü tarafından kullanılan genel IP'ye ve bağlantı noktasına çevirir.
  3. Yük dengeleyici, isteği AKS kümesinin aracı düğümlerinden birinde çalışan Kubernetes hizmet podlarından birine gönderir.
  4. Yanıt iletisi, kullanıcı tanımlı bir yol aracılığıyla özgün çağırana geri gönderilir. Genel IP Azure Güvenlik Duvarı adres ön ekidir ve İnternet de Sonraki atlama türüdür.
  5. İş yükü tarafından başlatılan tüm giden çağrılar, varsayılan kullanıcı tanımlı yol tarafından Azure Güvenlik Duvarı özel IP adresine yönlendirilir. Adres ön eki 0.0.0.0/0, Sonraki atlama türü ise Sanal gereçtir.

Daha fazla bilgi için bkz. AKS kümesinin Genel Standart Load Balancer önünde Azure Güvenlik Duvarı kullanma.

İç Standart Load Balancer önünde Azure Güvenlik Duvarı kullanma

Bu makaleyle ilişkilendirilmiş örnekte, bir ASP.NET Core uygulaması AKS kümesi tarafından hizmet olarak barındırılır ve önünde NGINX giriş denetleyicisi bulunur. NGINX giriş denetleyicisi, AKS kümesini barındıran uç sanal ağında özel IP adresine sahip bir iç yük dengeleyici aracılığıyla kullanıma sunulur. Daha fazla bilgi için bkz . AKS'de bir iç sanal ağa giriş denetleyicisi oluşturma. Meta veri bölümündeki ek açıklamayla service.beta.kubernetes.io/azure-load-balancer-internal: "true" bir NGINX giriş denetleyicisi veya daha genel olarak bir LoadBalancer veya ClusterIP hizmet dağıttığınızda, düğüm kaynak grubu altında adlı kubernetes-internal bir iç standart yük dengeleyici oluşturulur. Daha fazla bilgi için bkz . AKS ile iç yük dengeleyici kullanma. Aşağıdaki diyagramda gösterildiği gibi, test web uygulaması ayrılmış bir Azure genel IP adresi aracılığıyla Azure Güvenlik Duvarı tarafından kullanıma sunulur.

Diagram that shows Azure Firewall in front of an internal Standard Load Balancer.

İleti akışı şu şekildedir:

  1. AKS tarafından barındırılan test web uygulaması için bir istek, genel IP yapılandırması aracılığıyla Azure Güvenlik Duvarı tarafından kullanıma sunulan bir genel IP'ye gönderilir. Hem genel IP hem de genel IP yapılandırması bu iş yüküne ayrılmıştır.
  2. Azure Güvenlik Duvarı DNAT kuralı, Azure Güvenlik Duvarı genel IP'sini ve bağlantı noktasını düğüm kaynak grubundaki AKS kümesinin iç Standart Load Balancer NGINX giriş denetleyicisi tarafından kullanılan özel IP'ye ve bağlantı noktasına çevirir.
  3. İstek, iç yük dengeleyici tarafından AKS kümesinin aracı düğümlerinden birinde çalışan Kubernetes hizmet podlarından birine gönderilir.
  4. Yanıt iletisi, kullanıcı tanımlı bir yol aracılığıyla özgün çağırana geri gönderilir. Adres ön eki 0.0.0.0/0, Sonraki atlama türü ise Sanal gereçtir.
  5. İş yükü tarafından başlatılan tüm giden çağrılar, kullanıcı tanımlı yolun özel IP adresine yönlendirilir.

Daha fazla bilgi için bkz. İç Standart Load Balancer önünde Azure Güvenlik Duvarı kullanma.

Dikkat edilmesi gereken noktalar

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.

Aşağıdaki önemli noktalardan bazıları, AKS kümesinin korumasını geliştirmek için Azure Güvenlik Duvarı kullanmaya özgü olmayan genel önerilerdir. Bunların bu çözümün temel gereksinimleri olduğuna inanıyoruz. Bu, güvenlik, performans, kullanılabilirlik ve güvenilirlik, depolama, hizmet ağı ve izleme konuları için geçerlidir.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik sütununa genel bakış.

Azure platformu, ağ yetkisiz erişim ve dağıtılmış hizmet reddi (DDoS) saldırıları gibi çeşitli tehditlere karşı geliştirilmiş koruma sağlar. AKS tarafından barındırılan ve genel HTTPS uç noktasını kullanıma sunan web uygulamaları ve hizmetleri için koruma sağlamak için bir web uygulaması güvenlik duvarı (WAF) kullanmanız gerekir. SQL ekleme, siteler arası betik oluşturma ve diğer web açıklarından yararlanma gibi yaygın tehditlere karşı koruma sağlamanız gerekir. Bunu yapmak için Open Web Application Security Project (OWASP) kurallarını ve özel kuralları kullanın. Azure Web Uygulaması Güvenlik Duvarı, web uygulamalarınız için yaygın açıklardan yararlanma ve güvenlik açıklarına karşı geliştirilmiş merkezi koruma sağlar. Azure WAF'yi Azure Uygulaması lication Gateway, Azure Front Door ve Azure Content Delivery Network ile dağıtabilirsiniz.

DDoS saldırıları, uygulamalarını buluta taşımakta olan kuruluşların karşılaştığı en büyük kullanılabilirlik ve güvenlik endişeleri arasındadır. DDoS saldırısı, uygulamanın kaynaklarını tüketmeye çalışır ve bu da uygulamanın geçerli kullanıcılar tarafından kullanılamaz duruma gelmesini sağlar. DDoS saldırıları, İnternet üzerinden herkese açık olan herhangi bir uç noktaya hedeflenebilir. Azure'daki her özellik, ek ücret ödemeden Azure DDoS altyapı koruması aracılığıyla koruma içerir. Genel olarak dağıtılan Azure ağının ölçeği ve kapasitesi, her zaman açık trafik izleme ve gerçek zamanlı azaltma yoluyla yaygın ağ katmanı saldırılarına karşı geliştirilmiş savunma sağlar. DDoS altyapı koruması için kullanıcı yapılandırması veya uygulama değişikliği gerekmez. Azure DNS gibi PaaS hizmetleri de dahil olmak üzere tüm Azure hizmetlerinin korunmasına yardımcı olur.

Uygulama tasarımı en iyi yöntemleriyle birlikte Azure DDoS Ağ Koruması, DDoS saldırılarına karşı daha fazla savunma sağlamak için gelişmiş DDoS azaltma özellikleri sağlar. Herhangi bir çevre sanal ağında Azure DDOS Ağ Koruması'nı etkinleştirmeniz gerekir.

Güvenlikle ilgili dikkat edilmesi gereken bazı ek noktalar şunlardır:

  • KEY Vault, Azure Service Bus ve Azure SQL Veritabanı gibi AKS iş yükleri tarafından kullanılan herhangi bir PaaS hizmeti için özel bir uç nokta oluşturun. Uygulamalar ve bu hizmetler arasındaki trafik genel İnternet'e açık değildir. AKS kümesi sanal ağı ile özel uç nokta üzerinden PaaS hizmetinin bir örneği arasındaki trafik Microsoft omurga ağına gider, ancak iletişim Azure Güvenlik Duvarı geçmez. Bu mekanizma, veri sızıntısına karşı daha iyi güvenlik ve daha iyi koruma sağlar. Daha fazla bilgi için bkz. Azure Özel Bağlantı nedir?.
  • AKS kümesinin önünde Application Gateway kullandığınızda, AKS üzerinde çalışan genel kullanıma yönelik iş yüklerinin saldırılara karşı korunmasına yardımcı olmak için bir Web Uygulaması Güvenlik Duvarı İlkesi kullanın.
  • Hangi bileşenlerin birbiriyle iletişim kurabileceğini denetleyerek hizmet içi iletişimleri ayırmak ve güvenli bir şekilde sağlamaya yardımcı olmak için ağ ilkelerini kullanın. Varsayılan olarak, Kubernetes kümesindeki tüm podlar sınırlama olmadan trafik gönderebilir ve alabilir. Güvenliği geliştirmek için Azure ağ ilkelerini veya Calico ağ ilkelerini kullanarak farklı mikro hizmetler arasındaki trafik akışını denetleyan kurallar tanımlayabilirsiniz. Daha fazla bilgi için bkz . ağ ilkesi.
  • AKS düğümlerinize uzak bağlantıyı kullanıma sunma. Yönetim sanal ağında bir savunma konağı veya atlama kutusu oluşturun. Trafiği AKS kümenize yönlendirmek için savunma ana bilgisayarını kullanın.
  • AKS'de yetkili IP adresi aralıklarını kullanarak üretim ortamınızda özel bir AKS kümesi kullanmayı veya API sunucusuna en azından güvenli erişimi kullanmayı göz önünde bulundurun. Bir ortak kümede yetkili IP adresi aralıkları kullandığınızda, Azure Güvenlik Duvarı ağ kuralı koleksiyonundaki tüm çıkış IP adreslerine izin verin. Küme içi işlemler Kubernetes API sunucusunu kullanır.
  • Azure Güvenlik Duvarı DNS ara sunucusunu etkinleştirirseniz, Azure Güvenlik Duvarı bir veya daha fazla sanal ağdaki DNS sorgularını işleyebilir ve seçtiğiniz bir DNS sunucusuna iletebilirsiniz. Bu işlevsellik, ağ kurallarında güvenilir FQDN filtrelemesi için çok önemlidir ve gereklidir. DNS proxy'sini Azure Güvenlik Duvarı ve Güvenlik Duvarı İlkesi ayarlarında etkinleştirebilirsiniz. DNS proxy günlükleri hakkında daha fazla bilgi edinmek için bkz. Azure Güvenlik Duvarı günlük ve ölçümler.
  • Application Gateway'in önünde Azure Güvenlik Duvarı kullandığınızda, Kubernetes giriş kaynağınızı HTTPS aracılığıyla iş yüklerini kullanıma sunma amacıyla yapılandırabilir ve her kiracı için ayrı bir alt etki alanı ve dijital sertifika kullanabilirsiniz. Application Gateway Giriş Denetleyicisi (AGIC), Application Gateway dinleyicisini Güvenli Yuva Katmanı (SSL) sonlandırması için otomatik olarak yapılandırıyor.
  • NGINX giriş denetleyicisi gibi bir hizmet ara sunucusunun önünde Azure Güvenlik Duvarı kullanabilirsiniz. Bu denetleyici Kubernetes hizmetleri için ters ara sunucu, yapılandırılabilir trafik yönlendirme ve TLS sonlandırma sağlar. Tek tek Kubernetes hizmetlerinde giriş kurallarını ve yolları yapılandırmak için Kubernetes giriş kaynakları kullanılır. Giriş denetleyicisi ve giriş kuralları kullanarak, trafiği bir Kubernetes kümesindeki birden çok hizmete yönlendirmek için tek bir IP adresi kullanabilirsiniz. Tanınan bir sertifika yetkilisi kullanarak TLS sertifikalarını oluşturabilirsiniz. Alternatif olarak, dinamik genel IP adresi veya statik genel IP adresi olan TLS sertifikalarını otomatik olarak oluşturmak için Let's Encrypt komutunu kullanabilirsiniz. Daha fazla bilgi için bkz . AKS'de HTTPS giriş denetleyicisi oluşturma ve kendi TLS sertifikalarınızı kullanma.
  • Azure Güvenlik Duvarı operatörü ile küme ve iş yükü ekipleri arasında sıkı koordinasyon hem ilk küme dağıtımı için hem de iş yükü ve küme gereksinimleri geliştikçe sürekli olarak gereklidir. Bu, özellikle iş yükleri tarafından istemcilerinin kimliğini doğrulamak için kullanılan OAuth 2.0 ve OpenID Bağlan gibi kimlik doğrulama mekanizmalarını yapılandırdığınızda geçerlidir.
  • Bu makalede açıklanan ortamın güvenliğini sağlamaya yardımcı olmak için aşağıdaki yönergeleri kullanın:

Kullanılabilirlik ve güvenilirlik

Güvenilirlik, uygulamanızın müşterilerinize sağladığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış.

Burada kullanılabilirlik ve güvenilirlikle ilgili dikkat edilmesi gerekenler AKS'deki çok kiracılılık özelliklerine özgü değildir. Bunların bu çözüm için temel gereksinimler olduğuna inanıyoruz. AKS kümenizin ve iş yüklerinizin kullanılabilirliğini iyileştirmek için aşağıdaki yöntemleri göz önünde bulundurun.

Bölge içi dayanıklılık

  • Dağıtım sırasında, Azure Güvenlik Duvarı daha fazla kullanılabilirlik için birden çok kullanılabilirlik alanına yayılacak şekilde yapılandırabilirsiniz. Çalışma süresi yüzdeleri için bkz. Azure Güvenlik Duvarı SLA. Bu yapılandırma SLA'yı etkilese de, yakınlık açısından Azure Güvenlik Duvarı belirli bir bölgeyle ilişkilendirebilirsiniz. Kullanılabilirlik alanına dağıtılan bir güvenlik duvarı için ek ücret alınmaz. Ancak, kullanılabilirlik alanlarıyla ilişkili gelen ve giden veri aktarımları için ek maliyetler vardır. Daha fazla bilgi için bkz . Bant genişliği fiyatlandırma ayrıntıları.
  • AKS kümenizin düğüm havuzlarını bir bölgedeki tüm kullanılabilirlik alanlarına dağıtmayı göz önünde bulundurun. Düğüm havuzlarının önünde bir Azure Standart Load Balancer veya Application Gateway kullanın. Bu topoloji, tek bir veri merkezi kesintisi olduğunda daha iyi dayanıklılık sağlar. Küme düğümleri, bir bölgedeki üç ayrı kullanılabilirlik alanında birden çok veri merkezine dağıtılır.
  • Bölge içi dayanıklılık ve yüksek kullanılabilirlik için Container Registry'de bölge yedekliliğini etkinleştirin.
  • Podların AKS kümenizde bölgeler, kullanılabilirlik alanları ve düğümler gibi hata etki alanları arasında nasıl yayıldığını denetlemek için pod topolojisi yayma kısıtlamalarını kullanın.
  • Görev açısından kritik iş yüklerini barındıran AKS kümeleri için Çalışma Süresi SLA'sını kullanmayı göz önünde bulundurun. Çalışma Süresi SLA'sı, bir küme için finansal olarak yedeklenmiş ve daha yüksek bir SLA'ya olanak tanıyan isteğe bağlı bir özelliktir. Çalışma süresi SLA'sı, kullanılabilirlik alanlarını kullanan kümeler için Kubernetes API sunucu uç noktasının yüksek kullanılabilirliğini garanti eder. Kullanılabilirlik alanlarını kullanmayan ancak SLA daha düşük olan kümeler için de kullanabilirsiniz. SLA ayrıntıları için bkz . Çalışma Süresi SLA'sı. AKS, SLA gereksinimlerinin karşılanmasını sağlamak için güncelleştirme ve hata etki alanları genelinde ana düğüm çoğaltmaları kullanır.

Olağanüstü durum kurtarma ve iş sürekliliği

  • Çözümünüzü bir coğrafyadaki en az iki eşleştirilmiş Azure bölgesine dağıtmayı göz önünde bulundurun. İş sürekliliğini ve olağanüstü durum kurtarmayı (DR) garanti etmek için etkin/etkin veya etkin/pasif yönlendirme yöntemiyle Azure Traffic Manager veya Azure Front Door gibi genel bir yük dengeleyici kullanın.
  • Azure Güvenlik Duvarı bölgesel bir hizmettir. Çözümünüzü iki veya daha fazla bölgeye dağıtırsanız, her bölgede bir Azure Güvenlik Duvarı oluşturmanız gerekir. Tüm bölgesel merkezler için geçerli olan kuruluş tarafından zorunlu kılınan kuralları dahil etmek için genel bir Azure Güvenlik Duvarı İlkesi oluşturabilirsiniz. Bu ilkeyi bölgesel Azure ilkeleri için üst ilke olarak kullanabilirsiniz. Boş olmayan üst ilkelerle oluşturulan ilkeler, tüm kural koleksiyonlarını üst ilkeden devralır. Üst ilkeden devralınan ağ kuralı koleksiyonları her zaman yeni bir ilkenin parçası olarak tanımlanan ağ kuralı koleksiyonlarının üzerinde önceliklendirilir. Aynı mantık uygulama kuralı koleksiyonları için de geçerlidir. Ancak, ağ kuralı koleksiyonları her zaman devralmadan bağımsız olarak uygulama kuralı koleksiyonlarından önce işlenir. Standart ve Premium ilkeleri hakkında daha fazla bilgi için bkz. Azure Güvenlik Duvarı Yöneticisi ilkesine genel bakış.
  • Bir Soru-Cevap ortamında bölgesel yük devretme işlemlerini betiklemeye, belgeleyip düzenli aralıklarla test etmeye dikkat edin. Bunun yapılması, çekirdek bir hizmetin birincil bölgedeki bir kesintiden etkilenmesi durumunda öngörülemeyen sorunları önlemeye yardımcı olur. Bu testler ayrıca dr yaklaşımının RPO/RTO hedeflerini karşılayıp karşılamadığını, yük devretme için gereken nihai el ile işlemler ve müdahalelerle birlikte denetler.
  • Beklendiği gibi çalıştıklarını doğrulamak için yeniden çalışma yordamlarını test edin.
  • Kapsayıcı görüntülerinizi Container Registry'de depolayın. Kayıt defterini her AKS bölgesine coğrafi olarak çoğaltın. Daha fazla bilgi için bkz . Azure Container Registry'de coğrafi çoğaltma.
  • Mümkünse, hizmet durumunu kapsayıcıda depolamaktan kaçının. Bunun yerine, çok bölgeli çoğaltmayı destekleyen bir Azure PaaS kullanın.
  • Azure Depolama kullanıyorsanız, depolama alanınızı birincil bölgeden yedekleme bölgesine geçirmek için bir işlemi hazırlayın ve test edin.

Operasyonel mükemmellik

Operasyonel mükemmellik, bir uygulamayı dağıtan ve üretimde çalışır durumda tutan operasyon süreçlerini kapsar. Daha fazla bilgi için bkz . Operasyonel mükemmellik sütununa genel bakış.

DevOps

  • Sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hattında Helm grafiği kullanarak iş yüklerinizi AKS'ye dağıtın. GitHub Actions veya Azure DevOps gibi bir DevOps sistemi kullanın. Daha fazla bilgi için bkz . Azure Kubernetes Service'i derleme ve dağıtma.
  • Bir uygulamayı kullanıcıların kullanımına açmadan önce düzgün bir şekilde test etmek için uygulama yaşam döngüsü yönetiminizde A/B test ve kanarya dağıtımlarını kullanın. Trafiği aynı hizmetin farklı sürümlerine bölmek için kullanabileceğiniz çeşitli teknikler vardır. Alternatif olarak, bir hizmet ağı uygulaması tarafından sağlanan trafik bölme özelliklerini kullanabilirsiniz. Daha fazla bilgi için bkz . Linkerd Traffic Split ve Istio Traffic Management.
  • Kümeye dağıtılan özel Docker görüntülerini depolamak için Azure Container Registry'yi veya başka bir kapsayıcı kayıt defterini (Docker Hub gibi) kullanın. AKS, Microsoft Entra kimliğini kullanarak Azure Container Registry ile kimlik doğrulaması yapabilir.
  • Üretim ortamınızın ağ topolojisini ve güvenlik duvarı kurallarını yansıtan ayrı bir üretim öncesi ortamda iş yüklerinizde girişi ve çıkışı test edin. Aşamalı dağıtım stratejisi, yeni bir özelliği veya ağ kuralını üretim ortamına sunmadan önce ağ veya güvenlik sorunlarını algılamanıza yardımcı olur.

İzleme

Azure Güvenlik Duvarı, güvenlik duvarı tarafından işlenen gelen ve giden trafiği günlüğe kaydetmek için Azure İzleyici ile tamamen tümleşiktir. Daha fazla bilgi için bkz. tehdit bilgileri tabanlı filtreleme Azure Güvenlik Duvarı.

Aşağıdaki izleme konuları AKS'deki çok kiracılılık açısından özel değildir, ancak bunların bu çözüm için temel gereksinimler olduğuna inanıyoruz.

  • AKS kümesinin ve iş yüklerinin sistem durumunu izlemek için Kapsayıcı içgörülerini kullanın.
  • Tanılama günlüklerini ve ölçümlerini toplamak için tüm PaaS hizmetlerini (Container Registry ve Key Vault gibi) yapılandırın.

Maliyet iyileştirme

Sonuçta elde edilen mimarinin maliyeti aşağıdaki yapılandırma ayrıntılarına bağlıdır:

  • Hizmet katmanları
  • Ölçeklenebilirlik (belirli bir talebi desteklemek için hizmetler tarafından dinamik olarak ayrılan örnek sayısı)
  • Otomasyon betikleri
  • Olağanüstü durum kurtarma düzeyiniz

Bu yapılandırma ayrıntılarını değerlendirdikten sonra maliyetlerinizi tahmin etmek için Azure fiyatlandırma hesaplayıcısını kullanın. Daha fazla fiyatlandırma iyileştirme seçeneği için Microsoft Azure İyi Tasarlanmış Çerçeve'de maliyet iyileştirme ilkelerine bakın.

Bu senaryoyu dağıtın

Bu senaryonun kaynak kodu GitHub'da kullanılabilir. Bu çözüm açık kaynak ve MIT Lisansı ile sağlanır.

Önkoşullar

Çevrimiçi dağıtımlar için bir Azure hesabına ihtiyacınız vardır. Hesabınız yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun. Azure DevOps kullanarak Terraform modüllerini dağıtmadan önce bu gereksinimleri karşılamanız gerekir:

  • Terraform durum dosyasını bir Azure depolama hesabında depolayın. Uzak Terraform durumunu, durum kilitlemeyi ve bekleyen şifrelemeyi depolamak için depolama hesabı kullanma hakkında daha fazla bilgi için bkz. Terraform durumunu Azure Depolama'de depolama.
  • Azure DevOps projesi oluşturma. Daha fazla bilgi için bkz . Azure DevOps'ta proje oluşturma.
  • Azure aboneliğinize bir Azure DevOps hizmeti bağlantısı oluşturun. Hizmet bağlantısını oluştururken Hizmet Sorumlusu Kimlik Doğrulaması (SPA) veya Azure tarafından yönetilen bir hizmet kimliği kullanabilirsiniz. Her iki durumda da Azure DevOps tarafından Azure aboneliğinize bağlanmak için kullanılan hizmet sorumlusuna veya yönetilen kimliğe aboneliğin tamamında sahip rolü atandığından emin olun.

Azure'a dağıtım

  1. Azure aboneliği bilgilerinizin yararlı olması.

  2. workbench GitHub deposunu kopyalayın:

    git clone https://github.com/Azure-Samples/private-aks-cluster-terraform-devops.git
    
  3. README.md dosyasında sağlanan yönergeleri izleyin.

Katkıda Bulunanlar

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

Asıl yazar:

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

Sonraki adımlar

Microsoft Azure İyi Tasarlanmış Çerçeve'de AKS için önerileri ve en iyi yöntemleri gözden geçirin:

Azure Güvenlik Duvarı

Azure Kubernetes Service

Mimari kılavuz

Başvuru mimarileri