Azure Automanage マシン構成の拡張機能

マシン構成拡張機能は、仮想マシン (VM) 内で監査および構成操作を実行する Azure Automanage の機能です。

Linux および Windows 用の Azure コンピューティング セキュリティ ベースライン定義など、VM 内でポリシーをチェックするには、マシン構成拡張機能をインストールする必要があります。

前提条件

VM がマシン構成サービスに対して認証できるようにするには、VM にシステム割り当てマネージド ID が必要です。 "type": "SystemAssigned" プロパティを設定することで、VM の ID 要件を満たすことができます。

"identity": {
   "type": "SystemAssigned"
}

オペレーティング システム

マシン構成拡張機能のオペレーティング システム サポートは、ドキュメントで説明されているエンド ツー エンド ソリューションのオペレーティング システムのサポートと同じです。

インターネット接続

マシン構成拡張機能によってインストールされるエージェントは、ゲスト構成の割り当てによってリストされたコンテンツ パッケージに到達し、マシン構成サービスに状態を報告できる必要があります。 VM は、TCP ポート 443 を介した送信方向の HTTPS を使用して、またはプライベート ネットワークを介して提供される接続を使用して接続できます。

プライベート ネットワーキングの詳細については、次の記事をご覧ください。

拡張機能をインストールする

マシン構成拡張機能は、Azure CLI または PowerShell から直接インストールしてデプロイできます。 デプロイ テンプレートは、Azure Resource Manager (ARM)、Bicep、Terraform でも使用できます。 デプロイ テンプレートの詳細については、「Microsoft.GuestConfiguration guestConfigurationAssignments」を参照してください。

注意

次のデプロイ例では、<placeholder> パラメーター値を構成の特定の値に置き換えます。

デプロイに関する考慮事項

マシン構成拡張機能をインストールしてデプロイする前に、次の考慮事項を確認してください。

  • インスタンス名。 マシン構成拡張機能をインストールするときは、拡張機能のインスタンス名を AzurePolicyforWindows または AzurePolicyforLinux に設定する必要があります。 前述のセキュリティ ベースライン定義ポリシーには、これらの特定の文字列が必要です。

  • バージョン。 既定では、すべてのデプロイが最新バージョンに更新されます。 autoUpgradeMinorVersion プロパティの値は、特に指定がない限り、既定で true に設定されます。 この機能は、マシン構成拡張機能の新しいバージョンがリリースされたときにコードを更新する際の懸念を軽減するのに役立ちます。

  • 自動アップグレード。 マシン構成拡張機能では、enableAutomaticUpgrade プロパティがサポートされています。 このプロパティが true に設定されている場合、Azure では、将来のリリースが利用可能になると、最新バージョンの拡張機能に自動的にアップグレードされます。 詳細については、「Azure での Virtual Machine Scale Sets とスケール セットの拡張機能の自動アップグレード」を参照してください。

  • Azure Policy ID 要件を含む、大規模な最新バージョンのマシン構成拡張機能をデプロイするには、「ポ準拠していないリソースを識別するためのポリシー割り当てを作成する」の手順に従ってください。 Azure Policy を使用して次の割り当てを作成します。

  • 他のプロパティ。 マシン構成拡張機能に設定や 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 マシン構成 (ゲスト構成) 拡張機能がありません。
ManagedIdentityMissing マネージド ID がありません。
UserIdentityMissing ユーザー割り当て ID がありません。
GCExtensionManagedIdentityMissing マシン構成 (ゲスト構成) 拡張機能およびマネージド ID がありません。
GCExtensionUserIdentityMissing マシン構成 (ゲスト構成) 拡張機能およびユーザー割り当て ID がありません。
GCExtensionIdentityMissing マシン構成 (ゲスト構成) 拡張機能、マネージド ID、およびユーザー割り当て ID がありません。

次の手順