Azure Kubernetes Uygulama Ağı güvenliğine genel bakış (önizleme)

Önemli

AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "mevcut olduğu şekilde" sağlanmakta olup, hizmet seviyesi anlaşmalarına ve sınırlı garantilere dahil edilmemektedir. AKS önizlemeleri, müşteri desteği ekibi tarafından maksimum çaba gösterilerek kısmen ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:

Azure Kubernetes Application Network, otomatik karşılıklı TLS (mTLS) ve kimlik tabanlı yetkilendirme aracılığıyla bağlı Azure Kubernetes Service (AKS) kümelerindeki hizmetler arasındaki iletişimin güvenliğini sağlar. Aktarım sırasında FIPS uyumlu şifreleme ile el ile yapılandırma olmadan şifrelenmiş, kimliği doğrulanmış ve açıkça yetkilendirilmiş hizmet-hizmet iletişimini etkinleştirmek için iş yükü kimlikleri oluşturur ve sertifika verme, döndürme ve doğrulamayı yönetir.

Bu makalede mTLS, iş yükü kimlikleri, sertifika yönetimi ve yetkilendirme ilkeleri dahil olmak üzere Azure Kubernetes Uygulama Ağı'ndaki güvenlik özelliklerine genel bir bakış sağlanır. Ayrıca Azure Kubernetes Uygulama Ağı ortamınızda güvenli iletişim uygulamaya yönelik sınırlamaları ve sonraki adımları özetler.

Sınırlamalar

  • Sertifikalar şu anda Azure Kubernetes Application Network tarafından yönetilen sertifika yetkilisi (CA) tarafından verilir ve genel CA'ya zincirlenmez.

mTLS

Uygulama Ağı, iş yükleri arasında kimlik tabanlı, şifreli iletişim sağlamak için mTLS kullanır. Uygulama Ağı bağlı kümesindeki her hizmet, kimliğini kanıtlamasına ve aynı Uygulama Ağı'ndaki diğer hizmetlerle güvenilir, şifreli bağlantılar kurmasına olanak tanıyan bir sertifikayı otomatik olarak alır. Aktarımdaki şifreleme FIPS uyumlu şifrelemeyi kullanır.

mTLS geçiş stratejisi

Uygulama Ağı şu anda hem şifrelenmiş hem de şifrelenmemiş trafiğe izin verir. Bu yaklaşım, yeni veya güncelleştirilmiş iş yükleri güvenli iletişim için mTLS'yi otomatik olarak kullanırken mevcut iş yüklerinin normal şekilde çalışmaya devam etmesini sağlar. Bu, kapalı kalma süresi olmadan iş yükleriniz arasında güvenli iletişim için mTLS'i benimseyebileceğiniz anlamına gelir. Geçiş tamamlandıktan sonra, kimlik doğrulamasının zorunlu kılınması için katı moda geçebilirsiniz.

Azure Kubernetes Uygulama Ağı'nda mTLS'nin avantajları

Azure Kubernetes Uygulama Ağı'ndaki mTLS şunları kullanmanıza yardımcı olur:

  • Aktarımdaki verileri koruma: Tüm hizmet-hizmet trafiği otomatik olarak şifrelenebilir (FIPS uyumlu).
  • Hizmet kimliğini doğrulama: Her iş yükünün benzersiz bir Uygulama Ağı tarafından yönetilen kök ve ara sertifikası vardır.
  • İşlemleri basitleştirme: Uygulama Ağı, kullanıcılar için sertifika verme, döndürme ve iptal işlemlerini gerçekleştirir.

Sertifika yönetimi

Azure Kubernetes Application Network, mTLS için kullanılan sertifikaları veren ve koruyan Azure Key Vault tarafından desteklenen sertifika yönetimi sağlar. Bu hizmet, aynı Uygulama Ağı kaynağına bağlı tüm AKS kümeleri arasında paylaşılan bir güven sınırı oluşturur.

Application Network, sağlama, yenileme ve döndürme dahil olmak üzere kök ve ara sertifikalar için sertifika yaşam döngüsünün tamamını otomatik olarak yönetir. Bu, iş yükü kimliklerinin geçerli kalmasını ve iletişimin zaman içinde güvenli kalmasını sağlar. Sertifikaları el ile oluşturmanız, depolamanız veya döndürmeniz gerekmez.

Aşağıdaki diyagramda Application Network'teki sertifika hiyerarşisi gösterilmektedir ve kök CA'ların, ara CA'ların ve iş yükü sertifikalarının bağlı kümeler arasında güven oluşturmak için nasıl yapılandırıldığı gösterilmektedir:

Azure Kubernetes Uygulama Ağı'ndaki sertifika hiyerarşisini gösteren ve kök CA'nın, ara CA'ların ve iş yükü sertifikalarının bağlı kümeler arasında güven oluşturmak için nasıl yapılandırıldığını gösteren diyagramın ekran görüntüsü.

Sertifika hiyerarşisi ve yaşam döngüsü

Bir Uygulama Ağı kaynağı oluşturulduğunda, Uygulama Ağı için güven bağlantısı görevi görecek bir kök CA sağlanır. Aks kümesi Uygulama Ağı'na üye olarak katıldığında, Uygulama Ağı, Uygulama Ağı kök CA'sı tarafından imzalanan üye için bir ara sertifika oluşturur. Bağlı her AKS kümesi, bu kümedeki iş yüklerine kısa süreli iş yükü sertifikaları vermek için Uygulama Ağı ile yönetilen ara sertifikasını kullanır.

