Azure Kubernetes Service'te kullanıcıların kimliğini doğrulamak için kubelogin kullanma
Azure'daki kubelogin eklentisi, Microsoft Entra kimlik doğrulamasını uygulayan bir client-go kimlik bilgisi eklentisidir . kubelogin eklentisi, kubectl komut satırı aracında bulunmayan özellikler sunar. Daha fazla bilgi için bkz . kubelogin tanıtımı ve kubectl tanıtımı.
Microsoft Entra ID ile tümleştirilmiş ve Kubernetes sürüm 1.24 veya üzerini çalıştıran Azure Kubernetes Service (AKS) kümeleri otomatik olarak kubelogin biçimini kullanır.
Bu makalede AKS'de desteklenen tüm Microsoft Entra kimlik doğrulama yöntemleri için kubelogin'in nasıl kullanılacağına ilişkin genel bir bakış ve örnekler sağlanmaktadır.
Sınırlamalar
- Microsoft Entra JSON Web Belirteci (JWT) talebine en fazla 200 grup ekleyebilirsiniz. 200'den fazla grubunuz varsa uygulama rollerini kullanmayı göz önünde bulundurun.
- Microsoft Entra ID'de oluşturulan gruplar yalnızca ObjectID değerleriyle eklenir, görünen adlarıyla dahil edilir.
sAMAccountName
Komutu yalnızca şirket içi Windows Server Active Directory'den eşitlenen gruplar için kullanılabilir. - AKS'de hizmet sorumlusu kimlik doğrulama yöntemi, azure active directory'nin önceki sürümüyle değil, yalnızca yönetilen Microsoft Entra Kimliği ile çalışır.
- Microsoft Entra Koşullu Erişim ilkesi bir Microsoft Entra kiracısı üzerinde ayarlandığında cihaz kodu kimlik doğrulama yöntemi çalışmaz. Bu senaryoda web tarayıcısı etkileşimli kimlik doğrulamasını kullanın.
Kimlik doğrulaması nasıl çalışır?
Kubelogin ile çoğu etkileşimde alt komutu convert-kubeconfig
kullanırsınız. Alt komut, belirtilen kimlik doğrulama yöntemine göre son kubeconfig dosyasını exec biçimine dönüştürmek için veya ortam değişkeninde KUBECONFIG
belirtilen --kubeconfig
kubeconfig dosyasını kullanır.
Kubelogin'in uyguladığı kimlik doğrulama yöntemleri Microsoft Entra OAuth 2.0 belirteç verme akışlarıdır. Aşağıdaki parametre bayrakları kubelogin alt komutlarında yaygın olarak kullanılır. Genel olarak, aks'den kubeconfig dosyasını aldığınızda bu bayraklar kullanıma hazırdır.
--tenant-id
: Microsoft Entra kiracı kimliği.--client-id
: Genel istemci uygulamasının uygulama kimliği. Bu istemci uygulaması yalnızca cihaz kodu, web tarayıcısı etkileşimli ve OAuth 2.0 Kaynak Sahibi Parola Kimlik Bilgileri (ROPC) (iş akışı kimliği) oturum açma yöntemlerinde kullanılır.--server-id
: Web uygulamasının veya kaynak sunucusunun uygulama kimliği. Belirteç bu kaynağa verilir.
Not
Her kimlik doğrulama yönteminde belirteç dosya sisteminde önbelleğe alınmaz.
Kimlik doğrulama yöntemleri
Sonraki bölümlerde desteklenen kimlik doğrulama yöntemleri ve bunların nasıl kullanılacağı açıklanmaktadır:
- Cihaz kodu
- Azure CLI
- Web tarayıcısı etkileşimli
- Hizmet sorumlusu
- Yönetilen kimlik
- İş yükü kimliği
Cihaz kodu
Cihaz kodu, alt komut için convert-kubeconfig
varsayılan kimlik doğrulama yöntemidir. -l devicecode
parametresi isteğe bağlıdır. Bu kimlik doğrulama yöntemi, kullanıcının tarayıcı oturumundan oturum açması için cihaz kodunu ister.
kubelogin ve exec eklentileri kullanılmadan önce kubectl'deki Azure kimlik doğrulama yöntemi yalnızca cihaz kodu akışını desteklemektedir. Ön eke sahip talebi olan bir belirteç oluşturan kitaplığın audience
önceki bir spn:
sürümünü kullandı. Aks tarafından yönetilen ve adına (OBO) akış kullanan Microsoft Entra Id ile uyumlu değildir. Alt komutu çalıştırdığınızda convert-kubeconfig
kubelogin, izleyici talebinden spn:
ön eki kaldırır.
Gereksinimleriniz önceki sürümlerden işlevsellik kullanmayı kapsiyorsa bağımsız değişkenini --legacy
ekleyin. Kubeconfig dosyasını önceki bir Azure Active Directory kümesinde kullanıyorsanız kubelogin bayrağını otomatik olarak ekler --legacy
.
Bu oturum açma yönteminde erişim belirteci ve yenileme belirteci ${HOME}/.kube/cache/kubelogin dizininde önbelleğe alınır. Bu yolu geçersiz kılmak için parametresini --token-cache-dir
ekleyin.
AKS Microsoft Entra tümleşik kümeniz Kubernetes 1.24 veya önceki bir sürümünü kullanıyorsa, aşağıdaki komutları çalıştırarak kubeconfig dosya biçimini el ile dönüştürmeniz gerekir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Önbelleğe alınmış belirteçleri temizlemek için aşağıdaki komutu çalıştırın:
kubelogin remove-tokens
Not
Microsoft Entra kiracısında koşullu erişim ilkesi yapılandırıldığında cihaz kodu oturum açma yöntemi çalışmaz. Bu senaryoda web tarayıcısı etkileşimli yöntemini kullanın.
Azure CLI
Azure CLI kimlik doğrulama yöntemi, erişim belirtecini almak için Azure CLI'nin oluşturduğu oturum açma bağlamını kullanır. Belirteç, ile aynı Microsoft Entra kiracısında az login
verilir. kubelogin, belirteç önbellek dosyasına belirteç yazmaz çünkü bunlar zaten Azure CLI tarafından yönetilir.
Not
Bu kimlik doğrulama yöntemi yalnızca AKS tarafından yönetilen Microsoft Entra Kimliği ile çalışır.
Aşağıdaki örnekte, kimlik doğrulaması için Azure CLI yönteminin nasıl kullanılacağı gösterilmektedir:
az login
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l azurecli
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Azure CLI yapılandırma dizini ${HOME} dizininin dışındaysa, alt komutla parametresini convert-kubeconfig
kullanın--azure-config-dir
. komutu, ortam değişkeni yapılandırılmış kubeconfig dosyasını oluşturur. Bir kubectl komutu çalıştırdığınızda ortam değişkenini AZURE_CONFIG_DIR
bu dizine ayarlayarak aynı yapılandırmayı alabilirsiniz.
Web tarayıcısı etkileşimli
Web tarayıcısı etkileşimli kimlik doğrulama yöntemi, kullanıcıda oturum açmak için otomatik olarak bir web tarayıcısı açar. Kullanıcının kimliği doğrulandıktan sonra tarayıcı, doğrulanmış kimlik bilgilerini kullanarak yerel web sunucusuna yönlendirilir. Bu kimlik doğrulama yöntemi Koşullu Erişim ilkesiyle uyumlu.
Bu yöntemi kullanarak kimlik doğrulaması yaptığınızda, erişim belirteci ${HOME}/.kube/cache/kubelogin dizininde önbelleğe alınır. parametresini --token-cache-dir
kullanarak bu yolu geçersiz kılabilirsiniz.
Taşıyıcı belirteci
Aşağıdaki örnekte, web tarayıcısı etkileşimli akışı ile taşıyıcı belirtecinin nasıl kullanılacağı gösterilmektedir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l interactive
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Sahiplik Kanıtı belirteci
Aşağıdaki örnekte, web tarayıcısı etkileşimli akışıyla SahipLik Kanıtı (PoP) belirtecinin nasıl kullanılacağı gösterilmektedir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l interactive --pop-enabled --pop-claims "u=/ARM/ID/OF/CLUSTER"
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Hizmet sorumlusu
Bu kimlik doğrulama yöntemi, kullanıcıda oturum açmak için bir hizmet sorumlusu kullanır. Bir ortam değişkeni ayarlayarak veya bir komut satırı bağımsız değişkeninde kimlik bilgilerini kullanarak kimlik bilgilerini sağlayabilirsiniz. Kullanabileceğiniz desteklenen kimlik bilgileri bir parola veya Kişisel Bilgi Değişimi (PFX) istemci sertifikasıdır.
Bu yöntemi kullanmadan önce aşağıdaki sınırlamaları göz önünde bulundurun:
- Bu yöntem yalnızca yönetilen Microsoft Entra Kimliği ile çalışır.
- Hizmet sorumlusu en fazla 200 Microsoft Entra grubunun üyesi olabilir.
Ortam değişkenleri
Aşağıdaki örnekte, ortam değişkenlerini kullanarak bir istemci gizli dizisinin nasıl ayarlanacağı gösterilmektedir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l spn
export AAD_SERVICE_PRINCIPAL_CLIENT_ID=<Service Principal Name (SPN) client ID>
export AAD_SERVICE_PRINCIPAL_CLIENT_SECRET=<SPN secret>
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Ardından şu komutu çalıştırın:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l spn
export AZURE_CLIENT_ID=<SPN client ID>
export AZURE_CLIENT_SECRET=<SPN secret>
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Komut satırı bağımsız değişkeni
Aşağıdaki örnekte, bir komut satırı bağımsız değişkeninde istemci gizli dizisinin nasıl ayarlanacağı gösterilmektedir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l spn --client-id <SPN client ID> --client-secret <SPN client secret>
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Uyarı
Komut satırı bağımsız değişkeni yöntemi, gizli diziyi kubeconfig dosyasında depolar.
İstemci sertifikası
Aşağıdaki örnekte, istemci sertifikası kullanarak bir istemci gizli dizisinin nasıl ayarlanacağı gösterilmektedir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l spn
export AAD_SERVICE_PRINCIPAL_CLIENT_ID=<SPN client ID>
export AAD_SERVICE_PRINCIPAL_CLIENT_CERTIFICATE=/path/to/cert.pfx
export AAD_SERVICE_PRINCIPAL_CLIENT_CERTIFICATE_PASSWORD=<PFX password>
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Ardından şu komutu çalıştırın:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l spn
export AZURE_CLIENT_ID=<SPN client ID>
export AZURE_CLIENT_CERTIFICATE_PATH=/path/to/cert.pfx
export AZURE_CLIENT_CERTIFICATE_PASSWORD=<PFX password>
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
PoP belirteci ve ortam değişkenleri
Aşağıdaki örnekte, ortam değişkenlerinden aldığı bir istemci gizli dizisini kullanan bir PoP belirtecinin nasıl ayarlanacağı gösterilmektedir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l spn --pop-enabled --pop-claims "u=/ARM/ID/OF/CLUSTER"
export AAD_SERVICE_PRINCIPAL_CLIENT_ID=<SPN client ID>
export AAD_SERVICE_PRINCIPAL_CLIENT_SECRET=<SPN secret>
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Yönetilen kimlik
Microsoft Entra kimlik doğrulamasını destekleyen kaynaklara bağlanan uygulamalar için yönetilen kimlik doğrulama yöntemini kullanın. Örnek olarak Azure sanal makinesi, sanal makine ölçek kümesi veya Azure Cloud Shell gibi Azure kaynaklarına erişim verilebilir.
Varsayılan yönetilen kimlik
Aşağıdaki örnekte, varsayılan yönetilen kimliğin nasıl kullanılacağı gösterilmektedir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l msi
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
Belirli kimlik
Aşağıdaki örnekte, yönetilen kimliğin belirli bir kimlikle nasıl kullanılacağı gösterilmektedir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l msi --client-id <msi-client-id>
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
İş yükü kimliği
İş yükü kimliği kimlik doğrulama yöntemi, AKS kümelerine erişimin kimliğini doğrulamak için Microsoft Entra ile birleştirilmiş kimlik kimlik bilgilerini kullanır. yöntemi Microsoft Entra tümleşik kimlik doğrulamasını kullanır. Aşağıdaki ortam değişkenlerini ayarlayarak çalışır:
AZURE_CLIENT_ID
: İş yükü kimliğiyle birleştirilmiş Microsoft Entra uygulama kimliği.AZURE_TENANT_ID
: Microsoft Entra kiracı kimliği.AZURE_FEDERATED_TOKEN_FILE
: Kubernetes tarafından öngörülen hizmet hesabı (JWT) belirteci gibi iş yükü kimliğinin imzalı onayını içeren dosya.AZURE_AUTHORITY_HOST
: Microsoft Entra yetkilisinin temel URL'si. Örneğin,https://login.microsoftonline.com/
.
Hizmet sorumlusu kimlik bilgilerini dış sistemlerde depolamadan GitHub veya ArgoCD gibi CI/CD sistemlerinden Kubernetes kümelerine erişmek için bir iş yükü kimliği kullanabilirsiniz. GitHub'dan OpenID Connect (OIDC) federasyonu yapılandırmak için OIDC federasyon örneğine bakın.
Aşağıdaki örnekte iş yükü kimliğinin nasıl kullanılacağı gösterilmektedir:
export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig -l workloadidentity
Düğüm bilgilerini almak için şu kubectl komutunu çalıştırın:
kubectl get nodes
AKS ile kubelogin kullanma
AKS, bir çift birinci taraf Microsoft Entra uygulaması kullanır. Bu uygulama kimlikleri tüm ortamlarda aynıdır.
Sunucu tarafının kullandığı AKS Microsoft Entra sunucusu uygulama kimliğidir 6dae42f8-4368-4678-94ff-3960e28e3630
. Bu uygulama için AKS kümelerine erişen erişim belirteci verilmelidir. Çoğu kubelogin kimlik doğrulama yönteminde ile kubelogin get-token
kullanmanız --server-id
gerekir.
Kubelogin'in kullanıcı adına genel istemci kimlik doğrulaması gerçekleştirmek için kullandığı AKS Microsoft Entra istemci uygulama kimliğidir 80faf920-1908-4b52-b5ef-a8e7bedfc67a
. İstemci uygulama kimliği, cihaz kodunda ve web tarayıcısı etkileşimli kimlik doğrulama yöntemlerinde kullanılır.
İlgili içerik
- AKS tarafından yönetilen Microsoft Entra ID tümleştirmesi nasıl yapılır makalesinde AKS'yi Microsoft Entra ID ile tümleştirmeyi öğrenin.
- AKS'de yönetilen kimlikleri kullanmaya başlamak için bkz . AKS'de yönetilen kimlik kullanma.
- AKS'de iş yükü kimliklerini kullanmaya başlamak için bkz . AKS'de iş yükü kimliği kullanma.
Azure Kubernetes Service