🗝️

Azure PowerShell で Key Vault にSSH キーなどの複数行シークレットを登録

2024/08/06に公開

はじめに

Bastion では Key Vault に登録した SSH キーを使用してログインが可能ですが、Key Vault のシークレットは Azure ポータルからは単一行のみ登録可能となっており、複数行の SSH キーは登録ができません。そのため、Azure PowerShell や Azure CLI で登録することになります。今回は Azure PowerShell 版の紹介です。

なお、Bastion と Key Vault の連携については以下の記事で詳細に解説されていますので、併せてご確認ください。
https://qiita.com/Isato-Hiyama/items/b34c90da6a30a9d9f6fb

スクリプト

# サブスクリプションを指定
$subscriptionId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

# Azure アカウントへのログイン
Connect-AzAccount -SubscriptionId $subscriptionId

# 変数の設定
$resourceGroupName = "yourResourceGroupName"
$keyVaultName = "yourKeyVaultName"
$secretName = "yourSecretName"
$sshKeyFilePath = "C:\path\to\your\ssh\key\file"

# SSH キーファイルの内容を読み込む
$sshKeyContent = Get-Content -Path $sshKeyFilePath -Raw

# plane text の SSH キーを secure string に変換し、Key Vault のシークレットに登録
Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $secretName -SecretValue (ConvertTo-SecureString -String $sshKeyContent -AsPlainText -Force)

参考

https://learn.microsoft.com/ja-jp/azure/bastion/bastion-connect-vm-ssh-linux#ssh-private-key-authentication---azure-key-vault

Microsoft (有志)

Discussion