Archiviare un segreto su più righe in Azure Key Vault

L'avvio rapido dell'interfaccia della riga di comando di Azure o la guida introduttiva di Azure PowerShell dimostra come archiviare un segreto a riga singola. È anche possibile usare Key Vault per archiviare un segreto su più righe, ad esempio un file JSON o una chiave privata RSA.

I segreti su più righe non possono essere passati al comando dell'interfaccia della riga di comando di Azure az keyvault secret set o al cmdlet di Azure PowerShell Set-AzKeyVaultSecret tramite la riga di comando. È invece necessario archiviare prima il segreto su più righe come file di testo.

Ad esempio, è possibile creare un file di testo denominato "secretfile.txt" contenente le seguenti righe:

This is my
multi-line
secret

Impostare il segreto mediante l'interfaccia della riga di comando di Azure

È quindi possibile passare questo file al comando dell'interfaccia della riga di comando di Azure az keyvault secret set usando il parametro --file.

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

È quindi possibile visualizzare il segreto archiviato usando il comando dell'interfaccia della riga di comando di Azure az keyvault secret show.

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

Il segreto verrà restituito con \n al posto della nuova riga:

"This is\nmy multi-line\nsecret"

Il \n precedente è un carattere \ e n, non il carattere della nuova riga. Le virgolette " sono incluse nella stringa.

Impostare il segreto mediante Azure PowerShell

Con Azure PowerShell, è necessario prima leggere il file usando il Get-Content, quindi convertirlo in una stringa sicura usando ConvertTo-SecureString.

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

Infine, si archivia il segreto usando il cmdlet Set-AzKeyVaultSecret.

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

È quindi possibile visualizzare il segreto archiviato usando il comando dell'interfaccia della riga di comando di Azure az keyvault secret show o il cmdlet di Azure PowerShell Get-AzKeyVaultSecret.

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

Il segreto verrà restituito con \n al posto della nuova riga:

"This is\nmy multi-line\nsecret"

Il \n precedente è un carattere \ e n, non il carattere della nuova riga. Le virgolette " sono incluse nella stringa.

Passaggi successivi