Azure 컴퓨터 구성 확장
컴퓨터 구성 확장 기능은 VM(가상 머신) 내에서 감사 및 구성 작업을 수행합니다.
Linux 및 Windows에 대한 Azure 컴퓨팅 보안 기준 정의와 같은 VM 내의 정책을 확인하려면 컴퓨터 구성 확장을 설치해야 합니다.
필수 조건
VM이 컴퓨터 구성 서비스에 인증할 수 있도록 하려면 VM에 시스템이 할당한 관리 ID가 있어야 합니다. "type": "SystemAssigned"
속성을 설정하여 VM에 대한 ID 요구 사항을 충족시킬 수 있습니다.
"identity": {
"type": "SystemAssigned"
}
운영 체제
컴퓨터 구성 확장의 운영 체제 지원은 문서화된 엔드투엔드 솔루션의 운영 체제 지원과 동일합니다.
인터넷 연결
컴퓨터 구성 확장에서 설치한 에이전트는 게스트 구성 할당에 나열된 콘텐츠 패키지에 연결하고 컴퓨터 구성 서비스에 상태를 보고할 수 있어야 합니다. VM은 TCP 포트 443을 통한 아웃바운드 HTTPS 또는 개인 네트워킹을 통해 제공되는 연결을 사용하여 연결할 수 있습니다.
개인 네트워킹에 대해 자세히 알아보려면 다음 문서를 참조하세요.
확장 설치
Azure CLI 또는 PowerShell에서 직접 컴퓨터 구성 확장을 설치하고 배포할 수 있습니다. 배포 템플릿은 ARM(Azure Resource Manager), Bicep, Terraform에도 사용할 수 있습니다. 배포 템플릿 세부 정보는 Microsoft.GuestConfiguration guestConfigurationAssignments를 참조하세요.
참고 항목
다음 배포 예제에서 <placeholder>
매개 변수 값을 구성의 특정 값으로 바꿉니다.
배포 고려 사항
컴퓨터 구성 확장을 설치하고 배포하기 전에 다음 고려 사항을 검토합니다.
인스턴스 이름 컴퓨터 구성 확장을 설치할 때 확장의 인스턴스 이름을
AzurePolicyforWindows
또는AzurePolicyforLinux
로 설정해야 합니다. 앞에서 설명한 보안 기준 정의 정책에는 이러한 특정 문자열이 필요합니다.버전 기본적으로 모든 배포가 최신 버전으로 업데이트됩니다.
autoUpgradeMinorVersion
속성의 값은 달리 지정되지 않는 한true
로 기본 설정됩니다. 이 기능은 새 버전의 컴퓨터 구성 확장이 릴리스될 때 코드 업데이트에 대한 우려를 완화하는 데 도움이 됩니다.자동 업그레이드 컴퓨터 구성 확장은
enableAutomaticUpgrade
속성을 지원합니다. 이 속성이true
로 설정되면 Azure는 향후 릴리스가 제공되는 경우 최신 버전의 확장으로 자동 업그레이드됩니다. 자세한 내용은 Azure의 VM 및 Virtual Machine Scale Sets에 대한 자동 확장 업그레이드를 참조하세요.Azure Policy ID 요구 사항을 포함하여 최신 버전의 컴퓨터 구성 확장을 대규모로 배포하려면 비규격 리소스를 식별하기 위한 정책 할당 만들기의 단계를 수행합니다. Azure Policy를 사용하여 다음 할당을 만듭니다.
기타 속성 컴퓨터 구성 확장에 설정 또는 보호된 설정 속성을 포함할 필요가 없습니다. 에이전트는 Azure REST API 게스트 구성 할당 리소스에서 이 클래스의 정보를 검색합니다. 예를 들어
ConfigurationUri
,Mode
및ConfigurationSetting
속성은 VM 확장이 아니라 구성에 따라 각각 관리됩니다.
Azure CLI
Linux용 확장을 배포하려면 다음을 수행합니다.
az vm extension set --publisher Microsoft.GuestConfiguration --name ConfigurationForLinux --extension-instance-name AzurePolicyforLinux --resource-group <myResourceGroup> --vm-name <myVM> --enable-auto-upgrade true
Windows용 확장을 배포하려면 다음을 수행합니다.
az vm extension set --publisher Microsoft.GuestConfiguration --name ConfigurationforWindows --extension-instance-name AzurePolicyforWindows --resource-group <myResourceGroup> --vm-name <myVM> --enable-auto-upgrade true
PowerShell
Linux용 확장을 배포하려면 다음을 수행합니다.
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationForLinux' -Name 'AzurePolicyforLinux' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
Windows용 확장을 배포하려면 다음을 수행합니다.
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationforWindows' -Name 'AzurePolicyforWindows' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
ARM 템플릿
Linux용 확장을 배포하려면 다음을 수행합니다.
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(parameters('VMName'), '/AzurePolicyforLinux')]",
"apiVersion": "2020-12-01",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]"
],
"properties": {
"publisher": "Microsoft.GuestConfiguration",
"type": "ConfigurationForLinux",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {}
}
}
Windows용 확장을 배포하려면 다음을 수행합니다.
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(parameters('VMName'), '/AzurePolicyforWindows')]",
"apiVersion": "2020-12-01",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]"
],
"properties": {
"publisher": "Microsoft.GuestConfiguration",
"type": "ConfigurationforWindows",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {}
}
}
Bicep 템플릿
Linux용 확장을 배포하려면 다음을 수행합니다.
resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-03-01' existing = {
name: 'VMName'
}
resource windowsVMGuestConfigExtension 'Microsoft.Compute/virtualMachines/extensions@2020-12-01' = {
parent: virtualMachine
name: 'AzurePolicyforLinux'
location: resourceGroup().location
properties: {
publisher: 'Microsoft.GuestConfiguration'
type: 'ConfigurationForLinux'
typeHandlerVersion: '1.0'
autoUpgradeMinorVersion: true
enableAutomaticUpgrade: true
settings: {}
protectedSettings: {}
}
}
Windows용 확장을 배포하려면 다음을 수행합니다.
resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-03-01' existing = {
name: 'VMName'
}
resource windowsVMGuestConfigExtension 'Microsoft.Compute/virtualMachines/extensions@2020-12-01' = {
parent: virtualMachine
name: 'AzurePolicyforWindows'
location: resourceGroup().location
properties: {
publisher: 'Microsoft.GuestConfiguration'
type: 'ConfigurationforWindows'
typeHandlerVersion: '1.0'
autoUpgradeMinorVersion: true
enableAutomaticUpgrade: true
settings: {}
protectedSettings: {}
}
}
Terraform 템플릿
Linux용 확장을 배포하려면 다음을 수행합니다.
resource "azurerm_virtual_machine_extension" "gc" {
name = "AzurePolicyforLinux"
virtual_machine_id = "<myVMID>"
publisher = "Microsoft.GuestConfiguration"
type = "ConfigurationForLinux"
type_handler_version = "1.0"
auto_upgrade_minor_version = "true"
}
Windows용 확장을 배포하려면 다음을 수행합니다.
resource "azurerm_virtual_machine_extension" "gc" {
name = "AzurePolicyforWindows"
virtual_machine_id = "<myVMID>"
publisher = "Microsoft.GuestConfiguration"
type = "ConfigurationforWindows"
type_handler_version = "1.0"
auto_upgrade_minor_version = "true"
}
오류 메시지
다음 표에는 게스트 구성 확장을 사용하는 것과 관련된 오류 메시지가 나열되어 있습니다.
오류 코드 | 설명 |
---|---|
NoComplianceReport | VM에서 준수 데이터를 보고하지 않았습니다. |
GCExtensionMissing | 컴퓨터 구성(게스트 구성) 확장이 없습니다. |
ManagedIdentityMissing | 관리 ID가 없습니다. |
UserIdentityMissing | 사용자 할당 ID가 없습니다. |
GCExtensionManagedIdentityMissing | 컴퓨터 구성(게스트 구성) 확장 및 관리 ID가 없습니다. |
GCExtensionUserIdentityMissing | 컴퓨터 구성(게스트 구성) 확장 및 사용자 할당 ID가 없습니다. |
GCExtensionIdentityMissing | 컴퓨터 구성(게스트 구성) 확장, 관리 ID, 사용자 할당 ID가 없습니다. |
다음 단계
- 컴퓨터 구성 확장에 대한 자세한 내용은 Azure 컴퓨터 구성 이해를 참조하세요.
- Linux 에이전트 및 확장 기능의 작동 방식에 대한 자세한 내용은 Linux용 가상 머신 확장 및 기능을 참조하세요.
- Windows 게스트 에이전트 및 확장 기능의 작동 방식에 대한 자세한 내용은 Windows용 가상 머신 확장 및 기능을 참조하세요.
- Windows 게스트 에이전트를 설치하려면 Azure Virtual Machine 에이전트 개요를 참조하세요.
- Linux 에이전트를 설치하려면 Azure Linux 에이전트 이해 및 사용을 참조하세요.