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

Azure Policy 证明结构

Azure Policy 使用证明来设置手动策略所针对的资源或范围的符合性状态。 它们还允许用户提供附加的元数据或已证明的符合性状态随附的证据链接。

注意

只能通过 Azure Policy Azure 资源管理器 (ARM) APIPowerShellAzure CLI 来创建和管理证明。

最佳实践

证明可用于为给定手动策略设置单个资源的符合性状态。 这意味着每个适用的资源对每个手动策略分配都需要一个证明。 为了便于管理,应将手动策略设计为针对定义需证明其符合性状态的资源边界的范围。

例如,假设组织按资源组划分团队,并且每个团队都需要证明用于处理该资源组内资源的开发过程。 在此方案中,策略规则的条件应指定类型 Microsoft.Resources/resourceGroups。 这样一来,资源组仅需要一个证明,而不是对其中每个资源进行证明。 同样,如果组织按订阅划分团队,则策略规则应以 Microsoft.Resources/subscriptions 为目标。

通常,提供的证据应与组织结构的相关范围对应。 该模式可避免跨多个证明重复提供证据。 此类重复行为会使手动策略难以管理,并指示策略定义针对错误的资源。

示例证明

下面是创建新证明资源的示例,该资源为手动策略分配面向的资源组设置符合性状态:

PUT http://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/attestations/{name}?api-version=2019-10-01

请求正文

下面是一个示例证明资源 JSON 对象:

"properties": {
    "policyAssignmentId": "/subscriptions/{subscriptionID}/providers/microsoft.authorization/policyassignments/{assignmentID}",
    "policyDefinitionReferenceId": "{definitionReferenceID}",
    "complianceState": "Compliant",
    "expiresOn": "2023-07-14T00:00:00Z",
    "owner": "{AADObjectID}",
    "comments": "This subscription has passed a security audit. See attached details for evidence",
    "evidence": [
        {
          "description": "The results of the security audit.",
          "sourceUri": "https://gist.github.com/contoso/9573e238762c60166c090ae16b814011"
        },
        {
          "description": "Description of the attached evidence document.",
          "sourceUri": "https://storagesamples.blob.core.windows.net/sample-container/contingency_evidence_adendum.docx"
        },
    ],
    "assessmentDate": "2022-11-14T00:00:00Z",
    "metadata": {
         "departmentId": "{departmentID}"
     }
}
属性 说明
policyAssignmentId (必填)为其设置状态的分配 ID。
policyDefinitionReferenceId (可选)定义引用 ID(如果在策略计划内)。
complianceState (必填)资源的状态。 允许使用的值为 CompliantNonCompliantUnknown
expiresOn (可选)符合性状态应从已证明的符合性状态还原为默认状态的日期
owner (可选)责任方的 Azure AD 对象 ID。
comments (可选)状态设置原因的说明。
evidence (可选)指向证明证据的链接的数组。
assessmentDate 评估证据的日期。
metadata (可选)与证明相关的其他信息。

由于证明是与策略分配不同的资源,因此它们有自己的生命周期。 可以使用 ARM API 对证明执行 PUT、GET 和 DELETE 操作。 如果删除相关的手动策略分配或 policyDefinitionReferenceId,或者删除对证明唯一的资源,则会删除证明。 有关更多详细信息,请参阅策略 REST API 参考

后续步骤