

• AWS Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# AWS Systems Manager Compliance
<a name="systems-manager-compliance"></a>

您可以使用 Compliance（AWS Systems Manager 中的一项工具）扫描托管式节点实例集，了解补丁合规性和配置不一致性。您可以从多个 AWS 账户 和区域中收集并聚合数据，然后深入了解不合规的特定资源。预设情况下，Compliance 会显示关于Patch Manager中的修补以及State Manager中的关联的当前合规性数据。（Patch Manager 和State Manager也都是 AWS Systems Manager 中的工具。） 要开始使用 Compliance，请打开 [Systems Manager 控制台](https://console.aws.amazon.com//systems-manager/compliance)。在导航窗格中，选择 **合规性**。

可将来自 Patch Manager 的补丁合规性数据发送到 AWS Security Hub CSPM。Security Hub CSPM 能让您全面了解高优先级安全警报和合规性状态。它还监控您的实例集的修补状态。有关更多信息，请参阅 [将 Patch Manager 与 AWS Security Hub CSPM 集成](patch-manager-security-hub-integration.md)。

Compliance 具备以下额外优势和功能：
+ 使用 AWS Config 查看 Patch Manager 修补数据和 State Manager 关联的合规性历史记录及变更跟踪。
+ 自定义 Compliance 以根据 IT 或业务要求创建您自己的合规性类型。
+ 使用 Run Command（AWS Systems Manager 中的另一项工具）、State Manager或 Amazon EventBridge 修复问题。
+ 将数据移植到 Amazon Athena 和 Amazon Quick 以生成整个实例集的报告。

**EventBridge 支持**  
支持此 Systems Manager 工具作为 Amazon EventBridge 规则中的一个*事件*类型。有关更多信息，请参阅 [使用 Amazon EventBridge 监控 Systems Manager 事件](monitoring-eventbridge-events.md) 和 [引用：Amazon EventBridge 事件模式和 Systems Manager 类型](reference-eventbridge-events.md)。

**Chef InSpec 集成**  
Systems Manager 与 [https://www.chef.io/inspec/](https://www.chef.io/inspec/) 集成在一起。InSpec 是一个开源的运行时框架，您可以使用该框架在 GitHub 或 Amazon Simple Storage Service（Amazon S3）上创建人类可读的配置文件。然后您可以使用 Systems Manager 运行合规性扫描，并查看合规和不合规的托管式节点。有关更多信息，请参阅 [将 Chef InSpec 配置文件与 Systems Manager Compliance 结合使用](integration-chef-inspec.md)。

**定价**  
Compliance 不另外收取费用。您仅需为实际使用的 AWS 资源付费。

**Topics**
+ [

# 开始使用 Compliance
](compliance-prerequisites.md)
+ [

# 配置合规性权限
](compliance-permissions.md)
+ [

# 为 Compliance 创建资源数据同步
](compliance-datasync-create.md)
+ [

# 了解有关合规性的详细信息
](compliance-about.md)
+ [

# 删除用于 Compliance 的资源数据同步
](systems-manager-compliance-delete-RDS.md)
+ [

# 使用 EventBridge 修复合规性问题
](compliance-fixing.md)
+ [

# 使用 AWS CLI 分配自定义合规性元数据
](compliance-custom-metadata-cli.md)

# 开始使用 Compliance
<a name="compliance-prerequisites"></a>

要开始使用 Compliance（AWS Systems Manager 中的一项工具），请完成以下任务。


****  

| Task | 有关更多信息 | 
| --- | --- | 
|  Compliance 适用于Patch Manager中的补丁数据和State Manager中的关联。（Patch Manager和State Manager都是 AWS Systems Manager 中的工具。） Compliance 还适用于使用 Systems Manager 管理的托管式节点上的自定义合规性类型。验证您是否已在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中完成 Amazon Elastic Compute Cloud（Amazon EC2）实例以及非 EC2 计算机的设置要求。  |  [为组织设置 Systems Manager 统一控制台](systems-manager-setting-up-organizations.md)  | 
|  更新托管式节点使用的 AWS Identity and Access Management（IAM）角色以限制合规性权限。  |  [配置合规性权限](compliance-permissions.md)  | 
|  如果您计划监控补丁合规性，请验证您是否已配置 Patch Manager。您必须使用 Patch Manager 执行修补操作，然后 Compliance 才能显示补丁合规性数据。  |  [AWS Systems Manager Patch Manager](patch-manager.md)  | 
|  如果您计划监控关联合规性，请验证您是否已创建 State Manager 关联。您必须创建关联，然后 Compliance 才能显示关联合规性数据。  |  [AWS Systems Manager State Manager](systems-manager-state.md)  | 
|  （可选）配置系统以查看合规性历史记录和变更跟踪。  |  [查看合规性配置历史记录和变更跟踪](compliance-about.md#compliance-history)  | 
|  （可选）创建自定义合规性类型。  |  [使用 AWS CLI 分配自定义合规性元数据](compliance-custom-metadata-cli.md)  | 
|  （可选）创建资源数据同步以将所有合规性数据聚合在一个目标 Amazon Simple Storage Service (Amazon S3) 存储桶。  |  [为 Compliance 创建资源数据同步](compliance-datasync-create.md)  | 

# 配置合规性权限
<a name="compliance-permissions"></a>

作为最佳安全实践，建议您使用以下权限来更新托管式节点使用的 AWS Identity and Access Management（IAM）角色，以限制该节点使用 [PutComplianceItems](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutComplianceItems.html) API 操作的功能。该 API 操作会在指定资源（例如 Amazon EC2 实例或托管式节点）上注册合规性类型及其他合规性详细信息。

如果节点是 Amazon EC2 实例，则必须使用以下权限来更新该实例使用的 IAM 实例配置文件。有关 Systems Manager 托管的 EC2 实例的实例配置文件的更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)。对于其他类型的托管式节点，请使用以下权限来更新节点使用的 IAM 角色。有关更多信息，请参阅《IAM 用户指南》**中的[更新角色的权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutComplianceItems"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:SourceInstanceARN": "${ec2:SourceInstanceARN}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutComplianceItems"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ssm:SourceInstanceARN": "${ssm:SourceInstanceARN}"
                }
            }
        }
    ]
}
```

------

# 为 Compliance 创建资源数据同步
<a name="compliance-datasync-create"></a>

您可以使用 AWS Systems Manager 中的资源数据同步功能，将来自所有托管式节点的合规性数据发送到目标 Amazon Simple Storage Service (Amazon S3) 存储桶。在创建同步时，可以指定来自多个 AWS 账户、AWS 区域 和[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境的托管式节点。收集新的合规性数据后，资源数据同步自动更新集中式数据。所有合规性数据存储在目标 Amazon S3 存储桶中后，可以使用 Amazon Athena 和 Amazon Quick 等服务查询和分析聚合数据。为 Compliance 配置资源数据同步是一次性操作。

通过使用 AWS 管理控制台，使用以下过程为 Compliance 创建资源数据同步。

**创建和配置一个 S3 存储桶用于资源数据同步（控制台）**

1. 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 创建用来存储聚合合规性数据的存储桶。有关更多信息，请参阅 [Amazon Simple Storage Service 用户指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html)中的*创建存储桶*。请记下存储桶名称和创建此存储桶的 AWS 区域。

1. 打开存储桶，选择 **Permissions (权限)** 选项卡，然后选择 **Bucket Policy (存储桶策略)**。

1. 将下面的存储桶策略复制并粘贴到策略编辑器中。将 amzn-s3-demo-bucket 和 *Account-ID* 分别替换为您创建的 S3 存储桶的名称和有效的 AWS 账户 ID。或者，使用 Amazon S3 前缀（子目录）的名称替换 *Bucket-Prefix*。如果您未创建前缀，则从该策略的 ARN 中删除 *Bucket-Prefix*/。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "SSMBucketPermissionsCheck",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": "s3:GetBucketAcl",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
           },
           {
               "Sid": " SSMBucketDelivery",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": "s3:PutObject",
               "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/Bucket-Prefix/*/accountid=111122223333/*"],
               "Condition": {
                   "StringEquals": {
                       "s3:x-amz-acl": "bucket-owner-full-control"
                   }
               }
           }
       ]
   }
   ```

