Amazon EKS 安全群組考量 - Amazon EKS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon EKS 安全群組考量

下列各節描述 叢集、控制平面和節點安全群組的建議或最低必要安全群組設定。這些考量視您使用的 Kubernetes 版本和Amazon EKS平台版本而定。

叢集安全群組

Amazon EKS 叢集,從 Kubernetes 版本 1.14 平台版本eks.3 開始,在建立叢集安全群組時建立叢集安全群組。當較早版本的叢集升級到此 Kubernetes 版本和平台版本時,也會發生此問題。叢集安全群組的設計目的是允許來自控制平面和受管節點群組的所有流量彼此之間可以自由流動。透過將叢集安全群組指派給 建立的彈性網路界面Amazon EKS,允許控制平面與受管節點群組執行個體通訊,您不需要設定複雜的安全群組規則,即可允許此通訊。獲指派此安全群組的任何執行個體或網路介面都可以使用此安全群組自由地與其他資源通訊。

您可以在 中,在叢集的 AWS 管理主控台Networking (聯網) 區段下方,或使用AWS CLI下列命令來檢查叢集的叢集安全群組:

aws eks describe-cluster --name <cluster_name> --query cluster.resourcesVpcConfig.clusterSecurityGroupId

我們建議您將叢集安全群組新增至所有現有和未來的節點群組。如需詳細資訊,請查看 中的 VPC https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html 安全群組Amazon VPC 使用者指南。 Amazon EKS 受管節點群組已自動設定為使用叢集安全群組。

通訊協定 連接埠 Source (來源) 目的地

建議的輸入流量

全部

全部

Self

建議的輸出流量

全部

全部

0.0.0.0/0

限制叢集流量

如果您需要限制控制平面和節點之間的開放連接埠,可以修改預設叢集安全群組,僅允許以下所需的最低連接埠。所需的最低連接埠與舊版連接埠相同Amazon EKS。

通訊協定 連接埠 Source (來源) 目的地
最低的輸入流量 TCP

443

叢集安全群組
最低傳入流量* TCP

10250

叢集安全群組
最低的輸出流量 TCP

443

叢集安全群組

最低的輸出流量* TCP

10250

叢集安全群組

*若有需要,應該包含您預期節點用於節點間通訊的任何通訊協定和連接埠。節點在推出時還需要對外網際網路存取Amazon EKSAPIs以進行叢集自我檢查和節點登記,或者您已在 中實作必要的設定私有叢集。若要提取容器映像,它們需要存取 Amazon S3 Amazon ECR APIs、 和任何其他需要從中提取映像的容器登記,例如 DockerHub。 如需詳細資訊,請查看 AWS 一般參考中的 AWS IP 地址範圍

控制平面和節點安全群組

對於在 Kubernetes 1.14 版和 Amazon EKS平台版本之前建立的叢集eks.3,控制平面對節點通訊是透過手動建立控制平面安全群組,並在您建立叢集時指定該安全群組來設定。在建立叢集時,此安全群組會連接到由 建立的網路界面Amazon EKS,允許 控制平面和 節點之間的通訊。這些網路界面的描述中有 Amazon EKS <cluster name>

注意

如果您直接使用 API,或使用 之類的工具來AWS CloudFormation建立叢集,但未指定安全群組,則會將 VPC 的預設安全群組套用至控制平面跨帳號網路界面。

您可以在 中,於叢集的 AWS 管理主控台Networking (聯網) 區段下方 (列為 Additional security groups (其他安全群組)),或使用下列 命令來檢查叢集的控制平面安全群組AWS CLI:

aws eks describe-cluster --name <cluster_name> --query cluster.resourcesVpcConfig.securityGroupIds

如果您在AWS CloudFormation演練中使用 入門Amazon EKS 範本來推出 節點, AWS CloudFormation 會修改控制平面安全群組以允許與節點進行通訊。 Amazon EKS 極力建議您為每個控制平面使用專用安全群組 (每個叢集一個)。如果您與其他 Amazon EKS 叢集或資源共用控制平面安全群組,您可以封鎖或中斷這些資源的連接。

節點的安全群組和控制平面對節點通訊的安全群組已設定,可防止對節點中權限連接埠的通訊。如果您的應用程式需要從控制平面或節點新增的傳入或傳出存取,您必須將這些規則新增至與叢集相關聯的安全群組。如需詳細資訊,請參閱 Amazon VPC 使用者指南 中的 VPC 的安全群組.

注意

若要允許在特殊權限連接埠上的代理功能或自行執行 CNCF 一致性測試,您必須編輯控制平面和節點的安全群組。節點端的安全群組需要允許從控制平面對連接埠 0-65535 的傳入存取,而控制平面端需要允許從連接埠 0-65535 傳出存取節點。

控制平面安全群組
通訊協定 連接埠範圍 Source (來源) 目的地
最低的輸入流量

TCP

443

所有節點安全群組

當允許叢集端點私有存取:任何導致 API 伺服器使用者端流量的安全群組 (例如,您叢集 VPC 中堡壘主機上的kubectl命令)

建議的輸入流量

TCP

443

所有節點安全群組

當允許叢集端點私有存取:引發 API 伺服器使用者端流量的任何安全群組 (例如您叢集 VPC 中堡壘主機的kubectl命令)

最低的輸出流量

TCP

10250

所有節點安全群組

建議的輸出流量

TCP

1025-65535

所有節點安全群組

節點安全群組
通訊協定 連接埠範圍 Source (來源) 目的地
最低傳入流量 (從其他節點)

您希望節點用於節點間通訊的任何通訊協定

您希望節點用於節點間通訊的任何連接埠

所有節點安全群組

最低傳入流量 (從控制平面)

TCP

10250

控制平面安全群組

建議的輸入流量

全部

TCP

全部

443、1025-65535

所有節點安全群組

控制平面安全群組

最低的輸出流量*

TCP

443

控制平面安全群組

建議的輸出流量

全部

全部

0.0.0.0/0

*節點也需要存取 Amazon EKS APIs ,才能在推出時透過網際網路或 VPC 端點進行叢集自我檢查和節點登記。若要提取容器映像,它們需要存取 Amazon S3 和 Amazon ECR APIs (以及任何其他容器登記,例如 DockerHub)。如需詳細資訊,請查看 https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html 和 中的 AWS General ReferenceAWS IP 地址範圍私有叢集

其中一個也是與您的節點關聯的安全群組應該套用以下標籤:如需標記的詳細資訊,請查看透過主控台使用標籤

金鑰 數值

kubernetes.io/cluster/<cluster-name>

owned