Aracılığıyla paylaş


Azure Arc tarafından etkinleştirilen AKS için erişim ve kimlik seçenekleri

Şunlar için geçerlidir: Azure Stack HCI 23H2 üzerinde AKS

Kubernetes kümelerine erişimi çeşitli yollarla doğrulayabilir, yetkileyebilir, güvenlileştirebilir ve denetleyebilirsiniz:

  • Kubernetes rol tabanlı erişim denetimi (Kubernetes RBAC) ile kullanıcılara, gruplara ve hizmet hesaplarına yalnızca ihtiyaç duydukları Kubernetes kaynaklarına erişim verebilirim.
  • Aks kümeleri Azure RBAC ile etkinleştirildiğinde, Microsoft Entra Id ve Azure RBAC kullanarak güvenlik ve izin yapısını daha da geliştirebilirsiniz.

Kubernetes RBAC ve Azure RBAC, küme erişiminizin güvenliğini sağlamanıza ve geliştiricilere ve işleçlere yalnızca gereken en düşük izinleri sağlamanıza yardımcı olur.

Bu makalede, AKS'de kimlik doğrulaması yapmanıza ve izin atamanıza yardımcı olan temel kavramlar açıklanır.

Kubernetes RBAC

Kubernetes RBAC, kullanıcı eylemlerinin ayrıntılı filtrelemesini sağlar. Bu denetim mekanizmasıyla:

  • Çalışan uygulama iş yüklerinden kaynak oluşturma ve değiştirme veya günlükleri görüntüleme iznini kullanıcılara veya kullanıcı gruplarına atarsınız.
  • İzinleri tek bir ad alanına veya AKS kümesinin tamamına göre kapsam oluşturabilirsiniz.
  • İzinleri tanımlamak için roller oluşturur ve ardından bu rolleri rol bağlamaları olan kullanıcılara atarsınız.

Daha fazla bilgi için bkz . Kubernetes RBAC yetkilendirmesini kullanma.

Roller ve ClusterRoles

Roller

Kubernetes RBAC'ye sahip kullanıcılara izin atamadan önce, kullanıcı izinlerini rol olarak tanımlarsınız. Rolleri kullanarak Kubernetes ad alanı içinde izinler verin.

Kubernetes rolleri izinler verir; izinleri reddetmez. Kümenin tamamında veya belirli bir ad alanı dışındaki küme kaynaklarına izin vermek için ClusterRoles kullanabilirsiniz.

ClusterRoles

ClusterRole belirli bir ad alanı yerine tüm kümedeki kaynaklara izin verir ve uygular.

RoleBindings ve ClusterRoleBindings

Kaynaklara izin vermek için roller tanımladıktan sonra, bu Kubernetes RBAC izinlerini rolebinding ile atarsınız. AKS kümeniz Microsoft Entra Id ile tümleştirilirse, RoleBindings, Microsoft Entra kullanıcılarına küme içinde eylem gerçekleştirme izni verir. Bkz. Microsoft Entra Id ve Kubernetes RBAC kullanarak erişimi denetleme

RoleBindings

RoleBindings kullanarak belirli bir ad alanı için kullanıcılara roller atayın. RoleBindings ile tek bir AKS kümesini mantıksal olarak ayırarak yalnızca kullanıcıların atanan ad alanında uygulama kaynaklarına erişmesini sağlayabilirsiniz.

Rolleri kümenin tamamında veya belirli bir ad alanı dışındaki küme kaynaklarına bağlamak için ClusterRoleBindings'i kullanın.

ClusterRoleBinding

ClusterRoleBinding ile, rolleri kullanıcılara bağlar ve belirli bir ad alanı yerine tüm kümedeki kaynaklara uygularsınız. Bu yaklaşım, yöneticilere veya destek mühendislerine AKS kümesindeki tüm kaynaklara erişim vermenizi sağlar.

Kubernetes hizmet hesapları

Hizmet hesapları , Kubernetes'teki birincil kullanıcı türlerinden biridir. Kubernetes API'sinde hizmet hesapları bulunur ve yönetilebilir. Hizmet hesabı kimlik bilgileri Kubernetes gizli dizileri olarak depolanır ve api sunucusuyla iletişim kurmak için yetkili podlar tarafından kullanılmasına olanak sağlar. Çoğu API isteği, bir hizmet hesabı veya normal bir kullanıcı hesabı için kimlik doğrulama belirteci sağlar.

Normal kullanıcı hesapları, yalnızca hizmetler ve işlemler için değil, insan yöneticiler veya geliştiriciler için daha geleneksel erişim sağlar. Kubernetes normal kullanıcı hesaplarını ve parolalarını depolamak için bir kimlik yönetimi çözümü sağlamasa da, dış kimlik çözümlerini Kubernetes ile tümleştirebilirsiniz. AKS kümeleri için bu tümleşik kimlik çözümü Microsoft Entra ID'dir.

