AZURE-PROTECTED-SECRETS-TOOL(1)
β¨ azure-protected-secrets-tool β¨
okay bestie, welcome to azure-protected-secrets-tool, section 1 of the User Commands manual β yes this is the real manual page for the tool, and yes we're gonna have fun with it π
πΈ NAME πΈ
azure-protected-secrets-tool β peek at your Azure Confidential VM's whole deal and unprotect the host-provisioned secrets that got sealed up in there π«Ά
π SYNOPSIS π
azure-protected-secrets-tool COMMAND [ARGUMENT] [OPTIONS]
azure-protected-secrets-tool [-h|--help] [--version]
π DESCRIPTION π
So like, azure-protected-secrets-tool is the command-line front-end to the Azure CVM Secrets Provisioning Library (SSPL). It figures out the confidential-computing isolation environment of the host, and then it decrypts secrets that the Azure control plane provisioned to the VM and sealed to the virtual TPM (vTPM). iconic behaviour honestly β¨
The commands that touch the vTPM β that's is-secrets-provisioning-enabled and unprotect-secret β usually need access to the TPM resource-manager device (/dev/tpmrm0), which means you gotta be root on a Confidential VM. no skips bestie π
The is-cvm command though? It only reads the hardware report, so it doesn't need elevated privileges. we love a low-maintenance queen π
π COMMANDS π
is-cvmβ reports the confidential-computing isolation type of the host. The output looks likeisolation_type=<TYPE> hypervisor=<NAME>, where TYPE isSNP(AMD SEV-SNP),TDX(Intel TDX), orNONE(aka not a Confidential VM, rip π). It returns a non-zero exit status when the host isn't a Confidential VM.is-secrets-provisioning-enabledβ tells you whether secrets provisioning has been enabled on this VM, by checking whether the provisioning key is present in the vTPM. Printsenabled=trueorenabled=false. simple, clean, no cap β¨unprotect-secret [TOKEN]β decrypts a host-protected secret. The protected secret comes in as a JSON Web Token (JWT), and you can either pass it inline as the TOKEN positional argument or, if you leave it out, it gets read from standard input. The decrypted secret goes straight to standard output. main character output energy πvalidate-imds-metadataβ does a two-level verification of the Azure Instance Metadata Service (IMDS) attestation blob. thorough queen π
β¨ OPTIONS β¨
--policy Nβ forunprotect-secret, sets the unseal policy bitmask to the unsigned integer N. If you don't pass it, the policy defaults to0.--jsonβ emits machine-readable JSON instead of the default human-readable output. Supported by the reporting commands (likeis-cvm, for example). for the girlies who pipe things intojqπ-h,--helpβ prints a usage summary and dips out.--versionβ prints the library version and dips out.
π¦ EXIT STATUS π¦
0β Success! And foris-cvm, this specifically means the host is a Confidential VM. slay π- non-zero β An error happened, or (for
is-cvm) the host is not a Confidential VM. sad girl hours π
π₯ EXAMPLES π₯
Detect the isolation type on a CVM:
$ azure-protected-secrets-tool is-cvm
isolation_type=SNP hypervisor=Microsoft Hv
The same thing, but as JSON:
$ azure-protected-secrets-tool is-cvm --json
{"isolation_type":"SNP","hypervisor":"Microsoft Hv"}
Unprotect a secret supplied on standard input, applying policy 2:
$ azure-protected-secrets-tool unprotect-secret --policy 2 < token.jwt
π SEE ALSO π
Project homepage: https://github.com/Azure/confidential-computing-cvm-guest-attestation
π«Ά AUTHOR π«Ά
Microsoft Corporation. (yes, the whole corporation. them. π)
ngl bestie, if you're on a CVM and things are acting weird, run is-cvm first. it's free, it doesn't need root, and it tells you exactly what kind of fancy hardware you're sitting on β¨
and that's the whole page!! you ate this, fr fr π
azure-protected-vm-secrets 1.0.9 β dated 2026-05-04 β azure-protected-secrets-tool(1) π bye bestie, go unprotect something πΈ
π¦ where this page comes from
- epel 10: azure-protected-vm-secrets 1.0.9-1.el10_3 Β· MIT
- fedora 43: azure-protected-vm-secrets 1.0.9-1.fc43 Β· MIT
- fedora 44: azure-protected-vm-secrets 1.0.9-1.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms