GKE on AWS 的安全群组

本主题介绍了 GKE on AWS 所需的 AWS 安全群组 (SG)。

如果您安装管理服务使用现有的 AWS VPC,则 anthos-gke 会为您创建安全群组。您可以使用其他安全群组 ID 列表配置 AWSClusterAWSNodePool CRD。

下图概述了 GKE on AWS 如何使用安全群组连接到 Google Cloud 和 AWS 服务。

从 GKE on AWS 组件到 Google Cloud 和 AWS 服务的连接和相关端口的示意图。

管理服务安全群组

借助管理服务安全群组,您可以通过 HTTPS 访问管理服务 API。如果您已配置堡垒主机,则允许来自堡垒安全群组的入站流量。

如果您在现有 AWS VPC 中创建一个 GKE on AWS 环境,则必须有一个允许进行以下连接的安全群组。

类型 协议 端口 地址 说明
入站 TCP 443 VPC CIDR 允许通过 HTTPS 从 AWS VPC 连接。
入站 TCP 22 堡垒主机 SG 允许通过 SSH 隧道从堡垒主机连接 (仅包含在专用 VPC 中)。
出站 TCP 80 0.0.0.0/0 允许出站 HTTP。
出站 TCP 443 0.0.0.0/0 允许出站 HTTPS。

出站网域访问权限

管理服务需要以下网域的出站访问权限。

  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • oauth2.googleapis.com
  • storage.googleapis.com
  • www.googleapis.com
  • gcr.io
  • k8s.gcr.io
  • EC2-REGION.ec2.archive.ubuntu.com

EC2-REGION 替换为在其中运行 GKE on AWS 安装的 AWS EC2 区域。例如 us-west-1.ec2.archive.ubuntu.com/

如果您是将 Cloud Service Mesh 与 Prometheus 和 Kiali 搭配使用,请允许从以下网域进行出站访问:

  • docker.io
  • quay.io

堡垒主机安全群组(可选)

您可以使用其群组允许的堡垒主机安全群组连接来连接到 GKE on AWS 管理服务和用户集群。这是可选群组,仅当您使用 anthos-gke专用 VPC 中创建 GKE on AWS 安装时才会包含该群组。

类型 协议 端口 地址 说明
入站 TCP 22 AWSManagementService 配置中的 bastionAllowedSSHCIDRBlocks 中的 CIDR 地址块。 允许通过 SSH 连接到堡垒主机。
出站 TCP 22 0.0.0.0/0 允许出站 SSH。
出站 TCP 80 0.0.0.0/0 允许出站 HTTP。
出站 TCP 443 0.0.0.0/0 允许出站 HTTPS。

控制层面安全群组

控制平面安全群组允许在控制平面节点与管理服务之间以及在控制平面节点与节点池之间建立连接。

控制平面由 AWS 网络负载均衡器 (NLB) 后面的三个 EC2 实例组成。这些实例接受从其他节点、节点池节点和 NLB 上的 etcd 实例进行连接。为了更新 GKE on AWS 组件,允许所有出站 HTTP/HTTPS 流量。

您可以在 AWSCluster 定义中指定安全群组 ID。

类型 协议 端口 地址 说明
入站 TCP 2380 此 SG 允许复制控制层面 etcd。
入站 TCP 2381 此 SG 允许复制控制层面 etcd 事件。
入站 TCP 443 节点池 SG 允许通过 HTTPS 从节点池节点连接。
入站 TCP 443 AWS VPC CIDR 范围 允许通过 HTTPS 从负载平衡器和管理服务连接。
入站 TCP 11872 AWS VPC CIDR 范围 对负载均衡器进行 HTTP 健康检查。
出站 TCP 22 节点池 SG 允许通过 SSH 隧道连接到节点池(适用于 1.20 版及更低版本的集群)。
入站 TCP 8132 节点池 SG 允许从节点池进行 Konnectivity 连接(适用于 1.21 版及更高版本的集群)。
出站 TCP 80 0.0.0.0/0 允许出站 HTTP。
出站 TCP 443 0.0.0.0/0 允许出站 HTTPS。
出站 TCP 2380 此 SG 允许复制控制层面 etcd。
出站 TCP 2381 此 SG 允许复制控制层面 etcd 事件。
出站 TCP 10250 节点池 SG 允许从控制层面连接到 Kubelet。

节点池安全群组

节点池安全群组允许从控制层面和其他节点进行连接。您可以在 AWSNodePool 定义中指定安全群组 ID。

类型 协议 端口 地址 说明
入站 TCP 全部 此 SG 允许 pod 到 pod 的通信。
入站 TCP 22 控制层面 SG 允许从控制平面进行 SSH 隧道传输(适用于 1.20 版及更低版本的集群)。
出站 TCP 8132 控制层面 SG 允许与控制平面建立 Konnectivity 连接(适用于 1.21 版及更高版本的集群)。
入站 TCP 443 控制层面 SG 允许从控制层面连接到 Kubelet。
入站 TCP 10250 控制层面 SG 允许从控制层面连接到 Kubelet。
出站 TCP 全部 此 SG 允许 pod 到 pod 的通信。
出站 TCP 80 0.0.0.0/0 允许出站 HTTP。
出站 TCP 443 0.0.0.0/0 允许出站 HTTPS。