Хранение многострочных секретов в Azure Key Vault

В кратких руководствах для Azure CLI и Azure PowerShell показано, как сохранить однострочный секрет. Но вы можете использовать Key Vault и для хранения многострочного секрета, например JSON-файла или закрытого ключа RSA.

Многострочные секреты не могут быть переданы в команду Azure CLI az keyvault secret set или в командлет Azure PowerShell Set-AzKeyVaultSecret через командную строку. Вместо этого их нужно сохранять в виде текстового файла.

Например, вы можете создать текстовый файл с именем secretfile.txt, который содержит следующие строки:

This is my
multi-line
secret

Затем этот файл можно передать в команду Azure CLI az keyvault secret set с помощью параметра --file.

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

При работе в Azure PowerShell следует сначала считать файл с помощью командлета Get-Content, а затем преобразовать его в защищенную строку с помощью ConvertTo-SecureString.

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

И наконец, для сохранения секрета используйте командлет Set-AzKeyVaultSecret.

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

В любом случае вы сможете получить сохраненный секрет с помощью команды Azure CLI az keyvault secret show или командлета Azure PowerShell Get-AzKeyVaultSecret.

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

Они возвращают сохраненный секрет с внедренными символами новой строки:

"This is\nmy multi-line\nsecret"

Дальнейшие действия