協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EKS 安全群組與考量
本主題說明 Amazon EKS 叢集的安全群組要求。
當您建立叢集時,Amazon EKS 會建立名稱為 eks-cluster-sg-
的安全群組。安全性群組具有以下預設規則:my-cluster
-uniqueID
規則類型 | 通訊協定 | 連接埠 | 來源 | 目的地 |
---|---|---|---|---|
傳入 |
全部 |
全部 |
Self | |
傳出 |
全部 |
全部 |
0.0.0.0/0( |
重要
如果您的叢集不需要傳出規則,則可以將其移除。如果將其移除,您仍必須具有限制叢集流量中列出的最低規則。如果您移除傳入規則,則 Amazon EKS 會在叢集更新時重新建立該規則。
Amazon EKS 會將下列標籤新增至安全群組。如果您移除標籤,則 Amazon EKS 會在叢集更新時將其新增回安全群組。
金鑰 | 值 |
---|---|
kubernetes.io/cluster/ |
owned |
aws:eks:cluster-name |
|
Name |
eks-cluster-sg- |
Amazon EKS 會自動將此安全群組與以下資源關聯,其資源也會建立:
-
2—4 個彈性網路界面(本文件的其餘部分稱為網路界面),網路界面於叢集建立時建立。
-
您建立的任何受管節點群組中節點的網路界面。
此安全群組的設計目的是允許來自控制平面和 受管節點群組的所有流量彼此之間可以自由流動,以及允許所有的輸出流量流往任何目的地。當您建立叢集時,您可以(選用)指定自己的安全群組。如果您指定自己的安全群組,則 Amazon EKS 還會將您指定的安全群組與為叢集建立的網路界面建立關聯。但是,其不會與您建立的任何節點群組相關聯。
您可以在叢集的 Networking (聯網) 區段下的 AWS Management Console 中判定叢集安全群組的 ID。或者,您可以執行下列 AWS CLI 命令,即可執行這項操作:
aws eks describe-cluster --name
my-cluster
--query cluster.resourcesVpcConfig.clusterSecurityGroupId
限制叢集流量
如果您需要限制叢集和節點之間的開放連接埠,則可以移除預設傳出規則,並且新增叢集所需的下列最低規則:如果您移除預設傳入規則,Amazon EKS 會在叢集更新時重新建立該規則。
規則類型 | 通訊協定 | 連線埠 | 目的地 |
---|---|---|---|
傳出 | TCP |
443 |
叢集安全群組 |
傳出 | TCP |
10250 |
叢集安全群組 |
傳出 (DNS) | TCP 和 UDP | 53 | 叢集安全群組 |
您還必須為以下流量新增規則:
-
您預期節點用於節點間通訊的任何通訊協定和連接埠。
-
需要對外網際網路存取,以便叢集在啟動時存取 Amazon EKS API,進行叢集自我檢查和節點註冊。如果您的節點沒有網際網路存取,請檢閱 私有叢集要求 以了解其他考量事項。
-
需要虛擬節點存取以從 Amazon ECR 或是從提取映像所需的其他容器登錄檔 API 提取映像,例如 DockerHub。如需詳細資訊,請參閱《AWS 一般參考》中的 AWS IP 地址範圍。
-
節點對 Amazon S3 進行存取。
-
需要
IPv4
和IPv6
地址的個別規則。
如果您正在考慮限制規則,建議您先徹底測試 Pods,之後再將變更的規則套用到生產叢集。
如果您最初使用 Kubernetes 1.14
和 eks.3
平台版本或更舊版本部署叢集,則請考慮下列事項:
-
您可能還擁有控制平面和節點安全群組。建立這些群組時,群組包括之前的表格中列出的受限制的規則。不再需要這些安全群組,可以進行移除。但是,您需要確定您的叢集安全群組包含那些群組包含的規則。
-
如果您直接使用 API 部署叢集,或者您使用 AWS CLI 或 AWS CloudFormation 之類的工具建立叢集,且在叢集建立時未指定安全群組,則 VPC 的預設安全群組會套用到 Amazon EKS 建立的叢集網路界面。