Düzenle

Aracılığıyla paylaş


Kubernetes iş yükü kimliği ve erişimi

Microsoft Entra ID
Azure Kubernetes Service (AKS)

Bu makalede Amazon Elastic Kubernetes Service (Amazon EKS) ve Azure Kubernetes Service'in (AKS) bulut platformu hizmetlerine erişmek için Kubernetes iş yükleri için nasıl kimlik sağladığı açıklanmaktadır. Amazon Web Services (AWS) Kimlik ve Erişim Yönetimi (IAM) ile Microsoft Entra Id'nin ayrıntılı karşılaştırması için bkz:

Bu kılavuzda AKS kümelerinin, yerleşik hizmetlerin ve eklentilerin yük dengeleyiciler ve yönetilen diskler gibi Azure kaynaklarına erişmek için yönetilen kimlikleri nasıl kullandığı açıklanmaktadır. Makalede ayrıca AKS iş yüklerinin bağlantı dizesi, erişim anahtarı veya kullanıcı kimlik bilgilerine gerek kalmadan Azure kaynaklarına erişebilmesi için Microsoft Entra İş Yükü Kimliği nasıl kullanılacağı gösterilmektedir.

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 kimlik ve erişim yönetimi

Amazon EKS,Kubernetes podundan AWS hizmetlerini çağırmak için iki yerel seçeneğe sahiptir: hizmet hesapları için IAM rolleri ve Amazon EKS hizmet bağlantılı rolleri.

Hizmet hesapları için IAM rolleri, IAM rollerini bir Kubernetes hizmet hesabıyla ilişkilendirir. Bu hizmet hesabı, hizmet hesabını kullanan herhangi bir poddaki kapsayıcılar için AWS izinleri sağlar. Hizmet hesapları için IAM rolleri aşağıdaki avantajları sağlar:

  • En düşük ayrıcalık: AWS API'lerini çağırmak için düğümdeki podlar için düğüm IAM rolüne genişletilmiş izinler sağlamanız gerekmez. IAM izinlerinin kapsamını bir hizmet hesabına göre ayarlayabilirsiniz ve yalnızca bu hizmet hesabını kullanan podlar bu izinlere erişebilir. Bu özellik, veya kube2iamgibi kiam üçüncü taraf çözümlerine olan ihtiyacı da ortadan kaldırır.

  • Kimlik bilgisi yalıtımı: Kapsayıcı yalnızca ait olduğu hizmet hesabıyla ilişkili IAM rolünün kimlik bilgilerini alabilir. Kapsayıcının hiçbir zaman başka bir poda ait başka bir kapsayıcının kimlik bilgilerine erişimi olmaz.

  • Denetlenebilirlik: Amazon CloudTrail , geçmişe dönük denetim sağlamaya yardımcı olmak için erişim ve olay günlüğü sağlar.

Amazon EKS hizmet bağlantılı rolleri , doğrudan Amazon EKS'ye bağlı benzersiz IAM rolleridir. Hizmet bağlantılı roller Amazon EKS tarafından önceden tanımlanmıştır ve rol adına diğer AWS hizmetlerini çağırmak için gereken tüm izinleri içerir. Amazon EKS düğüm IAM rolü için Amazon EKS düğüm daemon'ı kubelet düğüm adına AWS API'lerini çağırır. Düğümler, bir IAM örnek profilinden ve ilişkili ilkelerden bu API çağrıları için izinler alır.

AKS kümesi yönetilen kimlikleri

AKS kümesi, yük dengeleyiciler ve yönetilen diskler gibi Azure kaynaklarına erişmek için kimlik gerektirir. Bu kimlik yönetilen kimlik veya hizmet sorumlusu olabilir. Varsayılan olarak, AKS kümesi oluşturmak otomatik olarak sistem tarafından atanan bir yönetilen kimlik oluşturur. Azure platformu kimliği yönetir ve gizli dizileri sağlamanız veya döndürmeniz gerekmez. Microsoft Entra yönetilen kimlikleri hakkında daha fazla bilgi için bkz . Azure kaynakları için yönetilen kimlikler.

AKS otomatik olarak bir hizmet sorumlusu oluşturmaz, bu nedenle bir hizmet sorumlusu kullanmak istiyorsanız, bunu oluşturmanız gerekir. Hizmet sorumlusunun süresi sonunda sona erer ve kümenin çalışmasını sağlamak için bunu yenilemeniz gerekir. Hizmet sorumlularını yönetmek karmaşıklık kattığı için yönetilen kimlikleri kullanmak daha kolay olur.

Yönetilen kimlikler temelde yönetimi basitleştiren hizmet sorumluları etrafında sarmalayıcılardır. Aynı izin gereksinimleri hem hizmet sorumluları hem de yönetilen kimlikler için geçerlidir. Yönetilen kimlikler sertifika tabanlı kimlik doğrulaması kullanır. Her yönetilen kimlik kimlik bilgilerinin süresi 90 gündür ve 45 gün sonra döndürülür.