------

**创建资源数据同步**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，请选择 **Fleet Manager**。

1. 选择 **Account management (账户管理)**、**Resource Data Syncs (资源数据同步)**，然后选择 **Create resource data sync (创建资源数据同步)**。

1. 在 **Sync name (同步名称)** 字段中，输入同步配置的名称。

1. 在 **Bucket name (存储桶名称)** 字段中，输入您在此过程开始时创建的 Amazon S3 存储桶的名称。

1. （可选）在**存储桶前缀**字段中，输入 S3 存储桶前缀（子目录）的名称。

1. 在**存储桶区域**字段中，如果您创建的 S3 存储桶位于当前的 AWS 区域 中，请选择**此区域**。如果存储桶位于其他 AWS 区域 中，则请选择**其他区域**，然后输入该区域的名称。
**注意**  
如果同步和目标 S3 存储桶位于不同区域，您可能需要支付数据传输价格。有关更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

1. 选择**创建**。

# 了解有关合规性的详细信息
<a name="compliance-about"></a>

Compliance 是 AWS Systems Manager 中的一项工具，可收集和报告与Patch Manager修补中修补状态和State Manager中关联有关的数据。（Patch Manager 和State Manager也都是 AWS Systems Manager 中的工具。） Compliance 还可报告有关您为托管式节点指定的自定义合规性类型的信息。本节包含有关每个合规性类型以及如何查看 Systems Manager 合规性数据的详细信息。本节还包含有关如何查看合规性历史记录和变更跟踪的信息。

