[Azure] 101-vm-Shkey ARM 템플릿 판독
개시하다
Azure QuickStart Templates독학하세요!
그래서 출력도 시도해 본다.제4탄.
이번 판독 대상.
Deploy a Virtual Machine with SSH Keys
템플릿 요약 정보
이 템플릿을 디버깅하면 공개 키 인증을 사용하는 VM SSH 연결을 디버깅할 수 있습니다.
Linux VM을 만들 때 보안상의 이유로 공개 키 인증이 활성화되고 암호 인증이 금지되는 경우가 많습니다.그때 나는 이 틀을 참고할 수 있다고 생각했다.
해독하다
매번 있습니다. 흔히 볼 수 있는 템플릿 모델은 다음과 같습니다.
매개변수 지정(parameters)
상단
"parameters":
부터 시작하는 부분은 템플릿에 사용되는 매개 변수(변수)의 설정입니다.템플릿을 디버깅할 때 옵션으로 표시할 수 있습니다.adminPublicKey
에 공개 키 문자열을 입력합니다.azuredeploy.json
"parameters": {
"projectName": {
"type": "string",
"metadata": {
"description": "Specifies a name for generating resource names."
}
},
...
"adminPublicKey": {
"type": "string",
"metadata": {
"description": "Specifies the SSH rsa public key file as a string. Use \"ssh-keygen -t rsa -b 2048\" to generate your SSH key pairs."
}
},
아무래도 adminPublicKey
로"type": "securestring"
지목하는 게 나을 것 같죠?하지만 냉정하게 생각해보면 공개 키니까 유출해도 괜찮아 이러면 돼.(※) 지정
"type": "securestring"
을 통해 일반 비밀번호 입력 화면처럼 마스크 상태에서 입력할 수 있습니다.또한 디버그 후 로그 등에서도 수치를 확인할 수 없기 때문에 암호 같은 문자열을 안전하게 전달할 수 있다.변수 설정(variables)
"variables":
영역에서 이yaml 파일에 사용할 변수 이름을 설정할 수 있습니다.이 템플릿에서는 서브넷과 VM 이름 등이 여기에 설정됩니다.변경하고 싶을 때 여기를 적당히 개작해서 디자인하면 된다.azuredeploy.json
"variables": {
"vNetName": "[concat(parameters('projectName'), '-vnet')]",
"vNetAddressPrefixes": "10.0.0.0/16",
"vNetSubnetName": "default",
"vNetSubnetAddressPrefix": "10.0.0.0/24",
"vmName": "[concat(parameters('projectName'), '-vm')]",
"publicIPAddressName": "[concat(parameters('projectName'), '-ip')]",
"networkInterfaceName": "[concat(parameters('projectName'), '-nic')]",
"networkSecurityGroupName": "[concat(parameters('projectName'), '-nsg')]",
"networkSecurityGroupName2": "[concat(variables('vNetSubnetName'), '-nsg')]"
},
디버깅할 자원에 대한 설명 (resources)
"resources":
구역에서 실행할 자원을 설명합니다.기본적인 구성은 졸저[Azure] 101-vm-Multiple-ipconfig 템플릿 판독를 참고할 수 있다고 생각합니다. 저쪽을 보세요.
비밀번호 인증은
"type": "Microsoft.Compute/virtualMachines
의properties
-osProfile
-linuxConfiguration
로 구성되어 있다.azuredeploy.json
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2019-12-01",
"name": "[variables('vmName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceName'))]"
],
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('vmSize')]"
},
"osProfile": {
"computerName": "[variables('vmName')]",
"adminUsername": "[parameters('adminUsername')]",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "[concat('/home/', parameters('adminUsername'), '/.ssh/authorized_keys')]",
"keyData": "[parameters('adminPublicKey')]"
}
]
}
}
},
...
}
}
한편으로는 설정disablePasswordAuthentication
, 다른 한편으로는 설정PublicKeys
.쓰기 방법상 path
지정한 파일에 쓴 것 같다. keyData
참조: Microsoft.Compute virtualMachines최후
Azure QuickStart Templates 애저에 대해 공부할 때 저는 이 산이 매우 소중한 산이라고 생각했습니다. 앞으로도 재미있는 것을 읽으려고 노력하겠습니다.
Reference
이 문제에 관하여([Azure] 101-vm-Shkey ARM 템플릿 판독), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/08thse/articles/07-qt-read-101-vm-sshkey텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)