Machine Configuration 확장은 VM(가상 머신) 내에서 감사 및 구성 작업을 수행합니다.
Linux 및 Windows에 대한 Azure 컴퓨팅 보안 기준 정의와 같은 VM 내의 정책을 확인하려면 Machine Configuration 확장을 설치해야 합니다.
필수 조건
VM이 Machine Configuration 서비스에 인증할 수 있도록 하려면 VM에 시스템 할당 관리 ID가 있어야 합니다. 속성을 설정하여 VM에 대한 ID 요구 사항을 충족할 수 있습니다."type": "SystemAssigned"
"identity": {
"type": "SystemAssigned"
}
운영 체제
컴퓨터 구성 확장에 대한 운영 체제 지원은 엔드 투 엔드 솔루션에 대한 문서화된 운영 체제 지원과 동일합니다.
Internet connectivity
컴퓨터 구성 확장에 의해 설치된 에이전트는 게스트 구성 할당에 나열된 콘텐츠 패키지에 도달하고 상태를 Machine Configuration 서비스에 보고할 수 있어야 합니다. VM은 TCP 포트 443을 통해 아웃바운드 HTTPS를 사용하거나 프라이빗 네트워킹을 통해 제공되는 연결을 사용하여 연결할 수 있습니다.
프라이빗 네트워킹에 대한 자세한 내용은 다음 문서를 참조하세요.
익스텐션 설치
Azure CLI 또는 PowerShell에서 직접 Machine Configuration 확장을 설치하고 배포할 수 있습니다. 배포 템플릿은 ARM(Azure Resource Manager), Bicep 및 Terraform에도 사용할 수 있습니다. 배포 템플릿 세부 정보는 Microsoft.GuestConfiguration guestConfigurationAssignments를 참조하세요.
비고
다음 배포 예제에서 매개 변수 값을 구성에 대한 특정 값으로 바꿉 <placeholder>
니다.
배포 고려 사항
Machine Configuration 확장을 설치하고 배포하기 전에 다음 고려 사항을 검토합니다.
인스턴스 이름입니다. 컴퓨터 구성 확장을 설치할 때 확장의 인스턴스 이름을 설정하거나
AzurePolicyforLinux
.로 설정AzurePolicyforWindows
해야 합니다. 앞에서 설명한 보안 기준 정의 정책에는 이러한 특정 문자열이 필요합니다.버전. 기본적으로 모든 배포는 최신 버전으로 업데이트됩니다. 달리 지정하지 않는 한 속성의
autoUpgradeMinorVersion
값은 기본값true
으로 설정됩니다. 이 기능은 새 버전의 Machine Configuration 확장이 릴리스될 때 코드 업데이트에 대한 우려를 완화하는 데 도움이 됩니다.자동 업그레이드. Machine Configuration 확장은 이 속성을 지원합니다
enableAutomaticUpgrade
. 이 속성을 설정true
하면 이후 릴리스를 사용할 수 있게 되면 Azure에서 자동으로 최신 버전의 확장으로 업그레이드됩니다. 자세한 내용은 Azure에서 VM 및 Virtual Machine Scale Sets에 대한 자동 확장 업그레이드를 참조하세요.Azure Policy. ID 요구 사항을 포함하여 대규모로 최신 버전의 Machine Configuration 확장을 배포하려면 정책 할당 만들기의 단계에 따라 비준수 리소스를 식별합니다. 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 template
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"
}
오류 메시지
다음 표에서는 게스트 구성 확장 사용과 관련된 가능한 오류 메시지를 나열합니다.
오류 코드 | Description |
---|---|
NoComplianceReport | VM은 규정 준수 데이터를 보고하지 않았습니다. |
GCExtensionMissing | 컴퓨터 구성(게스트 구성) 확장이 없습니다. |
ManagedIdentityMissing | 관리 ID가 없습니다. |
UserIdentityMissing | 사용자 할당 ID가 없습니다. |
GCExtensionManagedIdentityMissing | 컴퓨터 구성(게스트 구성) 확장 및 관리 ID가 없습니다. |
GCExtensionUserIdentityMissing | 컴퓨터 구성(게스트 구성) 확장 및 사용자 할당 ID가 없습니다. |
GCExtensionIdentityMissing | 컴퓨터 구성(게스트 구성) 확장, 관리 ID 및 사용자 할당 ID가 없습니다. |
다음 단계
- Machine Configuration 확장에 대한 자세한 내용은 Azure Machine Configuration 이해(Understand Azure Machine Configuration)를 참조하세요.
- Linux 에이전트 및 확장의 작동 방식에 대한 자세한 내용은 Linux용 가상 머신 확장 및 기능을 참조하세요.
- Windows 게스트 에이전트 및 확장의 작동 방식에 대한 자세한 내용은 Windows용 가상 머신 확장 및 기능을 참조하세요.
- Windows 게스트 에이전트를 설치하려면 Azure Virtual Machine 에이전트 개요를 참조하세요.
- Linux 에이전트를 설치하려면 Azure Linux 에이전트 이해 및 사용을 참조하세요.