**注意**  
Systems Manager 与 [https://www.chef.io/inspec/](https://www.chef.io/inspec/) 集成在一起。InSpec 是一个开源的运行时框架，您可以使用该框架在 GitHub 或 Amazon Simple Storage Service（Amazon S3）上创建人类可读的配置文件。然后，您可以使用 Systems Manager 运行合规性扫描并查看合规和不合规的实例。有关更多信息，请参阅 [将 Chef InSpec 配置文件与 Systems Manager Compliance 结合使用](integration-chef-inspec.md)。

## 关于补丁合规性
<a name="compliance-monitor-patch"></a>

使用 Patch Manager 在实例上安装补丁之后，控制台、AWS Command Line Interface (AWS CLI) 命令响应或相应 Systems Manager API 操作的响应中将立即出现合规性状态信息。

有关补丁合规性状态值的信息，请参阅 [补丁合规性状态值](patch-manager-compliance-states.md)。

## 关于 State Manager 关联合规性
<a name="compliance-about-association"></a>

创建一个或多个 State Manager 关联之后，控制台、AWS CLI 命令响应或相应 Systems Manager API 操作的响应中将立即出现合规性状态信息。对于关联，Compliance 显示 `Compliant` 或 `Non-compliant` 的状态和分配给关联的严重性级别，如 `Critical` 或 `Medium`。

State Manager 在托管节点上执行关联时会触发合规聚合过程，该过程会更新该节点上所有关联的合规状态。合规报告中的 `ExecutionTime` 值表示 Systems Manager 捕获合规状态的时间，而非在托管节点上执行关联的时间。这意味着多个关联即使在不同时间执行，也可能显示相同的 `ExecutionTime` 值。要确定关联的实际执行时间，请使用 AWS CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-association-execution-targets.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-association-execution-targets.html) 来参阅关联执行历史记录，或在控制台中查看执行详细信息。

## 关于自定义合规性
<a name="compliance-custom"></a>

您可以将合规性元数据分配给托管式节点。然后此元数据可以与用于合规性报告目的的其他合规性数据聚合。例如，假设您的企业在您的托管式节点上运行软件 X 的版本 2.0、3.0 和 4.0。公司希望在版本 4.0 上实现标准化，这意味着运行版本 2.0 和 3.0 的实例将不合规。您可以使用 [PutComplianceItems](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutComplianceItems.html) API 操作显式注释哪些托管式节点在运行软件 X 的较旧版本。您只能使用 AWS CLI、AWS Tools for Windows PowerShell 或软件开发工具包分配合规性元数据。以下 CLI 示例命令会将合规性元数据分配给一个托管实例并以要求的格式 `Custom:` 指定合规性类型。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

