网易首页 > 网易号 > 正文 申请入驻

一个工程师把K8s藏进内网,然后事情变复杂了

0
分享至

导读:把Kubernetes控制面从公网撤下来,是安全团队的经典操作。但代价是:每次kubectl都要先连VPN、跳堡垒机、配路由表——这位工程师把整套流程自动化了,还顺手塞了个"政策警察"进去。

一、先画张图:这套架构长什么样


想象一个三层同心圆。

最外层是公网,只有一个入口:一台跑着OpenVPN的堡垒机。中间层是三个私有子网,EKS的节点泡在里面。最核心的是控制平面——API服务器——彻底隐身,连AWS控制台都找不到它。

这位工程师用Terraform把这四层全串起来:/16的VPC切出三个/24私有子网,留一个公共子网给入口。堡垒机模块自动生成客户端证书,EKS节点组按实例类型分类管理。

「Note: This setup is for demonstration. For production-grade architectures, always refer to aws-ia to align with AWS best practices.」

他特意加了这句免责声明。演示归演示,但生产环境的坑他已经帮你标出来了。

二、VPN隧道:工程师的"隐形斗篷"

控制平面进私有子网后,本地机器直接失联。

解决路径是:先连VPN,把VPC网段路由进隧道,再让kubectl走这条暗道。具体指令很朴素——sudo openvpn --config client.ovpn,然后aws eks update-kubeconfig更新凭证。

成功后的反馈也很朴素:一行节点列表,STATUS全是Ready。

这套流程的隐藏成本在于:每次新同事 onboarding,都要重复一遍证书分发、路由配置、权限同步。Terraform在这里的价值不是"自动化",而是把"人可能搞砸的步骤"变成"代码里的一次性定义"。

三、Kyverno进场:给集群雇了个"安检员"

基础设施锁死后,战场转向工作负载。

Kyverno(发音类似"Govern No",治理之否)的定位很直白:用Kubernetes原生的方式管理策略。不引外部DSL,不写Rego语言,YAML即策略。

安装两条命令:

helm repo add kyverno https://kyverno.github.io/kyverno/

helm install kyverno --namespace kyverno --create-namespace kyverno/kyverno

再搭个可视化看板:

helm install policy-reporter policy-reporter/policy-reporter --set ui.enabled=true --set kyvernoPlugin.enabled=true

现在集群里多了两个常驻角色:Kyverno本身(Webhook拦截器+策略引擎),以及policy-reporter(把违规事件翻译成人类能读的仪表盘)。

四、两种执法模式:自动修正 vs 事后审计

Kyverno的运作逻辑分两支。

Enforce模式:请求进集群时直接改写。比如强制给Pod塞securityContext,把runAsUser从0改成非零值。用户无感知,但容器启动参数已被篡改。

Audit模式:只看不拦,违规事件进日志、进看板、进告警通道。适合灰度上线——先观察哪些工作负载会踩线,再决定要不要一刀切。

工程师的测试案例很典型:给Nginx套一个PSS Restricted级别的变异策略,结果Pod进入CrashLoopBackOff。因为官方镜像默认以root启动,而Restricted规则禁止这种行为。

这里的微妙之处在于:安全策略与业务可用性的冲突,被提前暴露在了预发环境,而不是生产故障里。

五、拆解那张核心图:从"能跑"到"敢跑"

回到那张架构图(https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2026%2F0429%2F6a6f4db7j00te9gsj000td000lq00dnp.jpg&thumbnail=660x2147483647&quality=80&type=jpg),我们可以逐层翻译它的设计意图。

第一层,网络隔离。不是"加个防火墙规则"那种敷衍,而是物理意义上的不可达——控制平面没有公网IP,没有NLB,没有API Gateway。攻击者即使拿到AK/SK,也得先攻破VPN才能摸到API服务器。

第二层,身份收敛。所有管理流量收敛到堡垒机,堡垒机的访问日志成为单一审计源。Terraform在这里确保:堡垒机的安全组规则、IAM角色、密钥轮换周期,全是代码化的、可回滚的。

第三层,策略即代码。Kyverno的策略是Kubernetes对象,意味着它们享受同样的版本控制、CI/CD流水线、回滚机制。安全团队不再发PDF规范,而是发Git PR。