Tüm iş yükü sertifikaları, uygulama ağı kök CA'sından güven devralır ve kaynak genelinde birleştirilmiş bir güven sınırını korur. Kök ve ara sertifikaların değiştirilmesi, kullanıcılar için hiçbir kesinti veya aksama yaşanmadan saydam bir şekilde gerçekleştirilir. Bu yönetilen hiyerarşi, bir Uygulama Ağı'ndaki tüm kümelerde tutarlı ve doğrulanabilir güven sağlarken, her sertifikanın geçerliliğini otomatik olarak korur.

Herhangi bir üye kümeden, ad alanı istio-root-certaltındaki yapılandırma eşlemesinden applink-system kök CA sertifikasını alabilirsiniz.

Sertifika türleri ve döndürme dönemleri

Sertifika türü Scope Geçerlilik süresi Dönme süresi Purpose
Kök CA Azure Kubernetes Uygulama Ağı 12 ay 6 ay Azure Kubernetes Uygulama Ağına bağlı tüm kümeler için güven sınırını oluşturur
Ara Sertifika Otoritesi Küme 90 gün 45 gün Bu küme içindeki iş yükleri için iş yükü sertifikaları sağlar
İş yükü sertifikası İş yükü 24 saat 12 saat İş yüklerinin kimliğini doğrular ve hizmet-hizmet iletişimlerinin güvenliğini sağlar

İş yükü kimliği ve yetkilendirmesi

Uygulamalar büyüdükçe hizmetlerin genellikle aynı dağıtımdaki farklı ad alanları ve ortamlar arasında güvenli bir şekilde iletişim kurması gerekir. Sertifikaları yönetmek ve her hizmetin kiminle konuştuğunu doğrulayabilmesini sağlamak hızla karmaşık ve hataya açık hale gelebilir. Azure Kubernetes Application Network, iş yükü kimliklerini otomatik olarak atayarak ve yöneterek bu ek yükü ortadan kaldırır.

Uygulama Ağa bağlı bir ortamda, iş yükleri ad alanlarının içinde ve arasında güvenli bir şekilde iletişim kurar. Application Network, her hizmetin güvenilir ve kimlik doğrulamasının yapılabilmesini sağlamak için her iş yüküne ad alanını ve hizmet hesabını temsil eden doğrulanabilir bir kimlik atar.

Her Application Network iş yükü, ad alanı ve hizmet hesabını içeren SPIFFE biçiminde otomatik olarak benzersiz bir kimlik alır. Kimlik aşağıdaki gibi biçimlendirilir:

spiffe://cluster.local/ns/<namespace>/sa/<service-account>

Bu kimlik iş yükü sertifikasına eklenir ve diğer iş yükleriyle iletişim kurarken hizmetin kimliğini kanıtlamak için kullanılır. Azure Kubernetes Application Network, istio yetkilendirme ilkeleriyle bu SPIFFE tabanlı kimlik modelini kullanır, böylece hizmetlerin iletişim kurmasına izin verilen net ve tutarlı kurallar tanımlayabilirsiniz.

Erişim ilkelerini tanımlama

Ortamınızda iletişim kurmasına izin verilen iş yüklerini denetlemek için Istio'yu AuthorizationPolicies kullanabilirsiniz. Bu ilkeler, ağ konumları veya IP adresleri yerine doğrulanmış iş yükü kimliklerine göre erişim tanımlamanızı sağlar. Bu yaklaşım, hizmetler düğümler arasında ölçeklendikçe ve hareket ettikçe bile tutarlı erişim denetimlerini zorunlu kılmanıza yardımcı olur. Örneğin, aşağıdaki örnekte gösterildiği gibi, ilkenin sahiplerinin listesinde yer alan SPIFFE kimliklerine başvurarak yalnızca güvenilir ad alanlarındaki belirli ağ geçitlerinin veya iş yüklerinin bir hizmeti çağırmasına izin verebilirsiniz.

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: allow-gateway-to-app
  namespace: default
spec:
  selector:
    matchLabels:
      app: myApp
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/default/sa/myApp-gateway // see SPIFFE format above

İlke tasarım kılavuzu

Yetkilendirme ilkeleri tasarlarken aşağıdaki en iyi yöntemleri göz önünde bulundurun:

  • İstenmeyen ad alanları arası erişimi önlemek için her zaman hem ad alanı hem de hizmet hesabı belirtin.
  • İnce erişim sağlamak için açık iş yükü kimliklerini tanımlamak amacıyla prensipleri kullanın.
  • Uygun olduğunda daha geniş güven sınırları tanımlamak için ad alanlarını kullanın.
  • Yalnızca isim alanı olmayan hizmet hesabı adlarıyla eşleşen kurallardan kaçının; bu, kümeler veya ortamlar arasında erişim verebilir.
  • Hem kimlik tabanlı hem de ağ tabanlı yalıtımı zorlamak için Kubernetes AuthorizationPolicies ile birleştirinNetworkPolicies.

Uyarı

Azure Kubernetes Uygulama Ağı yetkilendirmesi, IP adresi yerine doğrulanmış iş yükü kimliğini temel alır. Bu, iş yükleri düğümler arasında ölçeklense veya taşınsa bile tutarlı bir şekilde uygulanmasını sağlar.

Azure Kubernetes Uygulaması Ağ tarafından yönetilen kimlikler, sertifikalar ve ilke denetimlerini birleştirerek kimlik tabanlı, en az ayrıcalıklı hizmet iletişimi uygulayarak kümeler arasında iş yükleri arasında kimliği doğrulanmış, şifrelenmiş ve açıkça yetkilendirilmiş trafik sağlayabilirsiniz.

Azure Kubernetes Uygulama Ağı hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: