設定檔適用性:等級 2
如果不需要,請關閉從節點網路外部訪問 Kubernetes API 的權限。
在私有叢集中,主節點有兩個端點,一個是私有端點,另一個是公共端點。私有端點是主節點的內部 IP 位址,位於主節點虛擬網路中的內部負載平衡器後方。節點使用私有端點與主節點進行通訊。公共端點則允許從主節點虛擬網路外部訪問
Kubernetes API。
雖然 Kubernetes API 需要授權的令牌才能執行敏感操作,但弱點可能會將 Kubernetes 公開暴露,允許不受限制的訪問。此外,攻擊者可能能夠識別當前的叢集和
Kubernetes API 版本,並確定其是否易受攻擊。除非必要,否則禁用公共端點將有助於防止此類威脅,並要求攻擊者必須在主節點的虛擬網路上才能對 Kubernetes
API 進行任何攻擊。
稽核
檢查以下設定是否適當:
export CLUSTER_NAME=<your cluster name>
export RESOURCE_GROUP=<your resource group name>
az aks show \
--name "${CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--query "{enablePrivateCluster:apiServerAccessProfile.enablePrivateCluster, enablePublicFqdn:apiServerAccessProfile.enablePublicFqdn, authorizedIpRanges:apiServerAccessProfile.authorizedIpRanges}" \
--output json
輸出將類似於:
{
"enablePrivateCluster": true,
"enablePublicFqdn": false,
"authorizedIpRanges": [
"203.0.113.10/32",
"198.51.100.0/24"
]
}
此指令查詢您 AKS Cluster 中
apiServerAccessProfile 的 enablePrivateCluster 屬性。如果輸出為 true,表示已啟動 endpointPrivateAccess,AKS Cluster API 伺服器僅能透過私人端點存取。如果輸出為 false,則表示集群未配置為僅限私人存取,API
伺服器可能根據其他設定透過網路存取。補救
若要使用私人端點,請在您的虛擬網路中建立新的私人端點,然後在您的虛擬網路和新的私人 DNS Zone 之間建立連結。
