Almacenamiento de un secreto multilínea en Azure Key Vault

En el inicio rápido de la CLI de Azure o en el de Azure PowerShell se muestra cómo almacenar un secreto de una sola línea. También puede usar Key Vault para almacenar un secreto multilínea, como un archivo JSON o una clave privada RSA.

Los secretos multilínea no se pueden pasar al comando az keyvault secret set de la CLI de Azure o al cmdlet Set-AzKeyVaultSecret de Azure PowerShell a través de la línea de comandos. En su lugar, debe almacenar primero el secreto multilínea como archivo de texto.

Por ejemplo, puede crear un archivo de texto denominado "secretfile.txt" que contenga las siguientes líneas:

This is my
multi-line
secret

Establecimiento del secreto mediante la CLI de Azure

Después, puede pasar este archivo al comando az keyvault secret set de la CLI de Azure mediante el --file parámetro.

az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "MultilineSecret" --file "secretfile.txt"

Después, puede ver el secreto almacenado mediante el comando az keyvault secret show de la CLI de Azure.

az keyvault secret show --name "MultilineSecret" --vault-name "<your-unique-keyvault-name>" --query "value"

El secreto se devolverá con \n en lugar de nueva línea:

"This is\nmy multi-line\nsecret"

El \n anterior es un carácter \ y n, no el carácter de nueva línea. Las comillas " se incluyen en la cadena.

Establecimiento del secreto mediante Azure Powershell

Con Azure PowerShell, primero debe leer el archivo mediante el cmdlet Get-Content y luego convertirlo en una cadena segura mediante ConvertTo-SecureString.

$RawSecret =  Get-Content "secretfile.txt" -Raw
$SecureSecret = ConvertTo-SecureString -String $RawSecret -AsPlainText -Force

Por último, se almacena el secreto mediante el cmdlet set-AzKeyVaultSecret.

$secret = Set-AzKeyVaultSecret -VaultName "<your-unique-keyvault-name>" -Name "MultilineSecret" -SecretValue $SecureSecret

Puede ver el secreto almacenado mediante el comando az keyvault secret show de la CLI de Azure o el cmdlet Get-AzKeyVaultSecret de Azure PowerShell.

az keyvault secret show --name "MultilineSecret" --vault-name "<your-unique-keyvault-name>" --query "value"

El secreto se devolverá con \n en lugar de nueva línea:

"This is\nmy multi-line\nsecret"

El \n anterior es un carácter \ y n, no el carácter de nueva línea. Las comillas " se incluyen en la cadena.

Pasos siguientes