```
aws ssm put-compliance-items \
    --resource-id i-1234567890abcdef0 \
    --resource-type ManagedInstance \
    --compliance-type Custom:SoftwareXCheck \
    --execution-summary ExecutionTime=AnyStringToDenoteTimeOrDate \
    --items Id=Version2.0,Title=SoftwareXVersion,Severity=CRITICAL,Status=NON_COMPLIANT
```

------
#### [ Windows ]

```
aws ssm put-compliance-items ^
    --resource-id i-1234567890abcdef0 ^
    --resource-type ManagedInstance ^
    --compliance-type Custom:SoftwareXCheck ^
    --execution-summary ExecutionTime=AnyStringToDenoteTimeOrDate ^
    --items Id=Version2.0,Title=SoftwareXVersion,Severity=CRITICAL,Status=NON_COMPLIANT
```

------

**注意**  
`ResourceType` 参数仅支持 `ManagedInstance`。如果您将自定义合规性添加到托管式 AWS IoT Greengrass 核心设备，则必须指定 `ManagedInstance` 的 `ResourceType`。

然后合规经理可以查看摘要，或创建有关哪些托管式节点合规或不合规的报告。您可将最多 10 个不同的自定义合规性类型分配给一个托管式节点。

有关如何创建自定义合规性类型并查看合规性数据的示例，请参阅 [使用 AWS CLI 分配自定义合规性元数据](compliance-custom-metadata-cli.md)。

## 查看当前合规性数据
<a name="compliance-view-results"></a>

