Azure Machine Configuration 拡張機能
Machine Configuration 拡張機能は、仮想マシン (VM) 内で監査および構成の操作を実行します。
Linux および Windows 用の Azure Compute セキュリティ ベースライン定義など、VM 内のポリシーを確認するには、Machine Configuration 拡張機能をインストールする必要があります。
前提条件
VM で Machine Configuration サービスに対して認証できるようにするには、VM にシステム割り当てマネージド ID が必要です。 "type": "SystemAssigned"
プロパティを設定することで、VM の ID 要件を満たすことができます。
"identity": {
"type": "SystemAssigned"
}
オペレーティング システム
Machine Configuration 拡張機能のオペレーティング システム サポートは、エンド ツー エンド ソリューションのオペレーティング システム サポートに関するドキュメントに記載されているオペレーティング システム サポートと同じです。
インターネット接続
Machine Configuration 拡張機能によってインストールされるエージェントは、ゲスト構成の割り当てによってリストされたコンテンツ パッケージに到達でき、Machine Configuration サービスに状態を報告できる必要があります。 VM は、TCP ポート 443 を介した送信方向の HTTPS を使用して、またはプライベート ネットワークを介して提供される接続を使用して接続できます。
プライベート ネットワーキングの詳細については、次の記事をご覧ください。
拡張機能をインストールする
Machine Configuration 拡張機能は、Azure CLI または PowerShell から直接インストールしてデプロイできます。 デプロイ テンプレートは、Azure Resource Manager (ARM)、Bicep、Terraform でも使用できます。 デプロイ テンプレートの詳細については、「Microsoft.GuestConfiguration guestConfigurationAssignments」を参照してください。
注意
次のデプロイ例では、<placeholder>
パラメーター値を構成の特定の値に置き換えます。
デプロイに関する考慮事項
Machine Configuration 拡張機能をインストールしてデプロイする前に、次の考慮事項を確認します。
インスタンス名。 Machine Configuration 拡張機能をインストールする際、拡張機能のインスタンス名を
AzurePolicyforWindows
またはAzurePolicyforLinux
に設定する必要があります。 前述のセキュリティ ベースライン定義ポリシーには、これらの特定の文字列が必要です。バージョン。 既定では、すべてのデプロイが最新バージョンに更新されます。
autoUpgradeMinorVersion
プロパティの値は、特に指定がない限り、既定でtrue
に設定されます。 この機能は、Machine Configuration 拡張機能の新しいバージョンがリリースされたときにコードを更新する際の懸念を軽減するのに役立ちます。自動アップグレード。 Machine Configuration 拡張機能では、
enableAutomaticUpgrade
プロパティがサポートされています。 このプロパティがtrue
に設定されている場合、Azure では、将来のリリースが利用可能になると、最新バージョンの拡張機能に自動的にアップグレードされます。 詳細については、「Azure での Virtual Machine Scale Sets とスケール セットの拡張機能の自動アップグレード」を参照してください。Azure Policy ID 要件など、最新バージョンの Machine Configuration 拡張機能を大規模にデプロイするには、準拠していないリソースを識別するためのポリシー割り当ての作成に関する記事の手順に従います。 Azure Policy を使用して次の割り当てを作成します。
他のプロパティ。 Machine Configuration 拡張機能に設定や protected-settings プロパティを含める必要はありません。 エージェントによって、このクラスの情報は 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 | Machine Configuration (ゲスト構成) 拡張機能がありません。 |
ManagedIdentityMissing | マネージド ID がありません。 |
UserIdentityMissing | ユーザー割り当て ID がありません。 |
GCExtensionManagedIdentityMissing | Machine Configuration (ゲスト構成) 拡張機能およびマネージド ID がありません。 |
GCExtensionUserIdentityMissing | Machine Configuration (ゲスト構成) 拡張機能およびユーザー割り当て ID がありません。 |
GCExtensionIdentityMissing | Machine Configuration (ゲスト構成) 拡張機能、マネージド ID、ユーザー割り当て ID がありません。 |
次のステップ
- Machine Configuration 拡張機能の詳細については、「Azure マシンの構成について」を参照してください。
- Linux エージェントと拡張機能のしくみの詳細については、Linux 用の仮想マシンの拡張機能とその機能に関する記事を参照してください。
- Windows ゲスト エージェントと拡張機能のしくみの詳細については、Windows 用の 仮想マシン拡張機能とその機能に関する記事を参照してください。
- Windows ゲスト エージェントをインストールする場合は、Azure 仮想マシン エージェントの概要に関するページをご覧ください。
- Linux エージェントをインストールするには、「Azure Linux エージェントの理解と使用」を参照してください。