Поделиться через


Хранение многострочных секретов в 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 а не новым символом. Кавычки " включены в строку.

Следующие шаги