Az - Key Vault
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Azure Key Vault is a cloud service provided by Microsoft Azure for securely storing and managing sensitive information such as secrets, keys, certificates, and passwords. It acts as a centralized repository, offering secure access and fine-grained control using Azure Active Directory (Azure AD). From a security perspective, Key Vault provides hardware security module (HSM) protection for cryptographic keys, ensures secrets are encrypted both at rest and in transit, and offers robust access management through role-based access control (RBAC) and policies. It also features audit logging, integration with Azure Monitor for tracking access, and automated key rotation to reduce risk from prolonged key exposure.
See Azure Key Vault REST API overview for complete details.
According to the docs, Vaults support storing software and HSM-backed keys, secrets, and certificates. Managed HSM pools only support HSM-backed keys.
The URL format for vaults is https://{vault-name}.vault.azure.net/{object-type}/{object-name}/{object-version}
and for managed HSM pools it's: https://{hsm-name}.managedhsm.azure.net/{object-type}/{object-name}/{object-version}
Where:
vault-name
is the globally unique name of the key vault
object-type
can be "keys", "secrets" or "certificates"
object-name
is unique name of the object within the key vault
object-version
is system generated and optionally used to address a unique version of an object.
In order to access to the secrets stored in the vault it's possible to select between 2 permissions models when creating the vault:
Vault access policy
Azure RBAC (most common and recommended)
You can find all the granular permissions supported in https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/security#microsoftkeyvault
Access to a Key Vault resource is controlled by two planes:
The management plane, whose target is management.azure.com.
It's used to manage the key vault and access policies. Only Azure role based access control (RBAC) is supported.
The data plane, whose target is <vault-name>.vault.azure.com
.
It's used to manage and access the data (keys, secrets and certificates) in the key vault. This supports key vault access policies or Azure RBAC.
A role like Contributor that has permissions in the management place to manage access policies can get access to the secrets by modifying the access policies.
In Azure Key Vault, firewall rules can be set up to allow data plane operations only from specified virtual networks or IPv4 address ranges. This restriction also affects access through the Azure administration portal; users will not be able to list keys, secrets, or certificates in a key vault if their login IP address is not within the authorized range.
For analyzing and managing these settings, you can use the Azure CLI:
The previous command will display the firewall settings of name-vault
, including enabled IP ranges and policies for denied traffic.
Moreover, it's possible to create a private endpoint to allow a private connection to a vault.
When a key vault is created the minimum number of days to allow for deletion is 7. Which means that whenever you try to delete that key vault it'll need at least 7 days to be deleted.
However, it's possible to create a vault with purge protection disabled which allow key vault and objects to be purged during retention period. Although, once this protection is enabled for a vault it cannot be disabled.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)