2020 年代的企业工作负载已经大规模迁移出了数据中心——电子邮件在 Google Workspace 或 Office 365、代码在 GitHub 或 GitLab、CRM 在 Salesforce、身份在 Okta 或 Entra ID。这些 SaaS 应用是新的”企业内网”——而它们的安全边界不是防火墙,而是 API 和身份配置。
前置阅读:身份感知代理。
一、SaaS 安全的零信任视角
传统安全团队对 SaaS 应用的控制通常是”审批是否开通”——但开通之后,SaaS 应用内部的数据访问控制由各个应用的配置决定,安全团队对这些配置的可见性极低。
1.1 SaaS 的三个零信任盲区
盲区 1:过度的分享权限。Google Workspace
管理员可以查看整个域的文件分享设置——但一个用户把
Q4-earnings.xlsx
从”仅限同域用户”改为”任何有链接的人都可以查看”通常不会被实时检测。
盲区 2:休眠账户和过度权限。一个离职员工的 GitHub 账号在被 HR 系统注销后,可能仍然拥有对私有仓库的访问权限——因为 GitHub 的 SSO 注销和 GitHub 的内部授权是两套独立的系统。
盲区 3:OAuth
应用权限过度。用户在为”帮我整理邮件”的第三方应用授权
OAuth scope 时,通常不会仔细阅读完全部权限范围。一个恶意的
OAuth 应用可能被授予了
https://mail.google.com/(读取全部邮件)的权限。
1.2 SSPM 和 CASB 的角色
SSPM(SaaS Security Posture Management) 的作用是持续审计 SaaS 应用的安全配置:
- Google Workspace:“哪些外部用户被添加到了共享硬盘?”“哪些文件设置了公开分享?”
- Salesforce:“哪些用户有’修改全部数据’的权限但在过去 90 天未登录?”
- GitHub:“哪些仓库是 public 的但标记为
INTERNAL的标签?”
CASB(Cloud Access Security Broker) 在 SSPM 的基础上增加了实时执行能力——CASB 部署在用户和 SaaS 应用之间的路径上(通过反向代理或 API 连接),可以: - 阻止未授权设备访问 SaaS 应用 - 在执行高风险操作(下载所有客户数据)时触发额外的 MFA 验证 - 自动加密上传到 SaaS 应用的敏感文件
CASB 的零信任化本质上是在 SaaS 应用前面加一个 IAP——这与 身份感知代理 的原理相同,但 CASB 需要理解每个 SaaS 应用的 API 和操作语义,而不仅仅是 HTTP 请求。
二、云 IAM 的零信任改造
2.1 云 IAM 的爆炸半径
AWS IAM、GCP IAM、Azure RBAC 的共同问题是:权限通常以”角色”为单位分配,而角色中的权限集合可能在创建时过于宽松。
一个典型的 AWS IAM 角色可能包含:
{
"Effect": "Allow",
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::my-bucket/*"]
}这个策略为这个角色授予了对 my-bucket 的所有
S3 操作——但当这个角色只需要 s3:GetObject
时,s3:DeleteObject 和
s3:PutObject
就是不必要的权限。在不必要权限被攻击者利用时——这就是 blast
radius 的扩大。
零信任的云 IAM 原则: - 用 IAM Access Analyzer
或类似工具检测未使用的权限,定期降权 - 对生产环境的操作(如
s3:DeleteBucket、ec2:TerminateInstances)要求
JIT(Just-In-Time)权限提升 -
服务账号应该有独立的最小权限角色——不要让 10 个服务共享一个
admin 角色
2.2 多云 IAM 的统一
大型企业通常同时使用 AWS、GCP 和 Azure——每个云平台的 IAM 模型不同:
| 云平台 | 身份原语 | 策略语言 |
|---|---|---|
| AWS | IAM Role / IAM User | JSON Policy |
| GCP | Service Account | IAM Policy(roles) |
| Azure | Managed Identity / Service Principal | Azure RBAC |
统一多云 IAM 的实践方案:使用外部身份源(如 Okta、Entra ID)作为所有云平台的身份提供者——通过 SAML/OIDC 联邦,用户和服务的身份在云平台外部被验证,云平台的 IAM 角色通过身份属性(组、角色)映射。这避免了在每个云平台单独创建和管理用户。
三、Kubernetes 超网络策略
3.1 NetworkPolicy 的运维规模
单个 Kubernetes 集群的 NetworkPolicy 管理是可控的——但当集群数量达到 50+ 时,跨集群的一致性和审计变得困难:
- 每个集群都有独立的 NetworkPolicy 规则集——没有跨集群的一致性检查
- 不同集群的相同服务(如
payment-service在 prod-us 和 prod-eu)可能有不同的 NetworkPolicy——这种不对称是安全漏洞的来源
解决方向: - 策略即代码 + GitOps:所有
NetworkPolicy 存储在 Git 仓库中,ArgoCD/Flux
自动同步到每个集群。同一个 Git 仓库保证策略的一致性。 -
Cilium ClusterMesh(已在 微分段一文
中讨论):统一多个集群的 Identity 空间。 -
策略合规扫描:定期的 CronJob
扫描所有集群,检查是否存在未经批准的 allow-all
NetworkPolicy 或缺少了 default-deny
的命名空间。
3.2 Shadow IT 的发现
Shadow IT——业务部门自己开通了 SaaS 工具但 IT 部门不知道——是多云和 SaaS 环境中的独特问题。这些未被管控的工具: - 使用公司邮箱登录但不经过公司的 SSO(因此无法使用 MFA) - 可能被授予了访问公司 Google Drive 或 GitHub 仓库的 OAuth 权限 - 在企业 IT 的资产管理表中完全不存在
发现 Shadow IT 的方法: - CASB 的云应用发现:通过分析网络流量日志和 API 调用日志发现员工在使用哪些未经批准的 SaaS 应用 - SSO 日志分析:如果企业 SSO 是强制入口,SSO 的登录日志包含了所有经过认证的应用访问——包括 Shadow IT - 信用卡记录分析:在公司的费用报销系统中搜索 SaaS 订阅费用
下一篇:零信任与软件供应链。
参考资料
- Gartner. (2024). Magic Quadrant for Cloud Access Security Brokers.
- AWS. IAM Access Analyzer. https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html
- Google Cloud. BeyondProd: A New Approach to Cloud-Native Security. https://cloud.google.com/docs/security/beyondprod
- CNCF. Cloud Native Security Whitepaper. https://github.com/cncf/tag-security/blob/main/security-whitepaper/v2/CNCF_cloud-native-security-whitepaper-May2024-v2.pdf
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【零信任安全架构】微分段深度拆解:从 VLAN 到 eBPF 的访问控制演化
微分段是零信任在网络层的核心机制——从传统 VLAN 的广播域隔离,到 Kubernetes NetworkPolicy 的 IP 级别过滤,再到 Cilium 基于身份的 eBPF 执行和 Istio 的 L7 策略。本文拆解四层微分段技术的实现原理、性能差异和适用场景,以及从'全通'到'全白名单'的策略制定流程。
【身份与访问控制工程】IAM 全景:为什么这是高价值赛道
从 2020 年 SolarWinds 到 2024 年 Okta 支持系统泄露,身份基础设施的安全失败反复证明一件事:IAM 不是 IT 支撑系统,而是安全架构的承重墙。本文建立现代 IAM 的全景地图——从认证协议、令牌体系、权限模型到身份治理与平台选型,给出 5 个贯穿全系列的核心问题。
【身份与访问控制工程】服务身份:mTLS、SPIFFE/SPIRE 与 Workload Identity
前 9 篇讨论的都是'人'的身份——用户怎么登录、怎么验证。但微服务世界中,80% 的 API 调用是服务之间的。服务身份(Workload Identity)是整个 IAM 体系的另一半:mTLS 解决'传输层你是谁',SPIFFE/SPIRE 解决'在平台层你是谁且怎么证明',JWT Profile for OAuth 解决'我怎么拿到一个服务身份的 Token'。本文从这三条线拆解服务身份的工程实现。
【零信任安全架构】NIST SP 800-207 架构深度拆解:不只是 7 条原则
NIST SP 800-207 给了零信任最权威的定义,但大多数讨论只复述了 7 条原则。本文拆解 NIST 文档的完整架构模型:PEP、PDP、Policy Engine、Policy Administrator 的分工与交互协议、信任算法的三种模型、以及 NIST 有意留白留给实现者的工程决策。