查看集群的 Amazon EKS 安全组要求
本主题介绍 Amazon EKS 集群的安全组要求。
默认集群安全组
在创建集群时,Amazon EKS 将创建一个名为 eks-cluster-sg-
的安全组。该安全组具有以下默认规则:my-cluster
-uniqueID
规则类型 | 协议 | 端口 | 来源 | 目标位置 |
---|---|---|---|---|
入站 |
全部 |
全部 |
自身 |
|
出站 |
全部 |
全部 |
0.0.0.0/0( |
重要
如果您的集群不需要出站规则,则可以将其删除。如果将其删除,您仍须遵守限制集群流量中列出的最少规则。如果您删除入站规则,则每当集群更新时,Amazon EKS 都会重新创建该规则。
Amazon EKS 会向安全组添加以下标签。如果您删除标签,则每当集群更新时,Amazon EKS 都会将其重新向安全组添加标签。
密钥 | 值 |
---|---|
|
|
|
|
|
|
Amazon EKS 会自动将此安全组关联到它还创建的以下资源:
-
在您创建集群时创建的 2–4 个弹性网络接口(在本文档其余部分中称为网络接口)。
-
您创建的任何托管节点组中节点的网络接口。
默认规则允许所有流量在集群和节点之间自由流动,并允许所有出站流量到任何目的地。在创建集群时,您可以(选择性地)指定您自己的安全组。如果您这样做,那么 Amazon EKS 还会将您指定的安全组与它为集群创建的网络接口关联起来。但是,它不会将它们与您创建的任何节点组关联起来。
您可以在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 创建的集群网络接口。
共享安全组
Amazon EKS 支持共享安全组。
-
安全组 VPC 关联将安全组与同一账户和区域中的多个 VPC 关联起来。
-
在《Amazon VPC 用户指南》中了解如何将安全组与多个 VPC关联起来。
-
-
共享安全组允许您与其他 AWS 账户共享安全组。账户必须位于同一 AWS 组织。
-
在《Amazon VPC 用户指南》中了解如何与组织共享安全组。
-
-
安全组始终仅限于单个 AWS 区域。
Amazon EKS 注意事项
-
EKS 对共享或多 VPC 安全组的要求与标准安全组相同。