第四层,可观测闭环。policy-reporter把策略违规事件从etcd的深渊里捞出来,变成UI上的红黄绿灯。安全工程师终于不用写grep脚本扒审计日志了。

六、这套方案的"不性感"之处

值得注意的反而是作者没吹的部分。

没有服务网格。没有零信任架构。没有eBPF内核探针。就是VPC子网划分+VPN隧道+一个CNCF沙箱项目(Kyverno 2020年才进入CNCF,2022年毕业)。

这种克制本身是一种信号:Kubernetes安全的主流痛点,可能不在"炫技式创新",而在"基础工程纪律的落地"。

另一个隐藏细节:作者反复强调aws-ia(AWS Infrastructure Automation)作为生产参考。这意味着演示代码有意做了简化——比如单可用区部署、固定实例类型、无自动扩缩容。抄作业的时候得自己补这些坑。

七、为什么这件事现在值得看

三个背景叠加。

一是EKS的默认配置仍在"方便上手"和"安全合规"之间摇摆。控制平面公网可访问、节点IAM角色过度授权、Pod安全标准未启用——这三项在新集群里全是开着的。

二是Terraform在Kubernetes生态的地位微妙。Crossplane和Pulumi喊了多年"替代",但Terraform的模块生态(尤其是aws-ia的成熟度和)仍是企业采购的硬指标。

三是Kyverno vs OPA Gatekeeper的战争进入尾声。OPA的Rego语言学习曲线陡峭,Kyverno的YAML原生策略对存量DevOps团队更友好。CNCF毕业项目的背书,正在加速这一分化。

这位工程师的选择,本质上是一次"保守派激进主义":用最成熟的工具链,解决最基础的攻击面问题。

八、给你的 checklist

如果你正在规划类似架构,这张图里的决策点可以抄:

网络层:控制平面是否必须公网可达?如果团队100%远程,VPN是刚需;如果有固定办公区,专线+PrivateLink可能是更优解。

接入层:堡垒机用OpenVPN还是AWS Client VPN?前者免费但自运维,后者按连接计费但免证书管理。作者的Terraform模块选了前者,成本敏感型团队注意权衡。

策略层:Kyverno的mutation功能启用前,务必在audit模式跑够流量样本。自动改写容器配置可能引发意想不到的业务中断——那位Nginx的CrashLoopBackOff就是预警。

可观测层:policy-reporter的UI是锦上添花,但它的Webhook输出可以直联SIEM。安全团队更关心的可能是后者。

最后,定期回访aws-ia的更新。AWS的Well-Architected框架每季度微调,Terraform模块的best practice也会跟进。演示代码的生命周期,取决于你维护它的决心。

那位Nginx容器至今仍在CrashLoopBackOff里循环。它不会知道,自己的反复崩溃证明了一套安全策略的有效性。这或许就是基础设施工程师的黑色幽默:系统越安全,业务越难跑;业务跑顺了,又怀疑安全是不是摆设。 Kyverno的存在,就是让这种怀疑有个具体的报错对象。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
詹姆斯:我的巅峰结束于2021年被希尔压伤脚踝!

詹姆斯:我的巅峰结束于2021年被希尔压伤脚踝!

历史第一人梅西
2026-04-30 10:05:54
亨德利:赵心童至少4次获得世界冠军,输了也不改变他未来的统治

亨德利:赵心童至少4次获得世界冠军,输了也不改变他未来的统治

杨华评论
2026-04-30 03:39:28
无缘卫冕世锦赛!赵心童10-13出局 输球原因曝光 中国球员剩独苗

无缘卫冕世锦赛!赵心童10-13出局 输球原因曝光 中国球员剩独苗

侃球熊弟
2026-04-29 23:58:39
52 岁张震岳湘江边夜跑!黝黑络腮胡像外国人,男人味拉满

52 岁张震岳湘江边夜跑!黝黑络腮胡像外国人,男人味拉满

南万说娱26
2026-04-12 15:22:37
成都蓉城VS申花:4231出击 茹萨罗慕洛领衔 韦世豪韦林顿联袂出击

成都蓉城VS申花:4231出击 茹萨罗慕洛领衔 韦世豪韦林顿联袂出击

