You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

增强公网Azure Kubernetes Service(AKS)默认NSG安全规则及集群防护咨询

AKS集群网络安全增强指南

一、AKS默认NSG需添加的核心安全规则

AKS默认生成的NSG无严格限制规则,需补充以下规则实现最小权限访问,满足合规要求:

入站规则(严格管控外部访问)

  • 拒绝所有未明确允许的入站流量:设置优先级最低(如65000)的拒绝规则,确保所有未被前置规则放行的流量被阻断
  • 仅开放必要的管理端口:
    • 允许指定管理IP段(如你的办公公网IP/32)访问节点的22端口(SSH),仅限运维场景使用
    • 允许指定管理IP段访问Kubernetes API服务器的443端口,供本地kubectl操作集群使用
  • 限制集群内部通信:允许AKS节点池内网IP段之间的全端口通信,保障Pod、节点间的正常协作
  • 阻断高风险入站端口:直接禁止公网访问常见高危端口(如3389、8080),除非业务明确需要且有额外防护

出站规则(按需放行,缩小暴露面)

  • 允许HTTPS访问镜像仓库:必须放行443端口的出站流量,用于拉取Docker Hub、ACR等仓库的镜像;建议限定目标为镜像仓库的官方IP段(而非所有公网),进一步降低风险
  • 允许DNS解析:放行53端口的UDP/TCP流量,保障节点和Pod能解析服务、仓库地址
  • 允许AKS依赖服务的流量:根据业务使用的Azure服务(如Azure Monitor、Key Vault),放行对应端口的出站流量
  • 拒绝所有未明确允许的出站流量:设置低优先级的拒绝规则,确保只有前置规则放行的流量能流出集群

二、AKS集群防护最佳实践

  • 使用Azure CNI网络插件:相比kubenet,Azure CNI支持更精细的网络隔离,可配合NetworkPolicy管控Pod间通信
  • 启用Pod级网络策略:通过NetworkPolicy定义Pod间的访问规则,比如仅允许前端Pod访问后端Pod,拒绝无关Pod的通信
  • 使用私有节点池:节点仅分配内网IP,通过Azure Bastion或专用跳转机进行运维访问,避免节点直接暴露公网
  • 定期更新集群和节点:及时升级Kubernetes版本、应用节点OS补丁,修复已知安全漏洞
  • 启用Pod安全标准:通过Azure Policy或Kubernetes原生配置,强制禁止特权容器、root用户运行等高危行为
  • 部署Azure Defender for Kubernetes:实时监控集群威胁,比如异常访问、恶意镜像、权限越权等
  • 使用专用服务账户:为每个应用创建独立服务账户,分配最小权限的RBAC角色,避免使用默认default账户
  • 加密数据传输与存储:启用Azure磁盘加密、Kubernetes Secrets加密,Ingress强制配置HTTPS,保障数据安全

三、规则实施示例(Azure CLI)

1. 添加允许管理IP访问节点SSH的入站规则

az network nsg rule create \
  --name Allow_SSH_From_Mgmt \
  --nsg-name <你的AKS节点池NSG名称> \
  --resource-group <AKS节点池所在资源组> \
  --priority 100 \
  --source-address-prefixes 192.168.1.10/32 \ # 替换为你的管理IP
  --destination-port-ranges 22 \
  --protocol Tcp \
  --access Allow

2. 添加允许访问Docker Hub的出站规则

az network nsg rule create \
  --name Allow_DockerHub_HTTPS \
  --nsg-name <你的AKS节点池NSG名称> \
  --resource-group <AKS节点池所在资源组> \
  --priority 100 \
  --destination-address-prefixes 104.18.0.0/16,104.16.0.0/12 \ # Docker Hub官方IP段
  --destination-port-ranges 443 \
  --protocol Tcp \
  --access Allow \
  --direction Outbound

3. 添加拒绝所有未允许入站流量的规则

az network nsg rule create \
  --name Deny_All_Inbound \
  --nsg-name <你的AKS节点池NSG名称> \
  --resource-group <AKS节点池所在资源组> \
  --priority 65000 \
  --source-address-prefixes '*' \
  --destination-port-ranges '*' \
  --protocol '*' \
  --access Deny \
  --direction Inbound

四、镜像仓库访问的疑问解答

是的,必须允许443端口的出站流量才能正常拉取镜像——无论是Docker Hub还是私有镜像仓库,镜像拉取均通过HTTPS协议(443端口)完成。为提升安全性,不建议放行所有公网443流量,最好限定目标为镜像仓库的官方IP段或Azure服务标签(如ACR可使用AzureContainerRegistry作为目标地址前缀)。


内容的提问来源于stack exchange,提问作者cloudspawn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 01:28:28