設定檔適用性:等級 2
如果不需要,請關閉從節點網路外部訪問 Kubernetes API。
在私人叢集中,主節點有兩個端點,一個是私人端點,另一個是公共端點。私人端點是主節點的內部 IP 位址,位於主節點虛擬網路中的內部負載平衡器後方。節點使用私人端點與主節點通信。公共端點使
Kubernetes API 能夠從主節點虛擬網路外部進行訪問。
儘管 Kubernetes API 需要授權的令牌來執行敏感操作,但弱點可能會將 Kubernetes 公開暴露,允許不受限制的訪問。此外,攻擊者可能能夠識別當前的叢集和
Kubernetes API 版本,並確定其是否易受攻擊。除非必要,否則禁用公共端點將有助於防止此類威脅,並要求攻擊者必須在主節點的虛擬網路上才能對 Kubernetes
API 進行任何攻擊。
稽核
檢查以下項目是否為
'已啟動: false'
: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 伺服器無法透過網路訪問,這是私人叢集的常見配置。檢查以下項目是否為
'已啟動: true'
:az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --query "apiServerAccessProfile.enablePrivateCluster"
此命令查詢您 AKS 叢集的
apiServerAccessProfile
中的 enablePrivateCluster
屬性。如果輸出為 true,則表示 endpointPrivateAccess
已啟動,且 AKS 叢集 API 伺服器配置為僅能透過私人端點存取。如果輸出為 false,則叢集未配置為僅限私人存取,API 伺服器可能根據其他設定可透過網路存取。矯正性處理
若要使用私人端點,請在您的虛擬網路中建立新的私人端點,然後在您的虛擬網路和新的私人 DNS 區域之間建立連結。