설명
Linux VM 관리에는 보호된 SSH 키 기반 인증을 우선 검토하세요. admin_ssh_key가 없더라도 다른 방식으로 키나 인증이 구성될 수 있으므로 실제 접속 방식을 확인해야 합니다. 비밀번호에 의존한다면 추측, 재사용과 유출 위험을 관리해야 합니다.
잠재적 영향
- 약하거나 재사용된 관리자 비밀번호가 계정 탈취에 악용될 수 있습니다.
- 키 배포를 확인하지 않고 비밀번호 인증을 끄면 관리자 접속이 끊길 수 있습니다.
해결 방법
- SSH 키를 사용할 경우 승인된
admin_ssh_key와 사용자 이름을 구성하세요. 현재 AzureRM이 지원하는 Ed25519 또는 최소 2048비트 RSA 공개 키를 사용하고 개인 키는 보호하세요. - 실제 키 접속을 시험한 뒤 불필요한 비밀번호 인증을 비활성화하세요. 사용자별 키를 관리·회수하고, 키 변경 시 Terraform의 VM 교체 계획도 확인하세요.
예시
관리자 인증만 비교하는 발췌입니다. OS 디스크와 이미지는 생략했습니다. 공개 키 파일 경로는 실제 승인된 키로 바꾸세요.
변경 전
hcl
resource "azurerm_linux_virtual_machine" "example" {
name = "example-vm"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
size = "Standard_F2"
admin_username = "adminuser"
admin_password = var.admin_password
disable_password_authentication = false
network_interface_ids = [azurerm_network_interface.example.id]
}
변경 후
hcl
resource "azurerm_linux_virtual_machine" "example" {
name = "example-vm"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
size = "Standard_F2"
admin_username = "adminuser"
disable_password_authentication = true
network_interface_ids = [azurerm_network_interface.example.id]
admin_ssh_key {
username = "adminuser"
public_key = file("/secure/path/id_ed25519.pub")
}
}
설명:
- 변경 전: 비밀번호 인증을 허용하고 비밀번호 입력을 사용합니다.
- 변경 후: 관리자 공개 키를 지정하고 비밀번호 인증을 비활성화합니다.