
Azure container security is the working discipline of dividing risk across the four Microsoft services that actually run containers: Azure Kubernetes Service (AKS), Azure Container Apps (ACA), Azure Container Instances (ACI), and Azure Container Registry (ACR). Each service draws the shared-responsibility line at a different layer, and Microsoft Defender for Cloud telemetry consistently flags vulnerable container images across customer subscriptions where that line is misread.
This guide covers all four services in one place. It draws the boundary between Microsoft-managed platform security and customer-owned controls, and it maps each recommendation to a CIS benchmark identifier and an Azure CLI command. This guide explains how security responsibilities differ across AKS, Azure Container Apps, Azure Container Instances, and Azure Container Registry, with practical controls for identity, networking, image security, admission, and runtime protection.
Key Takeaways
What Azure Container Security Covers Across AKS, ACI, ACA, AND ACR
Azure Container Security is the prevention, detection, and remediation of risks across the four Microsoft container services: AKS (managed Kubernetes), ACA (serverless containers on Kubernetes plus the Kubernetes Event-Driven Autoscaler, KEDA), ACI (a single-container or container-group runtime), and ACR (an OCI-compliant registry). It is image- and workload-centric. It relies on a documented split between what Microsoft secures in the platform and what the customer owns at the image, identity, and network layers.
Each service has a different security model, and treating them as one surface is the most common Azure container misconfiguration:
The first practical implication: image content is always the customer's problem, regardless of which service runs the container. The hardened images foundation is the only control that closes the package-CVE half of the work across all four services at once.
Microsoft's shared-responsibility model for Azure draws the line at different layers for each container service. The shorthand: the more managed the service, the more of the platform Microsoft secures, and the smaller the customer's remaining surface gets. The residual customer slice (image content, identity scope, network exposure, and secrets) is the same on every service.
Two takeaways drop out of the table. First, the customer owns image content on every Azure container service. Microsoft does not patch a vulnerable Java runtime inside your image, no matter how managed the platform is. Second, the "PaaS is more secure" argument holds for the platform; it does not hold for the image. ACA and ACI are more managed than AKS. Customers remain responsible for image content, identity, secrets, and application-level networking across all three services, but AKS exposes significantly more infrastructure and Kubernetes configuration controls than ACA or ACI.
Azure-specific container risks cluster into three groups: registry exposure, AKS-cluster identity sprawl, and PaaS multi-tenant network gaps. Each has named CVEs or Microsoft advisories behind it.
Anonymous pull misconfigurations remain one of the most common Azure container findings in Defender for Cloud's container-posture telemetry. A misconfigured ACR allows any unauthenticated client on the internet to pull every image in the registry, including private application images that may contain hard-coded credentials, internal API endpoints, or compliance-restricted artifacts. Microsoft has shipped warning UI in the Azure portal since 2023, but the misconfiguration persists in inherited subscriptions and IaC templates copied from public examples.
The most consequential AKS identity migration of the past two years is the AAD Pod Identity v1 retirement, announced by Microsoft in 2022 and tracked in the AKS deprecation timeline on Microsoft Learn. Workloads still using Pod Identity v1 must migrate to Microsoft Entra Workload ID (the supported replacement) to keep receiving security patches. Workloads still using Azure AD Pod Identity should migrate to Microsoft Entra Workload ID to remain on Microsoft’s supported identity model.
The other recurring AKS risk is the runc container-escape class of vulnerabilities. The runc container escape advisory walks the Leaky Vessels family (CVE-2024-21626 and three related CVEs disclosed January 31, 2024). The flaw lets a malicious image escape to the host node by exploiting how runc handles the working-directory file descriptor. AKS nodes inherit the patch through node image upgrades; clusters on stale node images stay vulnerable.
ACI and ACA are multi-tenant managed platforms. Microsoft documents the isolation guarantees, but two practitioner-side risks recur:
Microsoft Defender for Containers is the container plan inside Microsoft Defender for Cloud. It covers four capability families, billed per vCore per month on supported AKS and Azure Arc-enabled clusters (current pricing on the Defender for Cloud pricing page in the Azure portal).
The capability map is documented in Microsoft Defender for Containers introduction. What that page does not state plainly is the build-time gap: Defender flags vulnerable packages but does not eliminate them. A typical Defender finding on a public python:3.12-slim base image surfaces 50-plus CVEs the day the image is pushed. Defender's recommendation is "use a more secure base image," and the actual remediation is a base-image swap.
Defender for Containers also has compliance-coverage limits. Some advanced features and FedRAMP High residency paths are not available in every Azure region, and Defender for Containers itself is not the FedRAMP-evidence layer for image content. That obligation lives in the image catalog and the supply-chain artifact pipeline (Software Bill of Materials, or SBOM, plus signed attestations).
ACR hardening is the highest-impact single Azure container security task because every downstream service pulls from it. The four-step minimum:
Two operational add-ons pay back fast. Use ACR Tasks to automate image builds and rebuilds, and enable Microsoft Defender vulnerability assessment for supported images stored in ACR. A regional outage will not block image pulls during incident response if the registry is replicated where the cluster lives.
AKS hardening is sequenced controls, not a single switch. The five steps below map to the CIS Microsoft Azure Kubernetes Service Benchmark and the Microsoft AKS security baseline:
Node OS upgrades close the runc, containerd, and kubelet CVE class. Enable the node-image auto-upgrade channel (--auto-upgrade-channel node-image) so node images patch on the Microsoft cadence, not on a forgotten ticket.
ACI and ACA share an isolation model and a hardening checklist, with one differentiator: ACA has built-in Dapr and KEDA integration, while ACI is single-container or container-group only. The recurring controls:
Defender for Containers, ACR hardening, and AKS RBAC reduce posture risk. They do not reduce the CVE count inside the image. That work happens at the image layer.
Public base images can inherit a substantial number of vulnerability findings from operating-system and runtime packages, depending on the image version, scanner, advisory feed, and scan date.
The base-image substitution pattern is the durable fix. Drop in a hardened, minimal image as the new FROM line, rebuild, and watch the CVE count fall by 90 percent or more for the same application functionality. For practitioners moving off Debian-based community images, the moving to distroless container images guide walks the swap pattern step by step. For Azure Government and DoD IL5 workloads, the variant must be FIPS 140-3 validated, which means the cryptographic modules in the image are tied to a current NIST CMVP certificate, not just labeled "FIPS-mode."
Organizations should measure the impact of base-image replacement using before-and-after scans of the same application, scanner, and image version. That happened in a single rebuild cycle. The remaining findings sat in required runtime packages tracked under a vendor SLA, not unowned debt.
Azure container compliance work maps to three control sets that overlap. The table below is the practitioner view, not the auditor's full crosswalk.
For FedRAMP and IL5 workloads, the Defender-for-Containers evidence stops at posture and runtime; the image-supply-chain evidence comes from a hardened catalog with SBOMs, attestations, and a documented patch SLA. The FedRAMP container compliance guide walks the artifact mapping for federal audits.
The 15-control checklist below is sequenced highest impact first. Each item maps to a specific Azure CLI flag, Bicep parameter, or CIS control.
Four mistakes I see most often in Azure container posture reviews:
Minimus publishes hardened, minimal container images based on upstream distributions, rebuilt on a frequent cadence and designed as secure drop-in alternatives to common public base images, mirrorable into Azure Container Registry. Each Minimus image ships with a CycloneDX-style SBOM, a Cosign signature, vulnerability-status information including VEX-style exploitability context, and a published remediation policy that targets critical CVEs within 48 hours of upstream fix availability, with separate timelines for other severity levels as documented in the Trust Center. The build pipeline is aligned with SLSA Level 3 practices, and FIPS 140-3-ready image variants are based on currently validated cryptographic modules for Azure Government and DoD IL5 workloads. Where Defender for Containers reports CVEs in a public python:3.12-slim base, the Minimus equivalent on the same runtime ships with materially fewer CVEs, often an order of magnitude fewer compared with the public baseline.
For Azure container security programs, Minimus images plug into the build pipeline, mirror to ACR via private endpoint, and typically pass admission policy with minimal or no additional customization. Federal teams can pair the catalog with the Iron Bank FedRAMP container images distribution to inherit the IL5 supply-chain artifacts. Browse the catalog at images.minimus.io, read the verification and Notation-policy guides at docs.minimus.io, or get started on a 30-day proof.
Azure container security is the discipline of protecting workloads across the four Microsoft container services (AKS, Azure Container Apps, Azure Container Instances, and Azure Container Registry). It uses a documented split between Microsoft-managed platform controls and customer-owned image, identity, and network controls, and pairs Microsoft Defender for Containers (posture and runtime detection) with hardened image catalogs and admission policy for build-time CVE reduction.
No, not by itself. Defender for Containers covers posture, runtime detection, and vulnerability assessment, but it does not eliminate package CVEs at build time and does not replace image-supply-chain controls. Defender flags a vulnerable base image; the actual remediation is a base-image swap and a rebuild. Most regulated programs pair Defender with a hardened image catalog and an admission policy that enforces the catalog.
Disable anonymous pull, enforce Microsoft Entra ID authentication with least-privileged roles (AcrPull for consumers, AcrPush for CI/CD), turn off public network access and use Private Link, and require Notation image signatures at pull time. Those four steps map to CIS Microsoft Azure Foundations Benchmark v3.0.0 section 5 controls and remove the most common ACR exposure paths.
AKS exposes Kubernetes RBAC, NetworkPolicy, admission control, and node-OS configuration as customer-owned controls. ACA hides all of those behind a managed-PaaS surface, leaving image content, ingress configuration, managed-identity scope, and secrets as the customer's slice. AKS gives more control and more responsibility; ACA gives less of both. Image-content risk is identical on both.
Azure supports running FIPS 140-3 validated container images on AKS, ACA, and ACI, but Azure does not produce a FIPS 140-3 image catalog itself. The FIPS 140-3 image variant must come from a vendor or internal pipeline that builds against a current NIST CMVP-certified cryptographic module. Defender for Cloud reports FIPS-mode posture; the image content is a customer-supply-chain control.
For every Azure container service, Microsoft owns the hypervisor, host OS, and orchestrator control plane; the customer owns image content, workload configuration, identity scope, secrets, and network policy. The more managed the service (ACA and ACI sit higher than AKS), the more of the platform Microsoft secures, but the customer-owned slice (image, identity, network, and secrets) is the same across all four services.