設定檔適用性:等級 1 - 叢集 / 控制平面
啟用端點私人存取以限制對叢集控制平面的存取,僅允許授權 IP 的允許清單。
授權網路是一種指定允許存取您叢集控制平面的 IP 位址範圍的方法。Kubernetes 引擎使用傳輸層安全性 (TLS) 和驗證來提供從公共網路安全存取您叢集的控制平面。這使您能夠從任何地方管理您的叢集;然而,您可能希望進一步限制存取至您控制的一組
IP 位址。您可以透過指定授權網路來設定此限制。
限制對授權網路的存取可以為您的容器叢集提供額外的安全效益,包括:
-
Better protection from outsider attacks:授權網路透過限制外部存取至您指定的一組地址(例如來自您所在地的地址),提供額外的安全層。這有助於在叢集的驗證或授權機制出現弱點時保護對您叢集的存取。
-
Better protection from insider attacks:授權網路有助於保護您的叢集,防止公司內部的主憑證意外洩漏。從雲端服務外部和授權 IP 範圍外(例如,來自公司外部的地址)使用的洩漏憑證仍然會被拒絕訪問。
注意預設情況下,端點公共訪問是禁用的。
|
影響
在實施端點私有存取時,請小心確保所有所需的網路都在允許清單(白名單)上,以防止意外阻止外部存取您叢集的控制平面。
稽核
檢查以下項目是否
已啟動:true:export CLUSTER_NAME=<your cluster name>
export REGION_CODE=<your region>
aws eks describe-cluster \
--name "${CLUSTER_NAME}" \
--region "${REGION_CODE}" \
--query \
"cluster.resourcesVpcConfig.{endpointPrivateAccess:endpointPrivateAccess,endpointPublicAccess:endpointPublicAccess,publicAccessCidrs:publicAccessCidrs}" \
--output json
檢查輸出的結果:
"endpointPrivateAccess": true, "endpointPublicAccess": true
檢查
publicAccessCidrs 是否為有效的 IP 位址,且未設定為 0.0.0.0/0:"publicAccessCidrs": [ "203.0.113.5/32" ]
補救
透過啟用 Kubernetes API 伺服器的私人端點存取,您節點與 API 伺服器之間的所有通信都將保持在您的 VPC 內。您也可以限制從網路存取 API 伺服器的
IP 位址,或完全關閉 API 伺服器的網路存取。
考慮到這一點,您可以使用 AWS CLI 相應地更新您的叢集,以確保已啟動私有端點訪問。
如果您選擇同時啟用公共端點存取,那麼您也應該配置允許的 CIDR 區塊列表,以限制來自網路的存取。如果您未指定任何 CIDR 區塊,則公共 API 伺服器端點將預設為
['0.0.0.0/0'],能夠接收並處理來自所有 IP 位址的請求。例如,以下指令將啟用對 Kubernetes API 的私人存取,並允許從單一 IP 位址透過網路進行有限的公共存取(注意 /32 CIDR 後綴):
aws eks update-cluster-config \ --region $REGION_CODE \ --name $CLUSTER_NAME \ --resources-vpc-config endpointPrivateAccess=true,endpointPublicAccess=true,publicAccessCidrs="203.0.113.5/32"
注意指定的 CIDR 區塊不能包含保留地址。您可以指定的 CIDR 區塊數量有上限。詳細資訊請參閱參考部分的 EKS 服務配額連結。更詳細的資訊,請參閱參考部分的 EKS
叢集端點文件連結。
|
