Stocker un secret multiligne dans Azure Key Vault

Le guide de démarrage rapide sur Azure CLI ou le guide de démarrage rapide sur Azure PowerShell montrent comment stocker un secret monoligne. Vous pouvez également utiliser Key Vault pour stocker un secret multiligne, tel qu’un fichier JSON ou une clé privée RSA.

Les secrets multilignes ne peuvent pas être passés à la commande Azure CLI az keyvault secret set ou à l’applet de commande Azure PowerShell Set-AzKeyVaultSecret par le biais de la ligne de commande. Au lieu de cela, vous devez d’abord stocker le secret multiligne en tant que fichier texte.

Par exemple, vous pouvez créer un fichier texte appelé « secretfile.txt » contenant les lignes suivantes :

This is my
multi-line
secret

Définir le secret à l’aide d’Azure CLI

Vous pouvez ensuite passer ce fichier à la commande Azure CLI az keyvault secret set avec le paramètre --file.

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

Vous pouvez ensuite afficher le secret stocké à l’aide de la commande Azure CLI az keyvault secret show.

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

Le secret est retourné avec \n à la place d’une nouvelle ligne :

"This is\nmy multi-line\nsecret"

Le caractère \n ci-dessus est un caractère \ et n, et non le caractère de nouvelle ligne. Les guillemets " sont inclus dans la chaîne.

Définir le secret à l’aide d’Azure PowerShell

Avec Azure PowerShell, vous devez d’abord lire le fichier avec l’applet de commande Get-Content, puis le convertir en une chaîne sécurisée en utilisant ConvertTo-SecureString.

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

Enfin, vous stockez le secret avec l’applet de commande Set-AzKeyVaultSecret.

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

Vous pouvez afficher le secret stocké avec la commande Azure CLI az keyvault secret show ou l’applet de commande Azure PowerShell Get-AzKeyVaultSecret.

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

Le secret est retourné avec \n à la place d’une nouvelle ligne :

"This is\nmy multi-line\nsecret"

Le caractère \n ci-dessus est un caractère \ et n, et non le caractère de nouvelle ligne. Les guillemets " sont inclus dans la chaîne.

Étapes suivantes