Kubernetes'teki kimlik seçenekleri hakkında daha fazla bilgi için bkz . Kubernetes kimlik doğrulaması.

Azure rol tabanlı erişim denetimi

Azure Rol Tabanlı Erişim Denetimi (RBAC), Azure kaynakları için ayrıntılı erişim yönetimi sağlayan, Azure Resource Manager üzerinde oluşturulmuş bir yetkilendirme sistemidir.

RBAC sistemi Açıklama
Kubernetes RBAC AKS kümenizdeki Kubernetes kaynakları üzerinde çalışacak şekilde tasarlanmıştır.
Azure RBAC Azure aboneliğinizdeki kaynaklar üzerinde çalışacak şekilde tasarlanmıştır.

Azure RBAC ile, uygulanacak izinleri özetleyen bir rol tanımı oluşturursunuz. Ardından, belirli bir kapsam için rol ataması aracılığıyla bu rol tanımını bir kullanıcı veya grup atarsınız. Kapsam tek bir kaynak, kaynak grubu veya abonelik genelinde olabilir.

Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (Azure RBAC) nedir?

AKS Arc kümesini tam olarak çalıştırmak için gereken iki erişim düzeyi vardır:

  • Azure aboneliğinizdeki AKS kaynağına erişin.
    • Azure Arc API'leri tarafından etkinleştirilen AKS'yi kullanarak kümenizi ölçeklendirmeyi veya yükseltmeyi denetleyin.
    • Yöneticinizi, sertifika tabanlı kubeconfig'i çekin.
    • Entra Id özellikli kubeconfig'inizi çekin.
  • Kubernetes API'sine erişim. Bu erişim aşağıdakilerden biri tarafından denetlenilir:
    • Kubernetes RBAC veya
    • Azure RBAC'yi Kubernetes yetkilendirmesi için AKS ile tümleştirme.

AKS kaynağına erişimi yetkilendirmek için Azure RBAC

Azure RBAC ile kullanıcılarınıza (veya kimliklerinize) bir veya daha fazla abonelikte AKS kaynaklarına ayrıntılı erişim sağlayabilirsiniz. Bu denetim düzlemi eylemi için üç rol kullanılabilir: Azure Kubernetes Service Arc Kümesi Yönetici Rolü, Azure Kubernetes Service Arc Kümesi Kullanıcı Rolü ve Azure Kubernetes Service Arc Katkıda Bulunan Rolü. Her rolün, Kapsayıcılar için Azure yerleşik rolleri bölümünde açıklandığı gibi farklı bir izin kapsamı vardır. Örneğin, kümenizi oluşturmak, ölçeklendirmek ve yükseltmek için Azure Kubernetes Service Arc Katkıda Bulunanı rolünü kullanabilirsiniz. Bu arada, Azure Kubernetes Service Arc Kümesi Yöneticisi rolüne sahip başka bir kullanıcının yalnızca yönetici kubeconfig'i çekme izni vardır.

Kubernetes için Azure RBAC yetkilendirmesi

Azure RBAC tümleştirmesiyle AKS, Azure rol tanımı ve rol atamalarını kullanarak Microsoft Entra tümleşik Kubernetes kümesi kaynak izinlerini ve atamalarını yönetebilmeniz için bir Kubernetes yetkilendirme web kancası sunucusu kullanır.

Yetkilendirme akışı diyagramı.

Bu diyagramda gösterildiği gibi, Azure RBAC tümleştirmesi kullanılırken Kubernetes API'sine yönelik tüm istekler Microsoft Entra tümleştirmesinde açıklandığı gibi aynı kimlik doğrulama akışını izler.

İsteği yapan kimlik Microsoft Entra Id'de mevcutsa, isteği yetkilendirmek için Kubernetes RBAC ile Azure ekipleri. Kimlik Microsoft Entra Id (örneğin, bir Kubernetes hizmet hesabı) dışında varsa, yetkilendirme normal Kubernetes RBAC'ye karşı çıkar.

Bu senaryoda, Tıpkı Kubernetes rollerinde olduğu gibi kullanıcılara yerleşik roller atamak veya özel roller oluşturmak için Azure RBAC mekanizmalarını ve API'lerini kullanırsınız.

Bu özellik sayesinde kullanıcılara abonelikler arasında AKS kaynağı için izin vermekle kalmaz, aynı zamanda Kubernetes API erişimini denetleyen bu kümelerin her birinin içindeki rolü ve izinleri de yapılandırmış olursunuz. Bu veri düzlemi eylemi için, yerleşik roller bölümünde açıklandığı gibi her biri kendi izin kapsamına sahip dört yerleşik rol vardır.