AKS hem sistem tarafından atanan hem de kullanıcı tarafından atanan yönetilen kimlik türlerini kullanır ve bu kimlikler sabittir. Aks sanal ağı, ekli Azure diski, statik IP adresi, yönlendirme tablosu veya düğüm kaynak grubu dışındaki kaynaklarla kullanıcı tarafından atanan kubelet kimlik oluşturduğunuzda veya kullandığınızda, Azure CLI rol atamasını otomatik olarak ekler.

AKS kümesini oluşturmak için Bicep şablonu, Azure Resource Manager (ARM) şablonu veya Terraform modülü gibi başka bir yöntem kullanıyorsanız rol ataması yapmak için küme yönetilen kimliğinin asıl kimliğini kullanmanız gerekir. AKS kümesi kimliği, sanal ağınızdaki alt ağda en az Ağ Katkıda Bulunanı rolüne sahip olmalıdır. Yerleşik Ağ Katkıda Bulunanı rolünü kullanmak yerine özel bir rol tanımlamak için aşağıdaki izinlere ihtiyacınız vardır:

  • Microsoft.Network/virtualNetworks/subnets/join/action
  • Microsoft.Network/virtualNetworks/subnets/read

Küme kimliğinin var olan bir kaynağa erişmesi gerektiğinde, örneğin aks kümesini mevcut bir sanal ağa dağıttığınızda, kullanıcı tarafından atanan yönetilen kimliği kullanmanız gerekir. Sistem tarafından atanan bir denetim düzlemi kimliği kullanıyorsanız, kaynak sağlayıcısı kümeyi oluşturmadan önce asıl kimliğini alamaz, bu nedenle küme sağlamadan önce uygun rol atamalarını oluşturmak mümkün değildir.

Yönetilen kimliklerin özeti

AKS, yerleşik hizmetler ve eklentiler için aşağıdaki kullanıcı tarafından atanan yönetilen kimlikleri kullanır.

Kimlik Veri Akışı Adı Kullanım örneği Varsayılan izinler Kendi kimliğinizi getirin
Kontrol düzlemi AKS Küme Adı Giriş yük dengeleyicileri ve AKS tarafından yönetilen genel IP'ler, küme otomatik ölçeklendiricisi ve Azure Disk ve Azure Dosya CSI sürücüleri dahil olmak üzere küme kaynaklarını yönetir Düğüm kaynak grubu için katkıda bulunan rolü Desteklenir
Kubelet AKS Kümesi Adı-aracı havuzu Azure Container Registry ile kimlik doğrulaması yapar NA (kubernetes v1.15+) Desteklenir
Eklenti HTTPApplicationRouting Gerekli ağ kaynaklarını yönetir Düğüm kaynak grubu için okuyucu rolü, DNS bölgesi için katkıda bulunan rolü Hayır
Eklenti Giriş uygulaması ağ geçidi Gerekli ağ kaynaklarını yönetir Düğüm kaynak grubu için katkıda bulunan rolü Hayır
Eklenti omsagent AKS ölçümlerini Azure İzleyici'ye gönderme Ölçüm Yayımcısı rolünü izleme Hayır
Eklenti Sanal Düğüm (ACI Bağlan or) Azure Container Instances için gerekli ağ kaynaklarını yönetir Düğüm kaynak grubu için katkıda bulunan rolü Hayır

Daha fazla bilgi için bkz . Azure Kubernetes Service'te yönetilen kimlik kullanma.

Kubernetes için Microsoft Entra İş Yükü Kimliği

Kubernetes iş yükleri, Azure Key Vault ve Microsoft Graph gibi Microsoft Entra ID korumalı kaynaklara erişmek için Microsoft Entra uygulama kimlik bilgilerini gerektirir. Geliştiriciler için yaygın bir zorluk, çözümün farklı bileşenleri arasındaki iletişimin güvenliğini sağlamak için gizli dizileri ve kimlik bilgilerini yönetmektir.

Kubernetes için Microsoft Entra İş Yükü Kimliği, Azure Cosmos DB, Azure Key Vault veya Azure Blob Depolama gibi bulut hizmetlerine erişmek için kimlik bilgilerini yönetme gereksinimini ortadan kaldırır. AKS tarafından barındırılan iş yükü uygulaması, bağlantı dizesi, kullanıcı adı ve parola veya birincil anahtar gibi açık kimlik bilgileri yerine Microsoft Entra güvenlik belirtecini kullanarak Azure yönetilen hizmetine erişmek için Microsoft Entra İş Yükü Kimliği kullanabilir.

Aşağıdaki diyagramda gösterildiği gibi Kubernetes kümesi, Kubernetes hizmet hesaplarına belirteçler veren bir güvenlik belirteci veren haline gelir. Bu belirteçleri Microsoft Entra uygulamalarında güvenilir olacak şekilde yapılandırabilirsiniz. Belirteçler daha sonra Azure Kimlik SDK'ları veya Microsoft Kimlik Doğrulama Kitaplığı (MSAL) kullanılarak Microsoft Entra erişim belirteçleri için değiştirilebilir.

