使用元数据安全协议强化Azure上Ubuntu的安全性
我们很高兴分享Microsoft Azure上Ubuntu工作负载的安全增强功能。在与微软的合作下,Ubuntu现在支持Azure的元数据安全协议(MSP)——这一功能强化了对实例元数据服务(IMDS)和WireServer的访问。在Ubuntu上,MSP通过azure-proxy-agent包启用,这是Canonical对微软来宾代理代理(GPA)的集成。
为什么MSP提高了安全基线
传统的元数据端点在虚拟机内默认开放。这为混淆代理/SSRF路径和沙箱逃逸留下了空间。MSP通过在元数据边界实施强控制将其改为默认关闭:
- 强身份验证:IMDS/WireServer仅接受由可信的来宾委托(GPA/azure-proxy-agent)背书(HMAC签名)的请求。未签名的流量将被拒绝。
- 身份感知授权:代理使用eBPF拦截IMDS和WireServer请求,并识别发起进程和用户。然后在背书请求前检查允许列表(细粒度、每端点RBAC)。
- 默认安全:即使来宾防火墙规则配置错误或被绕过,未经身份验证的流量仍然无法访问元数据服务。
有关架构和Azure端配置,请参阅微软的MSP文档。
启用要求
MSP必须在Azure中启用。仅安装Ubuntu包不会开启MSP。从Azure端(门户/CLI/模板)为VM/VMSS启用MSP,以便验证请求并拒绝未签名的流量。
可用性和路线图
azure-proxy-agent包现已可用于测试,并处于Ubuntu 25.10 “Questing Quokka"的开发系列中。
在我们收集反馈并验证稳定性后,我们计划通过稳定发布更新(SRU)过程将azure-proxy-agent交付给Ubuntu 25.04(Plucky Puffin)、Ubuntu 24.04 LTS(Noble Numbat)和Ubuntu 22.04 LTS(Jammy Jellyfish)。
LTS早期测试
对于Ubuntu 24.04 LTS和22.04 LTS,azure-proxy-agent当前在-proposed中可用。如果您愿意测试SRU候选版本,请临时启用-proposed并仅固定此包,以免升级不相关的组件。关于-proposed和SRU的背景信息:稳定发布更新
通用、代码名感知代码片段(适用于Jammy/Noble/Plucky):
|
|
在Ubuntu 25.10上安装(开发系列)
|
|
安装后,从Azure(门户/CLI/模板)在VM/VMSS上启用MSP。如果不启用MSP,请求将不会被验证,保护也不会生效。
评估最佳实践
每个环境都不同。如果您决定尝试MSP,请在审计模式下开始以观察行为,当您满意时再切换到强制执行模式。许多团队只是简单地对正常工作负载进行健全性检查,并在相关时尝试基本的允许列表。除此之外,测试任何反映您风险模型的内容。
分享反馈
请在我们的Discourse主题中分享结果(Ubuntu版本、内核、VM大小、架构;任何观察结果)。您的意见将帮助我们完成SRU验证,并将azure-proxy-agent推广到LTS用户的-updates中。