通过授权IP范围保护AKS API服务器 | 作者:Kenneth Tang

作者:API传播员 · 2026-01-05 · 阅读时间:4分钟

API服务器是Kubernetes集群的核心组件,负责管理整个集群的运行。因此,减少API服务器的攻击面对于保障集群安全至关重要。本文将介绍如何通过定义IP白名单来限制API服务器的访问范围,从而提升安全性


一个关于API服务器安全的故事

几年前,我第一次使用Azure Kubernetes服务(AKS)部署Web应用程序时,为每一层都配置了网络安全组(NSG),以阻止不必要的访问。然而,我发现即使在家工作时,也可以直接访问API服务器,而无需通过VPN连接到办公室。这让我意识到API服务器的访问控制存在漏洞。

直到2019年底,Azure才推出了允许指定IP范围访问API服务器的功能。这一功能极大地提升了API服务器的安全性,使我们能够更好地控制访问权限。


AKS与EKS的对比

本文主要以Azure Kubernetes服务(AKS)为例进行讲解,因为这是我日常使用的Kubernetes平台。如果您使用的是AWS的Elastic Kubernetes服务(EKS),也可以参考类似的配置方法。虽然我尚未验证EKS的具体实现,但其操作方式看起来相对简单。


配置API服务器授权IP范围的先决条件

在配置API服务器的IP白名单之前,需要确保以下条件满足:

  1. 新建的AKS集群必须使用标准SKU负载均衡器。这是创建AKS集群时的默认配置。
  2. 需要明确允许访问API服务器的IP范围。

配置API服务器授权IP范围

通过命令行工具配置API服务器的IP白名单非常简单。以下是一个示例命令:

az aks create 
--resource-group myResourceGroup 
--name myAKSCluster 
--node-count 1 
--vm-set-type VirtualMachineScaleSets 
--generate-ssh-keys 
--load-balancer-sku standard 
--api-server-authorized-ip-ranges 73.140.245.0/24

在上述命令中,--api-server-authorized-ip-ranges参数用于指定允许访问API服务器的IP范围。您可以通过在CIDR格式的IP范围之间插入逗号来添加多个范围。例如:

--api-server-authorized-ip-ranges 73.140.245.0/24,192.168.1.0/24

如果您已经创建了AKS集群,也可以通过Azure门户网站进行编辑。只需选择您的AKS集群,进入“网络”设置页面,即可修改授权的IP范围。


使用IP白名单的注意事项

配置IP白名单后,如果您尝试从未授权的IP地址运行kubectl命令,API服务器将不会响应。这种限制机制可以有效防止未经授权的访问。

我的建议是添加组织的静态IP范围,以确保办公室网络能够稳定访问API服务器。如果您在家工作,可以根据需要动态添加和移除家庭网络的IP地址。


总结

通过为AKS API服务器配置IP白名单,您可以显著减少API服务器的攻击面,提升集群的整体安全性。这种方法简单易行,无论是通过命令行工具还是Azure门户网站,都可以快速完成配置。希望本文的内容能为您在保护Kubernetes集群安全方面提供帮助。


参考文献

原文链接: https://medium.com/@kennethtcp/secure-aks-api-server-by-authorized-ip-ranges-69cb67480c97