Güvenilen Erişim'i kullanarak Azure Kubernetes Service'te Azure kaynaklarına güvenli erişim elde edin
Bu makalede, Güvenilen Erişim'i kullanarak Azure Kubernetes Service'teki (AKS) Kubernetes API sunucunuza Azure hizmetleriniz için nasıl güvenli erişim elde edebilirsiniz?
Güvenilen Erişim özelliği, hizmetlere özel uç nokta gerektirmeden Azure arka ucunu kullanarak AKS API sunucusuna güvenli erişim sağlar. Bu özellik, Microsoft Entra izinlerine sahip kimliklere güvenmek yerine, AKS kümelerinizle kullanmak istediğiniz yönetilen hizmetler ve uygulamalarla kimlik doğrulaması yapmak için sistem tarafından atanan yönetilen kimliğinizi kullanabilir.
Not
Güvenilen Erişim API'sini genel olarak kullanabilirsiniz. Azure CLI için genel kullanılabilirlik (GA) desteği sağlıyoruz, ancak hala önizleme aşamasındadır ve aks-preview uzantısının kullanılması gerekir.
Güvenilen Erişim özelliğine genel bakış
Güvenilen Erişim aşağıdaki senaryoları ele aldı:
- Yetkili bir IP aralığı ayarlanmışsa veya özel bir kümedeyse, özel uç nokta erişim modeli uygulamadığınız sürece Azure hizmetleri Kubernetes API sunucusuna erişemeyebilir.
- Bir Azure hizmet yöneticisine Kubernetes API'sine erişim vermek en düşük ayrıcalık erişimi en iyi uygulamasını izlemez ve ayrıcalık yükseltmelerine veya kimlik bilgilerinin sızma riskine yol açabilir. Örneğin, yüksek ayrıcalıklı hizmet-hizmet izinleri uygulamanız gerekebilir ve bunlar denetim gözden geçirmesinde ideal değildir.
Rol bağlaması olarak adlandırılan bir Azure kaynağı kullanarak AKS kümelerinize erişmek için izin verilen kaynakların sistem tarafından atanan yönetilen kimliğine açık onay vermek için Güvenilen Erişim'i kullanabilirsiniz. Azure kaynaklarınız AKS kümelerine AKS bölgesel ağ geçidi üzerinden sistem tarafından atanan yönetilen kimlik kimlik doğrulaması aracılığıyla erişilir. Uygun Kubernetes izinleri rol adı verilen bir Azure kaynağı aracılığıyla atanır. Güvenilen Erişim aracılığıyla, özel kümeler, yerel hesapları kapalı olan kümeler, Microsoft Entra kümeleri ve yetkili IP aralığı kümeleri dahil ancak bunlarla sınırlı olmamak üzere farklı yapılandırmalara sahip AKS kümelerine erişebilirsiniz.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Sistem tarafından atanan yönetilen kimliği destekleyen kaynak türleri.
- Azure CLI sürüm 2.53.0 veya üzeri. Sürümünüzü bulmak için komutunu çalıştırın
az --version
. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme. - Farklı senaryolarda hangi rollerin kullanılacağını öğrenmek için şu makalelere bakın:
- Kümeye erişmek istediğiniz Azure kaynağıyla aynı abonelikte bir AKS kümesi oluşturun.
Kümenize bağlanma
komutunu kullanarak kümenize bağlanacak şekilde az aks get-credentials
yapılandırınkubectl
.
export RESOURCE_GROUP_NAME="myResourceGroup"
export CLUSTER_NAME="myClusterName"
az aks get-credentials --resource-group ${RESOURCE_GROUP_NAME} --name ${CLUSTER_NAME} --overwrite-existing
komutunu kullanarak kubectl get
kümenize bağlantıyı doğrulayın.
kubectl get nodes
Gerekli Güvenilen Erişim rollerini seçin
Seçtiğiniz roller, AKS kümesine erişmek istediğiniz Azure hizmetlerine bağlıdır. Azure hizmetleri, Azure hizmetinden AKS'ye bağlantıyı oluşturan rollerin ve rol bağlamalarının oluşturulmasına yardımcı olur.
İhtiyacınız olan rolleri bulmak için AKS'ye bağlanmak istediğiniz Azure hizmetinin belgelerine bakın. Komutunu kullanarak Azure hizmeti için kullanılabilir rolleri listelemek için Azure CLI'yi az aks trustedaccess role list --location <location>
de kullanabilirsiniz.
Güvenilen Erişim rol bağlaması oluşturma
Hangi rolü kullanacağınızı onayladıktan sonra, AKS kümesinde Güvenilen Erişim rol bağlaması oluşturmak için Azure CLI'yı kullanın. Rol bağlaması, seçtiğiniz rolü Azure hizmetiyle ilişkilendirir.
export ROLE_BINDING_NAME="myRoleBindingName"
export SOURCE_RESOURCE_ID="mySourceResourceID"
export ROLE_NAME_1="myRoleName1"
export ROLE_NAME_2="myRoleName2"
az aks trustedaccess rolebinding create --resource-group ${RESOURCE_GROUP_NAME} --cluster-name ${CLUSTER_NAME} --name ${ROLE_BINDING_NAME} --source-resource-id ${SOURCE_RESOURCE_ID} --roles ${ROLE_NAME_1},${ROLE_NAME_2}
Sonuçlar:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.ContainerService/managedClusters/${CLUSTER_NAME}/trustedAccessRoleBindings/${ROLE_BINDING_NAME}",
"name": "${ROLE_BINDING_NAME}",
"provisioningState": "Succeeded",
"resourceGroup": "${RESOURCE_GROUP_NAME}",
"roles": [
"${ROLE_NAME_1}",
"${ROLE_NAME_2}"
],
"sourceResourceId": "${SOURCE_RESOURCE_ID}",
"systemData": null,
"type": "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
}
Mevcut Bir Güvenilen Erişim rol bağlamayı güncelleştirme
İlişkili bir kaynak hizmete sahip mevcut bir rol bağlaması için komutunu kullanarak rol bağlamasını az aks trustedaccess rolebinding update --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --roles $ROLE_NAME_3,$ROLE_NAME_4
yeni rollerle güncelleştirebilirsiniz. Bu komut, rol bağlamasını belirttiğiniz yeni rollerle güncelleştirir.
Not
Eklenti yöneticisi kümeleri beş dakikada bir güncelleştirir, bu nedenle yeni rol bağlamasının geçerlilik kazanması beş dakikaya kadar sürebilir. Yeni rol bağlaması yürürlüğe girmeden önce, mevcut rol bağlaması çalışmaya devam ediyor.
Geçerli rol bağlamasını az aks trusted access rolebinding list
denetlemek için komutunu kullanabilirsiniz.
Güvenilen Erişim rol bağlaması gösterme
komutunu kullanarak belirli bir Güvenilen Erişim rol bağlamasını az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
gösterin.
Küme için tüm Güvenilen Erişim rol bağlamalarını listeleme
komutunu kullanarak bir küme için tüm Güvenilen Erişim rol bağlamalarını listeleyin az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
.
İlgili içerik
Azure Kubernetes Service