Önemli

Rol ataması yapmadan önce Kubernetes yetkilendirmesi için Azure RBAC'yi etkinleştirmeniz gerekir. Daha fazla ayrıntı ve adım adım yönergeler için bkz . Kubernetes yetkilendirmesi için Azure RBAC'yi kullanma.

Yerleşik roller

Arc tarafından etkinleştirilen AKS, aşağıdaki beş yerleşik rolü sağlar. Bunlar, CRD'leri destekleme gibi birkaç farklılığı olan Kubernetes yerleşik rollerine benzer. Her Azure yerleşik rolünün izin verdiği eylemlerin tam listesine bakın.

Rol Açıklama
Azure Arc özellikli Kubernetes Kümesi Kullanıcısı Kümeleri her yerden yönetmek için Küme Bağlantısı tabanlı kubeconfig dosyasını almanıza olanak tanır.
Azure Arc Kubernetes Viewer Ad alanında çoğu nesneyi görmek için salt okunur erişime izin verir.
Gizli diziler üzerinde okuma izni ad alanında ServiceAccount kimlik bilgilerine erişim sağladığından gizli dizileri görüntülemeye izin vermez. Bu kimlik bilgileri de bu ServiceAccount değeri (ayrıcalık yükseltme biçimi) üzerinden API erişimine izin verir.
Azure Arc Kubernetes Yazıcı Ad alanı içindeki çoğu nesneye okuma/yazma erişimine izin verir.
Rollerin veya rol bağlamalarının görüntülenmesine veya değiştirilmesine izin vermez. Ancak, bu rol gizli dizilere erişmeye ve podları ad alanında herhangi bir ServiceAccount değeri olarak çalıştırmaya olanak tanır, bu nedenle ad alanında bu tür ServiceAccount değerlerinin API erişim düzeylerini kazanmak için kullanılabilir.
Azure Arc Kubernetes Yöneticisi Yönetici erişimine izin verir. RoleBinding aracılığıyla bir ad alanı içinde verilmesi amaçlanmıştır. RoleBinding'de kullanırsanız, ad alanı içinde rol ve rol bağlamaları oluşturma özelliği de dahil olmak üzere ad alanı içindeki kaynakların çoğuna okuma/yazma erişimi sağlar. Bu rol, kaynak kotasına veya ad alanının kendisine yazma erişimine izin vermez.
Azure Arc Kubernetes Küme Yöneticisi "Süper kullanıcı" erişiminin herhangi bir kaynakta herhangi bir eylemi yürütmesine izin verir. ClusterRoleBinding'de kullandığınızda, kümedeki ve tüm ad alanları içindeki her kaynak üzerinde tam denetim sağlar. RoleBinding'de kullandığınızda, ad alanının kendisi de dahil olmak üzere rol bağlama ad alanında yer alan tüm kaynaklar üzerinde tam denetim sağlar.

Microsoft Entra tümleştirmesi

Microsoft Entra tümleştirmesi ile AKS kümesi güvenliğinizi geliştirin. Kurumsal kimlik yönetimi deneyimi üzerine oluşturulan Microsoft Entra ID, çekirdek dizin hizmetlerini, uygulama erişim yönetimini ve kimlik korumasını birleştiren çok kiracılı, bulut tabanlı bir dizin ve kimlik yönetimi hizmetidir. Microsoft Entra Id ile şirket içi kimlikleri AKS kümeleriyle tümleştirerek hesap yönetimi ve güvenliği için tek bir kaynak sağlayabilirsiniz.

Entra tümleştirmeyi gösteren akış çizelgesi.

Microsoft Entra ile tümleşik AKS kümeleriyle, kullanıcılara veya gruplara bir ad alanı içindeki veya küme genelindeki Kubernetes kaynaklarına erişim vekleyebilirsiniz.

  • Kubectl yapılandırma bağlamını almak için az aksarc get-credentials komutunu çalıştırın.
  • Kullanıcı kubectl kullanarak AKS kümesiyle etkileşime geçtiğinde Microsoft Entra kimlik bilgileriyle oturum açması istenir.

Bu yaklaşım, kullanıcı hesabı yönetimi ve parola kimlik bilgileri için tek bir kaynak sağlar. Kullanıcı kaynaklara yalnızca Kubernetes küme yöneticisi tarafından tanımlanan şekilde erişebilir.

