了解来宾配置分配资源
分配 Azure Policy 时,如果类别为“来宾配置”,则会提供元数据来描述来宾分配。
可以将来宾分配视为计算机和 Azure Policy 方案之间的链接。 例如,下面的代码片段将 Azure Windows 基线配置与策略范围内任何计算机的最低版本 1.0.0
相关联。
"metadata": {
"category": "Guest Configuration",
"guestConfiguration": {
"name": "AzureWindowsBaseline",
"version": "1.*"
}
//additional metadata properties exist
Azure Policy 如何使用来宾配置分配
来宾配置服务使用元数据信息自动为具有 AuditIfNotExists 或 DeployIfNotExists 策略效果的定义创建审核资源 。 资源类型为 Microsoft.GuestConfiguration/guestConfigurationAssignments
。 Azure Policy 使用来宾分配资源的 complianceStatus 属性来报告合规性状态。 有关详细信息,请参阅获取符合性数据。
删除 Azure Policy 中的来宾分配
删除 Azure Policy 分配时,如果该策略创建了来宾配置分配,那么来宾配置分配也会被删除。
在从计划中删除 Azure Policy 分配时,如果策略创建了来宾配置分配,则需要手动删除相应的来宾配置分配。 通过在 Azure 门户上导航到来宾分配页并删除该分配,可完成此操作。
手动创建来宾配置分配
Azure 资源管理器中的来宾分配资源可以由 Azure Policy 或任何客户端 SDK 创建。
部署模板示例:
{
"$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": "chinanorth2",
"properties": {
"guestConfiguration": {
"name": "myConfig",
"contentUri": "https://mystorageaccount.blob.core.chinacloudapi.cn/mystoragecontainer/myConfig.zip?sv=SASTOKEN",
"contentHash": "SHA256HASH",
"version": "1.0.0",
"assignmentType": "ApplyAndMonitor",
"configurationParameter": {}
}
}
}
]
}
下表描述了来宾分配资源的每个属性。
属性 | 描述 |
---|---|
name | 内容包 MOF 文件中配置的名称。 |
contentUri | 指向内容包 (.zip) 的 HTTPS URI 路径。 |
contentHash | 内容包的 SHA256 哈希值,用于验证是否未更改。 |
版本 | 内容包的版本。 仅用于内置包,不用于自定义内容包。 |
assignmentType | 分配行为。 允许的值:Audit 、ApplyandMonitor 和 ApplyandAutoCorrect 。 |
configurationParameter | 内容包 MOF 文件中的 DSC 资源类型、名称和值的列表,该文件下载到计算机之后将被重写。 |
删除手动创建的来宾配置分配
必须手动删除通过任何手动方法(如 Azure 资源管理器模板部署)创建的来宾配置分配。 删除父资源(虚拟机或已启用 Arc 的虚拟机计算机)时也会删除来宾配置分配。
若要手动删除来宾配置分配,请使用以下示例。 请务必替换用“<>”括号指示的所有示例字符串。
# First get details about the guest configuration assignment
$resourceDetails = @{
ResourceGroupName = '<myResourceGroupName>'
ResourceType = 'Microsoft.Compute/virtualMachines/providers/guestConfigurationAssignments/'
ResourceName = '<myVMName>/Microsoft.GuestConfiguration'
ApiVersion = '2020-06-25'
}
$guestAssignment = Get-AzResource @resourceDetails
# Review details of the guest configuration assignment
$guestAssignment
# After reviewing properties of $guestAssignment to confirm
$guestAssignment | Remove-AzResource
后续步骤
- 阅读来宾配置概述。
- 设置自定义来宾配置包开发环境。
- 为来宾配置创建包项目。
- 从开发环境测试包项目。
- 使用
GuestConfiguration
模块创建 Azure Policy 定义,用于对环境进行大规模管理。 - 使用 Azure 门户分配自定义策略定义。
- 了解如何查看来宾配置策略分配的合规性详细信息。