零度眼看球
2026-04-30 07:27:38
俄图阿普谢炼油厂再遭袭,当地致癌物超上限,恐上演生化危机

俄图阿普谢炼油厂再遭袭,当地致癌物超上限,恐上演生化危机

史政先锋
2026-04-29 16:12:26
为什么奉劝老人少去跳交谊舞?61岁老人坦言:这种消遣方式很害人

为什么奉劝老人少去跳交谊舞?61岁老人坦言:这种消遣方式很害人

拾代谈生活
2026-04-30 09:54:35
中美局势可能发生大反转,最先超过美国的不是经济,而是这个方面

中美局势可能发生大反转,最先超过美国的不是经济,而是这个方面

三生一梦莫
2026-04-27 21:00:11
火箭大胜湖人!阿门23+7,老詹9中2,8失误,艾顿19+10遭驱逐

火箭大胜湖人!阿门23+7,老詹9中2,8失误,艾顿19+10遭驱逐

万物知识圈
2026-04-29 10:04:21
晚年顾秋妍打开组织寄来的旧档案,看到周乙的真实身份后懵了

晚年顾秋妍打开组织寄来的旧档案,看到周乙的真实身份后懵了

卡西莫多的故事
2026-04-16 10:52:01
美国单周原油出口量升至创纪录的600万桶/日以上

美国单周原油出口量升至创纪录的600万桶/日以上

财联社
2026-04-29 22:40:21
半年打一针,4000万慢性鼻窦炎有新药了

半年打一针,4000万慢性鼻窦炎有新药了

医学界
2026-04-29 19:56:22
真的被谢霆锋状态惊到了!你们觉得呢?这个年纪,发量还巨好

真的被谢霆锋状态惊到了!你们觉得呢?这个年纪,发量还巨好

东方不败然多多
2026-04-29 20:02:12
广西一制糖公司放假94天,从五一休到八月初,网友:这是什么新型招聘手段吗?能投简历吗

广西一制糖公司放假94天,从五一休到八月初,网友:这是什么新型招聘手段吗?能投简历吗

极目新闻
2026-04-29 14:06:55
东莞口腔医院拒绝改名!

东莞口腔医院拒绝改名!

听心堂
2026-04-29 10:35:17
解绑限购!深圳楼市,坐不住了

解绑限购!深圳楼市,坐不住了

城市财经
2026-04-29 19:57:29
人社部4月28日发布会:养老金调整通知公布情况如何

人社部4月28日发布会:养老金调整通知公布情况如何

流年恰似繁花汐
2026-04-28 21:05:03
人民锐评:“超级中学生”刷屏,学历贬值了吗?

人民锐评:“超级中学生”刷屏,学历贬值了吗?

澎湃新闻
2026-04-30 09:09:11
成都“牵手门”事件女主现今状况曝光,太惨了......

成都“牵手门”事件女主现今状况曝光,太惨了......

许三岁
2026-03-17 07:34:05
清算终于开始了!一个要求,震动东京:中国要求日本限期内归还

清算终于开始了!一个要求,震动东京:中国要求日本限期内归还

壹知眠羊
2026-01-28 22:03:28
2026-04-30 10:59:00
像素与芯片
像素与芯片
有态度网友ytd
3045文章数 19关注度
往期回顾 全部

科技要闻

四巨头财报齐发:AI已经不只是风口

头条要闻

"上海最通透爸爸"去世 女儿:他退休20多年这辈子不亏

头条要闻

"上海最通透爸爸"去世 女儿:他退休20多年这辈子不亏

体育要闻

一场九球狂欢,各路神仙批量下凡

娱乐要闻

孙杨妈妈被曝!过往言行被扒大开眼界

财经要闻

一场20年级别的供应危机,在眼前了!

汽车要闻

上汽一季报出炉 在低增长周期里守住基本盘

态度原创

健康
时尚
房产
本地
公开课

干细胞治烧烫伤能用了么?

春季穿衣千万别太暗沉!试试蓝白配色、选基础款裤子,大方得体

房产要闻

CBD+省名校+准现房!国兴绝版地段,惊现爆款新盘!

本地新闻

用青花瓷的方式,打开西溪湿地

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版