如何在我的 Amazon EKS 集群中将 API 访问权限锁定到特定 IP 地址?

上次更新时间:2020 年 1 月 16 日

我想要在我的 Amazon Elastic Kubernetes Service (Amazon EKS) 集群中将 API 访问权限锁定到特定 IP 地址。

简短描述

您可以锁定两种类型的 Amazon EKS API 服务器访问终端节点的访问权限:

公开访问终端节点。 默认情况下,API 服务器访问权限对公众开放。您可以将访问权限锁定到特定的 CIDR 块和 IP 地址。 私有访问终端节点。 API 服务器只能从 Amazon Virtual Private Cloud (Amazon VPC) 内部访问。您可以通过集群安全组进一步将访问权限锁定到特定 VPC CIDR 块。

解决方法

锁定 API 公开访问终端节点

    打开 Amazon EKS 控制台。 在导航窗格中选择集群,然后选择您的集群。 在联网部分中,选择更新。 展开高级设置
    注意:高级设置选项仅在您启用公开访问后才会显示。 输入您希望允许从其进行访问的 CIDR 块。
    注意:例如,您可以将从 54.240.193.12954.240.193.190 的 IP 地址范围汇总为 54.240.193.129/26。您可以使用 /32 表示法形成一个 IP 地址(例如,54.240.193.130/32)。这些 CIDR 块不能包括预留地址。 (可选)要输入其他块,请选择添加源。 选择更新

请记住以下几点:

如果您未指定任何 CIDR 块,则公开 API 服务器终端节点将接收来自所有 (0.0.0.0/0) IP 地址的请求。 最佳实践是启用私有终端节点访问权限,以便工作线程节点和 AWS Fargate Pod(如果使用)可以通过私有终端节点与集群通信。 如果未启用私有终端节点,则公开访问终端节点 CIDR 源必须包括来自 Amazon VPC 的出口源。例如,如果在私有子网中有一个工作线程节点,该工作节点通过 NAT 网关与 Internet 通信,则必须将 NAT 网关的出站 IP 地址添加到公开终端节点允许的 CIDR 块中。

锁定 API 私有访问终端节点

    打开 Amazon EKS 控制台。 在导航窗格中选择集群,然后选择您的集群。 在联网部分中,记下您的集群的安全组和其他安全组。 将入口规则添加到您在步骤 3 中记下的任何一个安全组。
    注意:对于您的入口规则,请设置 TCP 作为协议,并设置 443 作为允许访问的端口和源 IP。