次の方法で共有


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 のゲスト構成割り当てリソースから取得されます。 たとえば、ConfigurationUriMode、および 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 がありません。

次のステップ