Amazon EKS 安全组要求和注意事项 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。

Amazon EKS 安全组要求和注意事项

本主题介绍 Amazon EKS 集群的安全组要求。

在创建集群时,Amazon EKS 将创建一个名为 eks-cluster-sg-my-cluster-uniqueID 的安全组。该安全组具有以下默认规则:

Rule type 协议 端口 来源 目标位置

入站

全部

全部

自身

出站

全部

全部

0.0.0.0/0IPv4)或 ::/0(IPv6

重要

如果您的集群不需要出站规则,则可以将其删除。如果将其删除,您仍须遵守限制集群流量中列出的最少规则。如果您删除入站规则,则每当集群更新时,Amazon EKS 都会重新创建该规则。

Amazon EKS 会向安全组添加以下标签。如果您删除标签,则每当集群更新时,Amazon EKS 都会将其重新向安全组添加标签。

kubernetes.io/cluster/my-cluster owned
aws:eks:cluster-name my-cluster
Name eks-cluster-sg-my-cluster-uniqueid

Amazon EKS 会自动将此安全组关联到它还创建的以下资源:

  • 在您创建集群时创建的 2–4 个弹性网络接口(在本文档其余部分中称为网络接口)。

  • 您创建的任何托管节点组中节点的网络接口。

默认规则允许所有流量在集群和节点之间自由流动,并允许所有出站流量到任何目的地。在创建集群时,您可以(选择性地)指定您自己的安全组。如果您这样做,那么 Amazon EKS 还会将您指定的安全组与它为集群创建的网络接口关联起来。但是,它不会将它们与您创建的任何节点组关联起来。

您可以在Amazon Web Services Management Console中集群的 Networking(联网)部分下,确定您的集群安全组的 ID。或者,您可以使用以下 Amazon CLI 命令进行这项操作。

aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId
限制集群流量

如果您需要限制集群与节点之间的开放端口,则可以删除默认出站规则并添加集群所需的以下最少规则。如果您删除默认入站规则,则每当集群更新时,Amazon EKS 都会重新创建该规则。

Rule type 协议 端口 目标位置
出站 TCP

443

集群安全组

出站 TCP

10250

集群安全组

出站(DNS) TCP 和 UDP 53 集群安全组

您还必须为以下流量添加规则:

  • 您预计节点要用于节点间通信的任何协议和端口。

  • 出站互联网访问,以便节点可以访问 Amazon EKS API 以在启动时进行集群自检和节点注册。如果您的节点没有互联网访问权限,请查看 私有集群要求 了解其他注意事项。

  • 从 Amazon ECR 或要从中拉取映像的其他容器注册表 API(例如 DockerHub)中拉取容器映像的节点访问权限。有关更多信息,请参阅 Amazon Web Services 一般参考 中的 Amazon IP 地址范围

  • 节点访问 Amazon S3。

  • IPv4IPv6 地址需要单独的规则。

如果您考虑限制规则,我们建议您彻底测试您的所有 Pods,然后再将更改的规则应用于生产集群。

如果您最初使用 Kubernetes 1.14eks.3 或更早版本的平台部署集群,则考虑以下事项:

  • 您可能还拥有控制面板和节点安全组。创建这些组时,它们包括上表中列出的限制规则。这些安全组不再需要,可以删除。但是,您需要确保集群安全组包含这些组所包含的规则。

  • 如果您直接使用 API 部署集群,或者使用 Amazon CLI 或 Amazon CloudFormation 之类的工具创建集群且在创建集群时您未指定安全组,则 VPC 的默认安全组应用到 Amazon EKS 创建的集群网络接口。