Kind: azure-kv
Use Azure Key Vault as a secretstore backend when you want Netdata collectors to read secrets from Azure at runtime instead of storing them in plain text in collector configuration files.
This page covers Azure Key Vault specific setup. For the shared resolver workflow and syntax, see Secrets Management.
Netdata reads the latest version of a secret value from Azure Key Vault. The operand format does not select a specific secret version.
You can configure the azure-kv secretstore in two ways:
| Method | Best for | How to |
|---|---|---|
| UI | Fast setup without editing files | Go to Collectors -> go.d -> SecretStores -> azure-kv, then add a secretstore. |
| File | File-based configuration or automation | Edit /etc/netdata/go.d/ss/azure-kv.conf and add a jobs entry. |
Choose one supported authentication mode and make sure the Netdata Agent can use it:
service_principal: provide tenant_id, client_id, and client_secret.managed_identity: run Netdata on an Azure resource with a managed identity.default: use the Azure SDK DefaultAzureCredential chain, which automatically tries available Azure credential sources such as environment-based credentials, managed identity, and local developer credentials.Prefer managed_identity for production on Azure when Netdata runs on an Azure resource with an attached identity. Use service_principal for explicit application credentials. Use default for Azure SDK auto-discovery or local development convenience.
The Azure identity used by this secretstore must be allowed to read secret values from the target vaults.
If you edit /etc/netdata/go.d/ss/azure-kv.conf, restart the Netdata Agent to load the updated secretstore definition.
The following options can be defined for this secretstore backend.
| Group | Option | Description | Default | Required |
|---|---|---|---|---|
| mode | Azure authentication mode. | default | yes | |
| Service Principal | mode_service_principal.tenant_id | Azure tenant ID. Required when mode is service_principal. | yes | |
| mode_service_principal.client_id | Azure application / service principal client ID. Required when mode is service_principal. | yes | ||
| mode_service_principal.client_secret | Azure application / service principal client secret. Required when mode is service_principal. | yes | ||
| Managed Identity | mode_managed_identity.client_id | Optional client ID of a user-assigned managed identity when mode is managed_identity. Leave it empty for the system-assigned identity. | no |
Supported values:
service_principal: use an Azure app / service principal.managed_identity: use the managed identity attached to the Azure resource running Netdata.default: use the Azure SDK DefaultAzureCredential chain. It automatically tries available Azure credential sources such as environment-based credentials, managed identity, and local developer credentials.Prefer managed_identity for production on Azure. Use service_principal for explicit app credentials. Use default when you want Azure SDK auto-discovery or local development convenience.
Collectors -> go.d -> SecretStores -> azure-kv.Define the secretstore in /etc/netdata/go.d/ss/azure-kv.conf.
Each file contains a jobs array, and the secretstore kind is determined by the filename.
After editing the file, restart the Netdata Agent to load the updated secretstore definition.
Use explicit Azure app credentials.
jobs:
- name: azure_prod
mode: service_principal
mode_service_principal:
tenant_id: 00000000-0000-0000-0000-000000000000
client_id: 00000000-0000-0000-0000-000000000000
client_secret: your-client-secret
Use the managed identity attached to the Azure resource running Netdata.
jobs:
- name: azure_vm
mode: managed_identity
mode_managed_identity:
client_id: 00000000-0000-0000-0000-000000000000
Use the Azure SDK default credential chain.
jobs:
- name: azure_default
mode: default
Check the Netdata Agent logs when the collector starts or restarts. Azure resolver errors include messages such as invalid vault name, invalid secret name, or Azure Key Vault returned HTTP 403.
Check the selected mode and the credentials it requires.
service_principal, verify tenant_id, client_id, and client_secret.managed_identity, make sure Netdata runs on an Azure resource with an attached identity.default, confirm that one of the Azure SDK credential sources is available to the Netdata process.Check the operand format. It must be vault-name/secret-name, and both names must use only letters, numbers, and hyphens.
Make sure the Azure identity used by Netdata can read secret values from the target vault.
Want a personalised demo of Netdata for your use case?