Compartilhar via


Armazenar um segredo multilinha no Azure Key Vault

O Guia de início rápido da CLI do Azure ou o Guia de início rápido do Azure PowerShell demonstram como armazenar um segredo de linha única. Também é possível usar o Key Vault para armazenar um segredo multilinha, como um arquivo JSON ou uma chave privada RSA.

Os segredos multilinha não podem ser passados para o comando az keyvault secret set da CLI do Azure nem para o cmdlet Set-AzKeyVaultSecret do Azure PowerShell por meio da linha de comando. Em vez disso, primeiro será necessário armazenar o segredo multilinha como um arquivo de texto.

Por exemplo, será possível criar um arquivo de texto chamado "secretfile.txt" contendo as seguintes linhas:

This is my
multi-line
secret

Definir o segredo usando a CLI do Azure

Depois será possível passar esse arquivo para o comando az keyvault secret set da CLI do Azure usando o parâmetro --file.

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

Em seguida, você pode exibir o segredo armazenado usando 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á retornado com \n no lugar de nova linha:

"This is\nmy multi-line\nsecret"

O \n acima é um caractere \ e n, não o caractere de nova linha. As aspas " estão incluídas na cadeia de caracteres.

Definir o segredo usando o PowerShell

Primeiro, será necessário ler o arquivo usando o cmdlet Get-Content com o Azure PowerShell. Depois converter o arquivo em uma cadeia de caracteres segura usando o comando ConvertTo-SecureString.

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

Por fim, armazene o segredo usando o cmdlet Set-AzKeyVaultSecret.

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

Você pode exibir o segredo armazenado usando o comando az keyvault secret show da CLI do Azure ou o cmdlet Get-AzKeyVaultSecret do Azure PowerShell.

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

O segredo será retornado com \n no lugar de nova linha:

"This is\nmy multi-line\nsecret"

O \n acima é um caractere \ e n, não o caractere de nova linha. As aspas " estão incluídas na cadeia de caracteres.

Próximas etapas