本节介绍如何在 Systems Manager 控制台中以及如何使用 AWS CLI 查看合规性数据。有关如何查看补丁和关联合规性历史记录和变更跟踪的信息，请参阅 [查看合规性配置历史记录和变更跟踪](#compliance-history)。

**Topics**
+ [

### 查看当前合规性数据（控制台）
](#compliance-view-results-console)
+ [

### 查看当前合规性数据 (AWS CLI)
](#compliance-view-data-cli)

### 查看当前合规性数据（控制台）
<a name="compliance-view-results-console"></a>

使用以下过程在 Systems Manager 控制台中查看合规性数据。

**在 Systems Manager 控制台中查看合规性报告**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **合规性**。

1. 在 **Compliance dashboard filtering**（合规性控制面板筛选）部分中，选择一个选项来筛选合规性数据。**Compliance resources summary**（合规性资源摘要）部分会根据您选择的筛选条件显示合规性数据的计数。

1. 要深入了解资源以获取更多信息，请向下滚动至 **Details overview for resources**（资源详细信息概览）区域，然后选择托管式节点的 ID。

1. 在 **Instance ID**（实例 ID）或 **Name**（名称）详细信息页面上，选择 **Configuration compliance**（配置合规性）选项卡以查看详细的托管式节点配置合规性报告。

**注意**  
有关修复合规性问题的信息，请参阅 [使用 EventBridge 修复合规性问题](compliance-fixing.md)。

### 查看当前合规性数据 (AWS CLI)
<a name="compliance-view-data-cli"></a>

可以通过使用以下 AWS CLI 命令，在 AWS CLI 中查看修补、关联和自定义合规性类型的合规性数据摘要。

[https://docs.aws.amazon.com/cli/latest/reference/ssm/list-compliance-summaries.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/list-compliance-summaries.html)  
根据您指定的筛选条件返回合规和不合规关联状态的摘要计数。（API：[ListComplianceSummaries](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_ListComplianceSummaries.html)）

[https://docs.aws.amazon.com/cli/latest/reference/ssm/list-resource-compliance-summaries.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/list-resource-compliance-summaries.html)  
返回资源级摘要计数。根据您指定的筛选条件，摘要包括有关合规和不合规状态的信息，以及详细的合规性项目严重性计数。（API：[ListResourceComplianceSummaries](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_ListResourceComplianceSummaries.html)）

可以使用以下 AWS CLI 命令查看修补的其他合规性数据。

[https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-patch-group-state.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-patch-group-state.html)  
返回补丁组的高级聚合补丁合规性状态。（API：[DescribePatchGroupState](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchGroupState.html)）

[https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-instance-patch-states-for-patch-group.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-instance-patch-states-for-patch-group.html)  
返回指定补丁组中实例的高级补丁状态。（API：[DescribeInstancePatchStatesForPatchGroup](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeInstancePatchStatesForPatchGroup.html)）

**注意**  
有关如何使用 AWS CLI 配置修补和查看补丁合规性详细信息的说明，请参阅 [教程：使用 AWS CLI 修补服务器环境](patch-manager-patch-servers-using-the-aws-cli.md)。

## 查看合规性配置历史记录和变更跟踪
<a name="compliance-history"></a>

Systems Manager Compliance 显示您的托管式节点的*最新*修补和关联合规性数据。您可以使用 [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/) 查看修补和关联合规性历史记录和变更追踪。AWS Config 提供关于 AWS 账户中 AWS 资源配置的详细视图。这些信息包括资源之间的关联方式以及资源以前的配置方式，让您了解资源的配置和关系如何随着的时间的推移而更改。要查看修补和关联合规性历史记录和变更跟踪，您必须在 AWS Config 中打开以下资源：
+ `SSM:PatchCompliance`
+ `SSM:AssociationCompliance`

有关如何在 AWS Config 中选择和配置这些特定资源的信息，请参阅 *AWS Config Developer Guide* 中的[选择哪些资源 AWS Config 记录](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html)。

**注意**  
有关 AWS Config 定价的信息，请参阅 [ 定价](https://aws.amazon.com/config/pricing/)。

# 删除用于 Compliance 的资源数据同步
<a name="systems-manager-compliance-delete-RDS"></a>

如果您不再需要使用 AWS Systems Manager Compliance 查看合规性数据，那么我们建议删除用于 Compliance 数据收集的资源数据同步。

**删除 Compliance 资源数据同步**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，请选择 **Fleet Manager**。

1. 选择 **Account management (账户管理)**、**Resource data syncs (资源数据同步)**。

1. 在列表中，选择一个同步。
**重要**  
确保您选择了用于 Compliance 的同步。Systems Manager 可为多项工具的资源数据同步提供支持。如果选择的同步错误，则可能会导致 Systems Manager Explorer 或 Systems Manager Inventory 的数据聚合中断。

1. 选择**删除**。

1. 删除存储数据的 Amazon Simple Storage Service (Amazon S3) 存储桶。有关删除 S3 存储桶的信息，请参阅[删除存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)。

# 使用 EventBridge 修复合规性问题
<a name="compliance-fixing"></a>

您可以使用 Run Command（AWS Systems Manager 中的一项工具）快速修复补丁和关联合规性问题。您可以将实例、AWS IoT Greengrass 核心设备 ID 或标签设为目标，并运行 `AWS-RunPatchBaseline` 文档或 `AWS-RefreshAssociation` 文档。如果刷新关联或重新运行补丁基准也未能解决合规性问题，则需要调查您的关联、补丁基准或实例配置，以了解 Run Command 操作未能解决问题的原因。

有关修补的更多信息，请参阅 [AWS Systems Manager Patch Manager](patch-manager.md) 和[用于修补的 SSM 命令文档：`AWS-RunPatchBaseline`](patch-manager-aws-runpatchbaseline.md)。

有关关联的更多信息，请参阅 [在 Systems Manager 中使用关联。](state-manager-associations.md)。

有关运行命令的更多信息，请参阅 [AWS Systems Manager Run Command](run-command.md)。

**将 Compliance 指定为 EventBridge 事件的目标**  
您也可以将 Amazon EventBridge 配置为执行操作以响应 Systems Manager Compliance 事件。例如，如果一个或多个托管式节点未能安装重要补丁更新或运行安装反病毒软件的关联，则您可以将 EventBridge 配置为在 Compliance 事件发生时运行 `AWS-RunPatchBaseline` 文档或 `AWS-RefreshAssocation` 文档。

使用以下过程将 Compliance 配置为 EventBridge 事件的目标。

**将 Compliance 配置为 EventBridge 事件的目标（控制台）**

1. 访问 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)，打开 Amazon EventBridge 控制台。

1. 在导航窗格中，选择**规则**。

1. 选择**创建规则**。

1. 为规则输入名称和描述。

   规则不能与同一 AWS 区域中和同一事件总线上的另一条规则的名称相同。

1. 对于**事件总线**，请选择要与此规则关联的事件总线。如果您希望此规则响应来自您自己的 AWS 账户的匹配事件，请选择 **defaul**（默认）。当您账户中的某个 AWS 服务发出一个事件时，它始终会发送到您账户的默认事件总线。

1. 对于**规则类型**，选择**具有事件模式的规则**。

1. 选择**下一步**。

1. 对于**事件源**，选择**AWS 事件或 EventBridge 合作伙伴事件**。

1. 在 **Event pattern**（事件模式）部分，选择 **Event pattern form**（事件模式表单）。

1. 对于**事件源**，选择**AWS 服务**。

1. 对于 ** service**（AWS 服务），选择 **Systems Manager**。

1. 在 **Event type (事件类型)** 字段中，选择 **Configuration Compliance (配置合规性)**。

1. 对于 **Specific detail type(s)**（具体详细信息类型），选择 **Configuration Compliance State Change**（配置合规性状态更改）。

1. 选择**下一步**。

1. 对于**目标类型**，选择**AWS 服务**。

1. 对于 **Select a target**（选择一个目标），选择 **Systems Manager Run Command**。

1. 在 **Document (文档)** 列表中，选择在调用目标时要运行的 Systems Manager 文档（SSM 文档）。例如，对于不合规补丁事件选择 `AWS-RunPatchBaseline`，对于不合规关联事件选择 `AWS-RefreshAssociation`。

1. 指定其余字段和参数的信息。
**注意**  
必填字段和参数的名称旁有一个星号 (\$1)。要创建目标，您必须为每个必填参数或字段指定一个值。如果不指定，系统虽然会创建规则，但该规则不会运行。

1. 选择**下一步**。

1. （可选）为规则输入一个或多个标签。有关更多信息，请参阅 *Amazon EventBridge 用户指南*中的[标记 Amazon EventBridge 资源](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-tagging.html)。

1. 选择 **Next（下一步）**。

1. 查看规则详细信息并选择**创建规则**。

# 使用 AWS CLI 分配自定义合规性元数据
<a name="compliance-custom-metadata-cli"></a>

以下步骤为您演示了使用 AWS Command Line Interface (AWS CLI) 调用 AWS Systems Manager [PutComplianceItems](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutComplianceItems.html) API 操作将自定义合规性元数据分配给某个资源的过程。您也可以使用此 API 操作将补丁或关联合规性元数据手动分配给某个托管式节点，如以下演练中所示。有关自定义合规性的更多信息，请参阅 [关于自定义合规性](compliance-about.md#compliance-custom)。

**将自定义合规性元数据分配给某个托管实例 (AWS CLI)**

1. 安装并配置 AWS Command Line Interface（AWS CLI）（如果尚未执行该操作）。

   有关信息，请参阅[安装或更新 AWS CLI 的最新版本](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 运行以下命令，将自定义合规性元数据分配给某个托管式节点。将每个*示例资源占位符*替换为您自己的信息。`ResourceType` 参数仅支持 `ManagedInstance` 的值。即使您将自定义合规性元数据分配给托管式 AWS IoT Greengrass 核心设备，也请指定此值。

------
#### [ Linux & macOS ]

   ```
   aws ssm put-compliance-items \
       --resource-id instance_ID \
       --resource-type ManagedInstance \
       --compliance-type Custom:user-defined_string \
       --execution-summary ExecutionTime=user-defined_time_and/or_date_value \
       --items Id=user-defined_ID,Title=user-defined_title,Severity=one_or_more_comma-separated_severities:CRITICAL, MAJOR, MINOR,INFORMATIONAL, or UNSPECIFIED,Status=COMPLIANT or NON_COMPLIANT
   ```

------
#### [ Windows ]

   ```
   aws ssm put-compliance-items ^
       --resource-id instance_ID ^
       --resource-type ManagedInstance ^
       --compliance-type Custom:user-defined_string ^
       --execution-summary ExecutionTime=user-defined_time_and/or_date_value ^
       --items Id=user-defined_ID,Title=user-defined_title,Severity=one_or_more_comma-separated_severities:CRITICAL, MAJOR, MINOR,INFORMATIONAL, or UNSPECIFIED,Status=COMPLIANT or NON_COMPLIANT
   ```

------

1. 重复上一步以将其他自定义合规性元数据分配给一个或多个节点。您也可以使用以下命令，将补丁或关联合规性元数据手动分配给托管式节点：

   关联合规性元数据

------
#### [ Linux & macOS ]

   ```
   aws ssm put-compliance-items \
       --resource-id instance_ID \
       --resource-type ManagedInstance \
       --compliance-type Association \
       --execution-summary ExecutionTime=user-defined_time_and/or_date_value \
       --items Id=user-defined_ID,Title=user-defined_title,Severity=one_or_more_comma-separated_severities:CRITICAL, MAJOR, MINOR,INFORMATIONAL, or UNSPECIFIED,Status=COMPLIANT or NON_COMPLIANT
   ```

------
#### [ Windows ]

   ```
   aws ssm put-compliance-items ^
       --resource-id instance_ID ^
       --resource-type ManagedInstance ^
       --compliance-type Association ^
       --execution-summary ExecutionTime=user-defined_time_and/or_date_value ^
       --items Id=user-defined_ID,Title=user-defined_title,Severity=one_or_more_comma-separated_severities:CRITICAL, MAJOR, MINOR,INFORMATIONAL, or UNSPECIFIED,Status=COMPLIANT or NON_COMPLIANT
   ```

------

   补丁合规性元数据

------
#### [ Linux & macOS ]

   ```
   aws ssm put-compliance-items \
       --resource-id instance_ID \
       --resource-type ManagedInstance \
       --compliance-type Patch \
       --execution-summary ExecutionTime=user-defined_time_and/or_date_value,ExecutionId=user-defined_ID,ExecutionType=Command  \
       --items Id=for_example, KB12345,Title=user-defined_title,Severity=one_or_more_comma-separated_severities:CRITICAL, MAJOR, MINOR,INFORMATIONAL, or UNSPECIFIED,Status=COMPLIANT or NON_COMPLIANT,Details="{PatchGroup=name_of_group,PatchSeverity=the_patch_severity, for example, CRITICAL}"
   ```

------
#### [ Windows ]

   ```
   aws ssm put-compliance-items ^
       --resource-id instance_ID ^
       --resource-type ManagedInstance ^
       --compliance-type Patch ^
       --execution-summary ExecutionTime=user-defined_time_and/or_date_value,ExecutionId=user-defined_ID,ExecutionType=Command  ^
       --items Id=for_example, KB12345,Title=user-defined_title,Severity=one_or_more_comma-separated_severities:CRITICAL, MAJOR, MINOR,INFORMATIONAL, or UNSPECIFIED,Status=COMPLIANT or NON_COMPLIANT,Details="{PatchGroup=name_of_group,PatchSeverity=the_patch_severity, for example, CRITICAL}"
   ```

------

1. 运行以下命令，查看特定托管式节点的合规性项目列表。使用筛选条件深入了解特定合规性数据。

------
#### [ Linux & macOS ]

   ```
   aws ssm list-compliance-items \
       --resource-ids instance_ID \
       --resource-types ManagedInstance \
       --filters one_or_more_filters
   ```

------
#### [ Windows ]

   ```
   aws ssm list-compliance-items ^
       --resource-ids instance_ID ^
       --resource-types ManagedInstance ^
       --filters one_or_more_filters
   ```

------

   以下示例向您演示如何将此命令与筛选条件结合使用。

------
#### [ Linux & macOS ]

   ```
   aws ssm list-compliance-items \
       --resource-ids i-02573cafcfEXAMPLE \
       --resource-type ManagedInstance \
       --filters Key=DocumentName,Values=AWS-RunPowerShellScript Key=Status,Values=NON_COMPLIANT,Type=NotEqual Key=Id,Values=cee20ae7-6388-488e-8be1-a88ccEXAMPLE Key=Severity,Values=UNSPECIFIED
   ```

------
#### [ Windows ]

   ```
   aws ssm list-compliance-items ^
       --resource-ids i-02573cafcfEXAMPLE ^
       --resource-type ManagedInstance ^
       --filters Key=DocumentName,Values=AWS-RunPowerShellScript Key=Status,Values=NON_COMPLIANT,Type=NotEqual Key=Id,Values=cee20ae7-6388-488e-8be1-a88ccEXAMPLE Key=Severity,Values=UNSPECIFIED
   ```

------

------
#### [ Linux & macOS ]

   ```
   aws ssm list-resource-compliance-summaries \
       --filters Key=OverallSeverity,Values=UNSPECIFIED
   ```

------
#### [ Windows ]

   ```
   aws ssm list-resource-compliance-summaries ^
       --filters Key=OverallSeverity,Values=UNSPECIFIED
   ```

------

------
#### [ Linux & macOS ]

   ```
   aws ssm list-resource-compliance-summaries \
       --filters Key=OverallSeverity,Values=UNSPECIFIED Key=ComplianceType,Values=Association Key=InstanceId,Values=i-02573cafcfEXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm list-resource-compliance-summaries ^
       --filters Key=OverallSeverity,Values=UNSPECIFIED Key=ComplianceType,Values=Association Key=InstanceId,Values=i-02573cafcfEXAMPLE
   ```

------

1. 运行以下命令查看合规性状态的摘要。使用筛选条件深入了解特定合规性数据。

   ```
   aws ssm list-resource-compliance-summaries --filters One or more filters.
   ```

   以下示例向您演示如何将此命令与筛选条件结合使用。

------
#### [ Linux & macOS ]

   ```
   aws ssm list-resource-compliance-summaries \
       --filters Key=ExecutionType,Values=Command
   ```

------
#### [ Windows ]

   ```
   aws ssm list-resource-compliance-summaries ^
       --filters Key=ExecutionType,Values=Command
   ```

------

------
#### [ Linux & macOS ]

   ```
   aws ssm list-resource-compliance-summaries \
       --filters Key=AWS:InstanceInformation.PlatformType,Values=Windows Key=OverallSeverity,Values=CRITICAL
   ```

------
#### [ Windows ]

   ```
   aws ssm list-resource-compliance-summaries ^
       --filters Key=AWS:InstanceInformation.PlatformType,Values=Windows Key=OverallSeverity,Values=CRITICAL
   ```

------

1. 运行以下命令查看某个合规性类型的合规资源和不合规资源的摘要计数。使用筛选条件深入了解特定合规性数据。

   ```
   aws ssm list-compliance-summaries --filters One or more filters.
   ```

   以下示例向您演示如何将此命令与筛选条件结合使用。

------
#### [ Linux & macOS ]

   ```
   aws ssm list-compliance-summaries \
       --filters Key=AWS:InstanceInformation.PlatformType,Values=Windows Key=PatchGroup,Values=TestGroup
   ```

------
#### [ Windows ]

   ```
   aws ssm list-compliance-summaries ^
       --filters Key=AWS:InstanceInformation.PlatformType,Values=Windows Key=PatchGroup,Values=TestGroup
   ```

------

------
#### [ Linux & macOS ]

   ```
   aws ssm list-compliance-summaries \
       --filters Key=AWS:InstanceInformation.PlatformType,Values=Windows Key=ExecutionId,Values=4adf0526-6aed-4694-97a5-14522EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm list-compliance-summaries ^
       --filters Key=AWS:InstanceInformation.PlatformType,Values=Windows Key=ExecutionId,Values=4adf0526-6aed-4694-97a5-14522EXAMPLE
   ```

------