你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

了解计算机配置分配资源

分配 Azure Policy 时,如果其位于类别 Guest Configuration 中,则会包含描述访客分配的元数据。

此文档的视频演练可用

可以将来宾分配视为计算机和 Azure Policy 方案之间的链接。 例如,以下代码片段将最低版本 1.0.0 的 Azure Windows 基线配置与策略涵盖范围内的任何计算机关联。

"metadata": {
    "category": "Guest Configuration",
    "guestConfiguration": {
        "name": "AzureWindowsBaseline",
        "version": "1.*"
    }
  //additional metadata properties exist
}

Azure Policy 如何使用计算机配置分配

机器配置服务使用元数据信息,自动为具有任意AuditIfNotExistsDeployIfNotExists策略效果的定义创建审核资源。 资源类型为 Microsoft.GuestConfiguration/guestConfigurationAssignments。 Azure Policy 使用来宾分配资源的 complianceStatus 属性来报告符合性状态。 有关详细信息,请参阅 获取符合性数据

注释

分配部署来宾配置的自定义策略时,来宾分配资源上的 assignmentType 属性可能会在更新之前暂时显示为“Null”,以反映策略定义中指定的值。 这是预期行为,通常在一小时内解决。

删除 Azure Policy 中的来宾分配

删除 Azure Policy 分配时,如果策略创建了计算机配置分配,则也会删除计算机配置分配。

从策略计划中删除 Azure Policy 分配时,需要手动删除该策略创建的任何计算机配置分配。 为此,可以导航到 Azure 门户上的来宾分配页并删除该分配。

手动创建计算机配置分配

可以使用 Azure Policy 或任何客户端 SDK 在 Azure 资源管理器中创建来宾分配资源。

部署模板示例:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "apiVersion": "2021-01-25",
      "type": "Microsoft.Compute/virtualMachines/providers/guestConfigurationAssignments",
      "name": "myMachine/Microsoft.GuestConfiguration/myConfig",
      "location": "westus2",
      "properties": {
        "guestConfiguration": {
          "name": "myConfig",
          "contentUri": "https://mystorageaccount.blob.core.windows.net/mystoragecontainer/myConfig.zip?sv=SASTOKEN",
          "contentHash": "SHA256HASH",
          "version": "1.0.0",
          "assignmentType": "ApplyAndMonitor",
          "configurationParameter": [
            "name":"configurationName",
            "value":"configurationValue"
          ]
        }
      }
    }
  ]
}

配置参数的示例:

   "configurationParameter": [
        {
          "name": "[SecureWebServer]s1;MinimumTLSVersion",
          "value": "1.2"
        }
      ],

下表描述了来宾分配资源的每个属性。

资产 Description
name 内容包 MOF 文件中的配置的名称。
contentUri 内容包的 HTTPS URI 路径(.zip)。
contentHash 内容包的 SHA256 哈希值,用于验证是否未更改。
版本 内容包的版本。 仅用于内置包,不用于自定义内容包。
assignmentType 分配方式的特性。 允许的值:AuditApplyandMonitorApplyandAutoCorrect
configurationParameter 内容包 MOF 文件中的 DSC 资源类型、名称和值的列表,该文件下载到计算机之后将被重写。

删除手动创建的计算机配置分配

必须手动删除通过任何手动方法(例如 Azure 资源管理器模板部署)创建的计算机配置分配。 删除父资源(虚拟机或已启用 Arc 的计算机)也会删除计算机配置分配。

若要手动删除计算机配置分配,请使用以下示例。 请确保替换括号指示 <> 的所有示例字符串。

# First get details about the machine configuration assignment
$resourceDetails = @{
  ResourceGroupName = '<resource-group-name>'
  ResourceType      = 'Microsoft.Compute/virtualMachines/providers/guestConfigurationAssignments/'
  ResourceName      = '<vm-name>/Microsoft.GuestConfiguration'
  ApiVersion        = '2020-06-25'
}
$guestAssignment = Get-AzResource @resourceDetails

# Review details of the machine configuration assignment
$guestAssignment

# After reviewing properties of $guestAssignment to confirm
$guestAssignment | Remove-AzResource

后续步骤