将多行机密存储在 Azure Key Vault 中

Azure CLI 快速入门Azure PowerShell 快速入门演示了如何存储单行机密。 还可以使用 Key Vault 来存储多行机密,如 JSON 文件或 RSA 私钥。

多行机密无法通过命令行传递给 Azure CLI az keyvault secret set 命令或 Azure PowerShell Set-AzKeyVaultSecret cmdlet。 而是必须首先将多行机密存储为文本文件。

例如,可以创建一个名为“secretfile.txt”的文本文件,其中包含以下行:

This is my
multi-line
secret

使用 Azure CLI 设置机密

然后,可以使用 --file 参数将此文件传递给 Azure CLI az keyvault secret set 命令。

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 cmdlet 来读取文件,然后使用 ConvertTo-SecureString 将其转换为安全字符串。

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

最后,使用 Set-AzKeyVaultSecret cmdlet 存储机密。

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

然后,可以使用 Azure CLI az keyvault secret show 命令或 Azure PowerShell Get-AzKeyVaultSecret cmdlet 查看存储的机密。

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

返回机密时将包含 \n,以取代换行符:

"This is\nmy multi-line\nsecret"

上面的 \n\n 字符,而不是换行符。 字符串中包含引号 "

后续步骤