Azure'da pod yönetilen kimliği için basitleştirilmiş bir iş akışını gösteren diyagram.

  1. Aracı, kubelet yapılandırılabilir bir dosya yolunda iş yüküne bir hizmet hesabı belirteci oluşturur.
  2. Kubernetes iş yükü, öngörülen, imzalı hizmet hesabı belirtecini Microsoft Entra Kimliği'ne gönderir ve bir erişim belirteci istemektedir.
  3. Microsoft Entra Id, kullanıcı tanımlı yönetilen kimlik veya kayıtlı uygulama üzerindeki güveni denetlemek ve gelen belirteci doğrulamak için bir OIDC bulma belgesi kullanır.
  4. Microsoft Entra Id bir güvenlik erişim belirteci verir.
  5. Kubernetes iş yükü, Microsoft Entra erişim belirtecini kullanarak Azure kaynaklarına erişir.

Kubernetes için Microsoft Entra İş Yükü Kimliği federasyonu şu anda yalnızca Microsoft Entra uygulamaları için desteklenmektedir, ancak aynı model potansiyel olarak Azure tarafından yönetilen kimliklere genişletilebilir.

Microsoft Entra İş Yükü Kimliği hakkında daha fazla bilgi, otomasyon ve belge için bkz:

Örnek iş yükü

Örnek iş yükü aks kümesinde bir ön uç ve arka uç hizmeti çalıştırır. İş yükü hizmetleri, Microsoft Entra güvenlik belirteçlerini kullanarak aşağıdaki Azure hizmetlerine erişmek için Microsoft Entra İş Yükü Kimliği kullanır:

  • Azure Key Vault
  • Azure Cosmos DB
  • Azure Storage hesabı
  • Azure Service Bus ad alanı

Önkoşullar

  1. OIDC verenin etkin olduğu bir AKS kümesi ayarlayın.
  2. Sessiz erişim web kancasını yükleyin.
  3. İş yükleri için bir Kubernetes hizmet hesabı oluşturun.
  4. Hızlı başlangıçta gösterildiği gibi bir Microsoft Entra uygulaması oluşturun.
  5. Gerekli Microsoft Entra kayıtlı uygulamalarına doğru izinlere sahip roller atayın.
  6. Microsoft Entra uygulaması ile hizmet hesabı veren ve konu arasında bir federasyon kimliği kimlik bilgisi oluşturun.
  7. İş yükü uygulamasını AKS kümesine dağıtın.

İleti akışını Microsoft Entra İş Yükü Kimliği

AKS uygulamaları, hizmet hesapları için güvenlik belirteçlerini AKS kümesinin OIDC vereninden alır. Microsoft Entra İş Yükü Kimliği, güvenlik belirteçlerini Microsoft Entra Id tarafından verilen güvenlik belirteçleriyle değiştirir ve uygulamalar Azure kaynaklarına erişmek için Microsoft Entra ID tarafından verilen güvenlik belirteçlerini kullanır.

Aşağıdaki diyagramda ön uç ve arka uç uygulamalarının Azure hizmet olarak platform (PaaS) hizmetlerini kullanmak için Microsoft Entra güvenlik belirteçlerini nasıl aldığı gösterilmektedir.

Microsoft Entra İş Yükü Kimliği kullanan örnek bir uygulamayı gösteren diyagram.

Bu mimarinin bir Visio dosyasını indirin.

  1. Kubernetes, pod veya dağıtım belirtimine göre bir düğümde zamanlandığında pod için bir belirteç oluşturur.
  2. Pod, belirli appId ve kaynak için bir Microsoft Entra belirteci istemek üzere OIDC tarafından verilen belirteci Microsoft Entra Kimliği'ne gönderir.
  3. Microsoft Entra Id uygulamadaki güveni denetler ve gelen belirteci doğrular.
  4. Microsoft Entra Id bir güvenlik belirteci verir: {sub: appId, aud: requested-audience}.
  5. Pod, hedef Azure kaynağına erişmek için Microsoft Entra belirtecini kullanır.

Kubernetes kümesinde uçtan uca Microsoft Entra İş Yükü Kimliği kullanmak için:

  1. AKS kümesini belirteçleri verecek ve bu belirteçlerin doğrulanmasına izin verecek bir OIDC bulma belgesi yayımlayacak şekilde yapılandıracaksınız.
  2. Microsoft Entra uygulamalarını Kubernetes belirteçlerine güvenecek şekilde yapılandırabilirsiniz.
  3. Geliştiriciler dağıtımlarını Kubernetes belirteçlerini almak için Kubernetes hizmet hesaplarını kullanacak şekilde yapılandırmaktadır.
  4. Microsoft Entra İş Yükü Kimliği Microsoft Entra belirteçleri için Kubernetes belirteçlerini değiştirir.
  5. AKS kümesi iş yükleri, Microsoft Graph gibi korumalı kaynaklara erişmek için Microsoft Entra belirteçlerini kullanır.

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 yazarlar:

Diğer katkıda bulunanlar:

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

Sonraki adımlar