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.