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