Partilhar via


Armazenar um segredo de várias linhas no Azure Key Vault

O início rápido da CLI do Azure ou Azure PowerShell início rápido demonstram como armazenar um segredo de linha única. Também pode utilizar Key Vault para armazenar um segredo de várias linhas, como um ficheiro JSON ou uma chave privada RSA.

Não é possível transmitir segredos de várias linhas para o comando az keyvault secret set da CLI do Azure ou para o cmdlet Set-AzKeyVaultSecret da Azure PowerShell através da linha de comandos. Em vez disso, primeiro tem de armazenar o segredo de várias linhas como um ficheiro de texto.

Por exemplo, pode criar um ficheiro de texto chamado "secretfile.txt" com as seguintes linhas:

This is my
multi-line
secret

Definir o segredo com a CLI do Azure

Em seguida, pode transmitir este ficheiro para o comando az keyvault secret set da CLI do Azure com o --file parâmetro .

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

Em seguida, pode ver o segredo armazenado com o comando az keyvault secret show da CLI do Azure.

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

O segredo será devolvido com \n em vez de newline:

"This is\nmy multi-line\nsecret"

O \n acima é um \ caráter e n , não o caráter newline. As aspas " estão incluídas na cadeia.

Definir o segredo com o Azure Powershell

Com Azure PowerShell, primeiro tem de ler no ficheiro com o cmdlet Get-Content e, em seguida, convertê-lo numa cadeia segura com ConvertTo-SecureString.

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

Por fim, armazena o segredo com o cmdlet Set-AzKeyVaultSecret .

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

Em seguida, pode ver o segredo armazenado com o comando az keyvault secret show da CLI do Azure ou o cmdlet Get-AzKeyVaultSecret Azure PowerShell.

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

O segredo será devolvido com \n em vez de newline:

"This is\nmy multi-line\nsecret"

O \n acima é um \ caráter e n , não o caráter newline. As aspas " estão incluídas na cadeia.

Passos seguintes