param location string = resourceGroup().location
param vmName string // 仮想マシンの名前
param adminUsername string // 管理アカウントのユーザー名
param adminPublicKey string = loadTextContent('id_rsa.pub') // RSA署名の公開鍵
// デフォルトでは、このBicepファイルと同じ場所にある「id_rsa.pub」に保存されている公開鍵が用いられる
// loadTextContent()では変数でファイル名を指定できないので注意
// リソース生成: 仮想マシン
resource vm 'Microsoft.Compute/virtualMachines@2022-11-01' = {
name: vmName
location: location
properties: {
osProfile: {
computerName: vmName
adminUsername: adminUsername
linuxConfiguration: { // Linux特有の設定
disablePasswordAuthentication: true // SSHでのパスワード認証を禁止
ssh: {
publicKeys: [
{
path: '/home/${adminUsername}/.ssh/authorized_keys' // 仮想マシン内での公開鍵の保存先
keyData: adminPublicKey // 公開鍵そのもの
}
]
}
}
}
}
}
// デプロイ後、確認のためにパラメータやプロパティを出力
output resouceType string = vm.type
output computerName string = vm.properties.osProfile.computerName
output adminUsername string = vm.properties.osProfile.adminUsername
output adminSSHPublicKey string = vm.properties.osProfile.linuxConfiguration.ssh.publicKeys[0].keyData
仮想マシンのサイズ(SKU)やOSイメージ、ストレージ、ネットワーク、タグなどの設定は省いているので、必要に応じて追加/変更してほしい。
※Microsoftのレファレンス: Microsoft.Compute virtualMachines
からの記事と詳細 ( 【Azure】Linux VMのSSHの公開鍵認証をデプロイ時に有効化する方法 - @IT )
https://ift.tt/FpEGjJx
No comments:
Post a Comment