AKS Karma ve Edge için erişim ve kimlik seçenekleri

Azure Yerel üzerinde AKS için geçerlidir

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 makale, AKS'de kimlik doğrulama ve izin atama konusunda size yardımcı olan temel kavramları tanıtmaktadır.

Kubernetes RBAC

Kubernetes RBAC, kullanıcı eylemlerinin detaylı filtrelenmesini sağlar. Bu denetim mekanizmasıyla:

  • Kullanıcılara veya kullanıcı gruplarına, kaynakları oluşturma ve değiştirme ya da çalışan uygulama iş yüklerinin günlüklerini görüntüleme izni verirsiniz.
  • Yetkileri tek bir ad alanı veya tüm AKS kümesi genelinde kapsamlandırabilirsiniz.
  • İzinleri tanımlamak için roller oluşturur ve ardından bu rolleri rol atamaları ile kullanıcılara atarsınız.

Daha fazla bilgi için Kubernetes RBAC yetkilendirmesini kullanma bölümüne bakın.

Roller ve KümeRolleri

Görevler

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

Bir ClusterRole, belirli bir ad alanı yerine tüm küme genelindeki kaynaklara izin verir ve bu izinleri 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 entegre oluyorsa, RoleBindings, Microsoft Entra kullanıcılarına küme içinde işlem yapma izni verir. Bkz. Microsoft Entra Id ve Kubernetes RBAC kullanarak erişimi denetleme.

Rol Atamaları

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ırabilir ve yalnızca kullanıcıların atanmış ad alanlarındaki uygulama kaynaklarına erişimini 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.

KümeRolBağlama

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 ana kullanıcı türlerinden biridir. Kubernetes API hizmet hesaplarını tutar ve yönetir. Hizmet hesabı kimlik bilgileri Kubernetes gizli bilgileri olarak depolanır ve yetkili podların API sunucusuyla iletişim kurmasını sağlar. Çoğu API isteği, bir hizmet hesabı veya normal bir kullanıcı hesabı için bir 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 entegre 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 Description
Kubernetes RBAC AKS kümenizdeki Kubernetes kaynakları üzerinde çalışacak şekilde tasarlanmıştır.
RBAC Azure Azure aboneliğinizdeki kaynaklar üzerinde çalışmak için tasarlanmıştır.

Azure RBAC ile, uygulanacak izinleri belirleyen bir rol tanımı oluşturursunuz. Daha sonra belirli bir kapsam için bir rol ataması aracılığıyla bir kullanıcıya veya gruba bu rol tanımını 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 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.
    • AKS Karma ve Edge API'lerini kullanarak kümenizi ölçeklendirmeyi veya yükseltmeyi denetleyin.
    • Yöneticinizi, sertifika tabanlı kubeconfig'i çekin.
    • Entra ID özellikli kubeconfig'inizi alın.
  • Kubernetes API'sine erişim. Bu erişim, aşağıdakilerden biri tarafından kontrol edilir:
    • Kubernetes RBAC veya
    • Azure RBAC'yi Kubernetes yetkilendirmesi için AKS ile tümleştirme.

Azure RBAC, AKS kaynaklarına erişimi yetkilendirmek için kullanılır.

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, Azure, isteği yetkilendirmek için Kubernetes RBAC ile iş birliği yapar. Kimlik Microsoft Entra ID dışında bulunuyorsa (örneğin, bir Kubernetes hizmet hesabıysa), yetkilendirme standart Kubernetes RBAC'ye göre yapılır.

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.

Important

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 kullanma.

Yerleşik roller

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ü Description
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 Görüntüleyicisi İsim alanındaki çoğu nesneyi görmek için salt okunur erişime izin verir.
Gizli veriler üzerinde okuma izni, ad alanındaki ServiceAccount kimlik bilgilerine erişim sağladığından gizli verilerin görüntülenmesine izin vermez. Bu kimlik bilgileri, ServiceAccount değeri (yetki arttırma biçimi) üzerinden API erişimine izin verir.
Azure Arc Kubernetes Yazarı 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, ad alanındaki gizli bilgilere erişmeye ve podları herhangi bir ServiceAccount değeriyle çalıştırmaya olanak tanır; bu nedenle, ad alanındaki bu tür herhangi bir ServiceAccount değerinin API erişim düzeylerini elde etmek 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 entegrasyonu

Microsoft Entra tümleştirmesi AKS kümenizin güvenliğini artırmaya yardımcı olabilir. 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, Webhook Belirteci Kimlik Doğrulaması kimlik doğrulama belirteçlerini doğrulamak için kullanılır. Webhook belirteci doğrulaması, AKS kümesinin bir parçası olarak yapılandırılır ve yönetilir.

Summary

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. az login çalıştırarak Azure'a kimlik doğrulaması yapın.
  2. Kubernetes kümesi kimlik bilgilerini az aksarc get-credentials içine indirmek için çalıştırın .kube/config.
  3. kubectl komutlarını çalıştır.
    • İ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.
Description Rol izni gerekli Küme yöneticisi Microsoft Entra grupları Ne zaman kullanılır?
İ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. n/a Kümenize erişimi olan geçerli bir Microsoft Entra grubuna erişiminiz yoksa kalıcı olarak engellenirsiniz.
Microsoft Entra Kimliği'ni manuel (küme) RoleBindings ile kullanma 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.) Sonuç, Microsoft Entra ID etkinleştirilmiş bir kümede, .kube/config içine boş bir girişin indirilmesidir ve bu, kubectl tarafından ilk kez kullanıldığında tarayıcı tabanlı kimlik doğrulamasını tetikler. Kullanıcı herhangi bir Cluster Admin grubunda olmadığından, hakları tamamen küme yöneticileri tarafından ayarlanmış olan RoleBinding veya ClusterRoleBinding'ler ile denetlenir. (Küme) RoleBindings , Microsoft Entra kullanıcılarını veya Microsoft Entra gruplarını konuları olarak gösterir. Eğer böyle bir bağlama ayarlanmadıysa, kullanıcı herhangi bir kubectl komutunu çalıştıramaz. Eğer ince ayarlı erişim kontrolü 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 grubunun küme yönetici üyesi tarafından Microsoft Entra ID (Azure CLI'de --aad-admin-group-object-ids bayrağı kullanılarak ayarlanır) Öncekiyle aynı. Kullanıcı, burada listelenen gruplardan birinin üyesidir. AKS, listelenen tüm grupları cluster-admin Kubernetes rolüne bağlayan bir ClusterRoleBinding'i otomatik olarak oluşturur. Bu gruplardaki kullanıcılar, tüm kubectl komutlarını cluster-admin olarak ç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