Check ID:
Provider: Azure
Service:
Severity: HIGH
Categories:
Resource type:
keyvault_private_endpointsProvider: Azure
Service:
keyvaultSeverity: HIGH
Categories:
internet-exposed, trust-boundariesResource type:
microsoft.keyvault/vaultsWhat this check verifies
Azure Key Vault has private endpoint connections to serve secret and key operations over a private IP within your virtual network via Azure Private Link.Risk
Without private endpoints, the vault relies on a public endpoint, expanding exposure to scanning and misconfigured allowlists. Egress controls are harder to enforce, enabling unauthorized secret retrieval for data exfiltration and potential key misuse, impacting confidentiality and integrity.Recommendation
Enable Private Endpoints for each Key Vault and disable public network access. Use private DNS so the vault FQDN resolves to the private IP. Apply least privilege with RBAC and managed identities, restrict traffic with NSGs and routing, and monitor access logs as part of defense in depth.Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
az network private-endpoint create —name <example_resource_name> —resource-group <example_resource_name> —location <LOCATION> —vnet-name <example_resource_name> —subnet <example_resource_name> —private-connection-resource-id <example_resource_id> —group-ids vault —connection-name <example_resource_name>
References
- https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-overview
- https://learn.microsoft.com/en-us/azure/storage/common/storage-private-endpoints
Where this check fires
This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable byCheck ID = keyvault_private_endpoints. 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