Skip to main content

Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting us. A member of our team will be in touch shortly. Close

An error occurred while submitting your form. Please try again or file a bug report. Close

  1. Blog
  2. Article

Jehudi
on 29 September 2025

Fortifying security for Ubuntu on Azure with Metadata Security Protocol (MSP)


We’re pleased to share a security enhancement for Ubuntu workloads on Microsoft Azure. In collaboration with Microsoft, Ubuntu now supports Azure’s Metadata Security Protocol (MSP)—a feature that hardens access to the Instance Metadata Service (IMDS) and WireServer. On Ubuntu, MSP is enabled by the azure-proxy-agent package, Canonical’s integration of Microsoft’s Guest Proxy Agent (GPA).

Why MSP raises the baseline

Traditional metadata endpoints are default-open within a VM. That leaves room for confused-deputy/SSRF paths and sandbox escapes. MSP flips this to default-closed with strong controls at the metadata boundary:

  • Strong authentication. IMDS/WireServer accept only requests endorsed (HMAC-signed) by a trusted in-guest delegate (GPA/azure-proxy-agent). Unsigned traffic is rejected.
  • Identity-aware authorization. The agent uses eBPF to intercept IMDS and WireServer requests and identify the originating process and user. It then checks an allowlist before endorsing the request (granular, per-endpoint RBAC).
  • Safe by default. Even if guest firewall rules are misconfigured or bypassed, unauthenticated traffic still cannot reach the metadata services.

For architecture and Azure-side configuration, see Microsoft’s MSP documentation.

MSP must be enabled in Azure. Installing the Ubuntu package alone does not turn on MSP. Enable MSP for the VM/VMSS from the Azure side (Portal/CLI/template) so requests are validated and unsigned traffic is rejected.

Availability and roadmap

The azure-proxy-agent package is available now for testing and is in the development series for Ubuntu 25.10 “Questing Quokka.”

After we incorporate feedback and verify stability, we plan to deliver azure-proxy-agent to Ubuntu 25.04 (Plucky Puffin), Ubuntu 24.04 LTS (Noble Numbat) and Ubuntu 22.04 LTS (Jammy Jellyfish) through the Stable Release Updates (SRU) process.

Early testing on LTS

For Ubuntu 24.04 LTS and 22.04 LTS, azure-proxy-agent is currently available in -proposed. If you’re comfortable testing SRU candidates, enable -proposed temporarily and pin only this package so you don’t upgrade unrelated components. Background on -proposed and SRUs: Stable Release Updates

Generic, codename-aware snippet (works for Jammy/Noble/Plucky):

# Resolve codename (prefers /etc/os-release; falls back to lsb_release)
CODENAME="$(. /etc/os-release 2>/dev/null; echo ${VERSION_CODENAME:-$(lsb_release -cs)})"

# Pin only azure-proxy-agent from <codename>-proposed
sudo tee /etc/apt/preferences.d/azure-proxy-agent <<EOF
Package: azure-proxy-agent
Pin: release n=${CODENAME}-proposed
Pin-Priority: 501
EOF

# Add -proposed for this codename, install, then remove it
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu ${CODENAME}-proposed main universe"
sudo apt update
sudo apt install azure-proxy-agent
sudo add-apt-repository -r "deb http://archive.ubuntu.com/ubuntu ${CODENAME}-proposed main universe"

Install on Ubuntu 25.10 (development series)

sudo apt update
sudo apt install azure-proxy-agent

After installation, enable MSP on the VM/VMSS from Azure (Portal/CLI/template). Without enabling MSP, requests won’t be validated and protection won’t apply.

Evaluation best practices

Every environment is different. If you decide to try MSP, start in Audit to observe behavior, and move to Enforce when you’re satisfied. Many teams simply sanity-check normal workloads and—if relevant—try a basic allowlist. Beyond that, test whatever reflects your risk model.

Share your feedback

Please share results (Ubuntu release, kernel, VM size, architecture; any observations) in our Discourse thread. Your input will help us complete SRU validation and promote azure-proxy-agent to -updates for LTS users.

Related posts


Hugo Huang
11 December 2025

Java 25 now available on Google Cloud Serverless

Canonical announcements Article

[December 11, 2025] Today Canonical, the publisher of Ubuntu, announced the immediate availability of Java 25 across Google Cloud’s serverless portfolio, including Cloud Run, App Engine, and Cloud Functions. This release is the result of a collaboration between Google Cloud and Canonical, and it will allow developers to access the latest ...


Hugo Huang
11 December 2025

How to launch a Deep Learning VM on Google Cloud

AI Article

Setting up a local Deep Learning environment can be a headache. Between managing CUDA drivers, resolving Python library conflicts, and ensuring you have enough GPU power, you often spend more time configuring than coding. Google Cloud and Canonical work together to solve this with Deep Learning VM Images, which use Ubuntu Accelerator Opti ...


Benjamin Ryzman
10 December 2025

Harnessing the potential of 5G with Kubernetes: a cloud-native telco transformation perspective

5G Article

Telecommunications networks are undergoing a cloud-native revolution. 5G promises ultra-fast connectivity and real-time services, but achieving those benefits requires an infrastructure that is agile, low-latency, and highly reliable. Kubernetes has emerged as a cornerstone for telecom operators to meet 5G demands. In 2025, Canonical Kube ...