Speichern eines mehrzeiligen Geheimnisses in Azure Key Vault

In den Schnellstartanleitungen für die Azure CLI oder für Azure PowerShell wird das Speichern eines einzeiligen Geheimnisses gezeigt. Key Vault kann aber auch zum Speichern mehrzeiliger Geheimnisse verwendet werden (beispielsweise eine JSON-Datei oder ein privater RSA-Schlüssel).

Mehrzeilige Geheimnisse können nicht über die Befehlszeile an den Azure CLI-Befehl az keyvault secret set oder an das Azure PowerShell-Cmdlet Set-AzKeyVaultSecret übergeben werden. Stattdessen muss das mehrzeilige Geheimnis als Textdatei gespeichert werden.

Sie können beispielsweise eine Textdatei namens „secretfile.txt“ erstellen, die folgende Zeilen enthält:

This is my
multi-line
secret

Festlegen des Geheimnisses mithilfe von Azure CLI

Diese Datei können Sie dann unter Verwendung des Parameters --file an den Azure CLI-Befehl az keyvault secret set übergeben.

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

Anschließend können Sie das gespeicherte Geheimnis mithilfe des Azure CLI-Befehls az keyvault secret show anzeigen.

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

Das Geheimnis wird mit \n anstelle eines Zeilenvorschubzeichens zurückgegeben:

"This is\nmy multi-line\nsecret"

Das vorstehende \n-Zeichen ist ein \-Zeichen, gefolgt von einem n-Zeichen, nicht das Zeilenvorschubzeichen. Die Zeichenfolge enthält Anführungszeichen ".

Festlegen des Geheimnisses mithilfe von Azure Powershell

Wenn Sie Azure PowerShell verwenden, muss die Datei zunächst mithilfe des Cmdlets Get-Content gelesen und anschließend mithilfe von ConvertTo-SecureString in eine sichere Zeichenfolge konvertiert werden.

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

Abschließend muss das Geheimnis mithilfe des Cmdlets Set-AzKeyVaultSecret gespeichert werden.

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

Sie können das gespeicherte Geheimnis mithilfe des Azure CLI-Befehls az keyvault secret show oder mithilfe des Azure PowerShell-Cmdlets Get-AzKeyVaultSecret anzeigen.

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

Das Geheimnis wird mit \n anstelle eines Zeilenvorschubzeichens zurückgegeben:

"This is\nmy multi-line\nsecret"

Das vorstehende \n-Zeichen ist ein \-Zeichen, gefolgt von einem n-Zeichen, nicht das Zeilenvorschubzeichen. Die Zeichenfolge enthält Anführungszeichen ".

Nächste Schritte