Хранение многострочных секретов в 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
Затем этот файл можно передать в команду Azure CLI az keyvault secret set с помощью параметра --file
.
az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "MultilineSecret" --file "secretfile.txt"
Затем вы можете просмотреть сохраненный секрет с помощью команды Azure CLI az keyvault secret show .
az keyvault secret show --name "MultilineSecret" --vault-name "<your-unique-keyvault-name>" --query "value"
Секрет будет возвращен с \n
вместо newline:
"This is\nmy multi-line\nsecret"
Приведенный \n
выше символ и n
\
, а не символ новой строки. Кавычки "
включаются в строку.
Настройка секрета с помощью Azure PowerShell
При работе в 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"
Секрет будет возвращен с \n
вместо newline:
"This is\nmy multi-line\nsecret"
Приведенный \n
выше символ и n
\
, а не символ новой строки. Кавычки "
включаются в строку.