Check ID:
Provider: Azure
Service:
Severity: HIGH
Categories:
Resource type:
containerregistry_not_publicly_accessibleProvider: Azure
Service:
containerregistrySeverity: HIGH
Categories:
internet-exposedResource type:
microsoft.containerregistry/registriesWhat this check verifies
Azure Container Registry configuration indicates whether the registry permits unrestricted public access based on thePublic network access setting.
Risk
Internet-exposed ACR expands attack paths impacting CIA:- Confidentiality: unauthorized image pulls leak code/secrets
- Integrity: compromised creds allow tampered image pushes (supply-chain)
- Availability: pull storms or scans exhaust quotas, causing outages and cost spikes
Recommendation
SetPublic network access to Disabled and use Private Link for registry access.
If public reachability is required, allow only selected IPs, enforce least privilege and token rotation, and apply defense in depth (egress control, network segmentation, logging of push/pull events).
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
az acr update —name <registry-name> —public-network-enabled false
References
- https://www.trendmicro.com/cloudoneconformity/knowledge-base/azure/ContainerRegistry/disable-public-access.html
- https://learn.microsoft.com/en-us/azure/container-registry/container-registry-access-selected-networks
Where this check fires
This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable byCheck ID = containerregistry_not_publicly_accessible. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Azure checks