設定檔適用性:級別 1
啟用端點私人訪問以限制對叢集控制平面的訪問,僅允許授權 IP 的允許清單。
授權網路是一種指定允許存取您叢集控制平面的 IP 位址範圍的方法。Kubernetes 引擎使用傳輸層安全性 (TLS) 和驗證來提供從公共網路安全存取您叢集的控制平面。這使您能夠從任何地方管理您的叢集;然而,您可能希望進一步限制存取至您控制的一組
IP 位址。您可以透過指定授權網路來設定此限制。
限制訪問授權網路可以為您的容器叢集提供額外的安全效益,包括:
- 更好的防範外部攻擊:授權網路通過限制外部訪問到您指定的一組特定地址(例如來自您場地的地址),提供額外的安全層。這有助於在叢集的驗證或授權機制出現弱點時保護對您叢集的訪問。
- 更好的內部攻擊保護:授權網路有助於保護您的叢集免於公司內部主憑證的意外洩漏。從外部 Azure 虛擬機和授權 IP 範圍之外(例如,來自公司外部的地址)使用的洩漏憑證仍然會被拒絕訪問。
![]() |
注意預設情況下,端點私密存取已關閉。
|
影響
在實施端點私有訪問時,請小心確保所有所需的網路都在允許清單(白名單)上,以防止意外阻止外部訪問您叢集的控制平面。
限制:IP 授權範圍無法應用於私有 API 伺服器端點,它們僅適用於公共 API 伺服器。可用性區域目前僅支援某些地區。Azure Private Link 服務限制適用於私有叢集。不支援使用私有叢集的
Azure DevOps Microsoft 託管代理。建議使用自託管代理。對於需要啟用 Azure Container Registry 與私有 AKS 一起使用的客戶,Container
Registry 虛擬網路必須與代理叢集虛擬網路對等。
稽核
檢查以下項目是否
已啟動:true
:export CLUSTER_NAME=<your cluster name> export RESOURCE_GROUP=<your resource group name> az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --query "apiServerAccessProfile.enablePublicFqdn"
此命令查詢您 AKS 叢集的
apiServerAccessProfile
中的 enablePublicFqdn
屬性。如果 endpointPublicAccess
已啟動,輸出將為 true,允許從網路訪問 AKS 叢集 API 伺服器。如果為 false,則表示 endpointPublicAccess
已關閉,意味著 API 伺服器無法通過網路訪問,這是私人叢集的常見配置。az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --query "apiServerAccessProfile.enablePrivateCluster"
此命令查詢您 AKS 叢集中的
apiServerAccessProfile
內的 enablePrivateCluster
屬性。如果輸出為 true,則表示 endpointPrivateAccess
已啟動,AKS 叢集 API 伺服器已配置為僅能透過私人端點存取。如果輸出為 false,則叢集未配置為僅限私人存取,API 伺服器可能根據其他設定透過網路存取。檢查下列不為空:
az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --query "apiServerAccessProfile.authorizedIpRanges"
此命令查詢您 AKS 叢集中的
apiServerAccessProfile
內的 authorizedIpRanges
屬性。輸出將列出獲授權透過網路存取 AKS 叢集 API 伺服器的 IP 範圍。如果列表為空,則表示沒有任何限制,任何 IP 都可以存取 AKS 叢集的 API
伺服器,假設其他網路和安全性配置允許。矯正性處理
透過啟用對 Kubernetes API 伺服器的私人端點存取,您節點與 API 伺服器之間的所有通訊將保持在您的 VPC 內。您也可以限制從網路存取 API 伺服器的
IP 位址,或完全關閉 API 伺服器的網路存取。考慮到這一點,您可以使用 AKS CLI 相應地更新您的叢集,以確保已啟動私人端點存取。
如果您選擇同時啟用公共端點存取,那麼您也應該配置允許的 CIDR 區塊清單,以限制來自網路的存取。如果您未指定任何 CIDR 區塊,則公共 API 伺服器端點將預設為
['0.0.0.0/0']
,能夠接收和處理來自所有 IP 位址的請求。例如,以下指令將啟用對 Kubernetes API 的私人存取,以及透過網路從單一 IP 位址進行有限的公共存取(注意 /32 CIDR 後綴)。