Microsoft Entra kimlik doğrulaması, OpenID Connect ile AKS kümelerine sağlanır. OpenID Connect, OAuth 2.0 protokolünün üzerine kurulmuş bir kimlik katmanıdır. OpenID Connect hakkında daha fazla bilgi için OpenID Connect belgelerine bakın. Kubernetes kümesinin içinden, kimlik doğrulama belirteçlerini doğrulamak için Web Kancası Belirteci Kimlik Doğrulaması kullanılır. Web kancası belirteci kimlik doğrulaması AKS kümesinin bir parçası olarak yapılandırılır ve yönetilir.

Özet

Aşağıdaki tabloda, Microsoft Entra tümleştirmesi etkinleştirildiğinde kullanıcıların Kubernetes'de nasıl kimlik doğrulaması yapabileceklerine ilişkin bir özet yer alır. Her durumda komut dizisi şöyledir:

  1. Azure'da kimlik doğrulaması yapmak için komutunu çalıştırın az login .
  2. Kubernetes kümesinin kimlik bilgilerini içine .kube/configindirmek için komutunu çalıştırınaz aksarc get-credentials.
  3. Komutları çalıştırın kubectl .
    • İlk komut, aşağıdaki tabloda açıklandığı gibi Kubernetes kümesinde kimlik doğrulaması yapmak için tarayıcı tabanlı kimlik doğrulamasını tetikleyebilir.
Açıklama Rol verme gerekli Küme yöneticisi Microsoft Entra grupları ne zaman kullanılmalı
İstemci sertifikası kullanarak yönetici oturum açma Azure Kubernetes Service Arc Kümesi Yönetici Rolü. Bu rol az aksarc get-credentials , Microsoft dışı bir Entra kümesi yönetici sertifikasını --admin kullanıcının .kube/config içine indiren bayrağıyla birlikte kullanılabilir. Azure Kubernetes Yönetici rolünün tek amacı budur. yok Kümenize erişimi olan geçerli bir Microsoft Entra grubuna erişiminiz olmaması nedeniyle kalıcı olarak engellenirseniz.
El ile (küme) RoleBindings ile Microsoft Entra Kimliği Azure Kubernetes Service Arc Kümesi Kullanıcı Rolü. Kullanıcı rolü az aksarc get-credentials bayrağı olmadan --admin kullanılabilir. Azure Kubernetes Service Kümesi Kullanıcı rolünün tek amacı budur.) Microsoft Entra ID özellikli bir kümede, .kube/config içine boş bir girişin indirilmesi sonucu elde edilir ve bu da kubectl tarafından ilk kez kullanıldığında tarayıcı tabanlı kimlik doğrulamasını tetikler. Kullanıcı herhangi bir Küme Yöneticisi grubunda olmadığından, hakları küme yöneticileri tarafından ayarlanan tüm RoleBinding'ler veya ClusterRoleBinding'ler tarafından tamamen denetlenür. (Küme) RoleBindings , Microsoft Entra kullanıcılarını veya Microsoft Entra gruplarını konuları olarak gösterir. Böyle bir bağlama ayarlanmadıysa, kullanıcı kubectl komutlarını kaldıramaz. Ayrıntılı erişim denetimi istiyorsanız ve Kubernetes Yetkilendirmesi için Azure RBAC kullanmıyorsanız. Bağlamaları ayarlayan kullanıcının bu tabloda listelenen diğer yöntemlerden birini kullanarak oturum açması gerektiğini unutmayın.
Microsoft Entra ID by member of cluster admin Microsoft Entra group (set using --aad-admin-group-object-ids flag in Azure CLI) Öncekiyle aynı. Kullanıcı, burada listelenen gruplardan birinin üyesidir. AKS, listelenen tüm grupları Kubernetes rolüne cluster-admin bağlayan bir ClusterRoleBinding'i otomatik olarak oluşturur. Bu nedenle, bu gruplardaki kullanıcılar tüm kubectl komutları olarak cluster-adminçalıştırabilir. Kullanıcılara tam yönetici hakları vermek istiyorsanız ve Kubernetes için Azure RBAC yetkilendirmesini kullanmıyorsanız.
Kubernetes yetkilendirmesi için Azure RBAC ile Microsoft Entra Id İki rol:
Azure Kubernetes Service Arc Kümesi Kullanıcı rolü (daha önce açıklandığı gibi).
Daha önce açıklanan Azure Arc Kubernetes rollerinden biri veya kendi özel alternatifiniz.
Kubernetes için Azure RBAC yetkilendirmesi etkinleştirildiğinde Yapılandırma sekmesindeki yönetici rolleri alanı önemsizdir. Kubernetes yetkilendirmesi için Azure RBAC kullanırsınız. Bu yaklaşım, RoleBindings veya ClusterRoleBindings'i ayarlamanıza gerek kalmadan ayrıntılı denetim sağlar.

Sonraki adımlar