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

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 .