如何为 AWS Config 组织规则添加修复操作?

上次更新日期:2021 年 2 月 3 日

我想使用修复操作,但 AWS Config 组织规则不支持修复操作

简短描述

将自定义事件模式与 Amazon EventBridge 规则结合使用,以匹配组织的 AWS Config 规则。然后,选择 AWS Systems Manager Automation 运行手册作为目标。

解决方法

在以下示例中,运行手册 AWS-TerminateEC2Instance 在组织规则中的不合规资源上运行,相应资源类型为 AWS።EC2።Instance。Amazon Elastic Compute Cloud (Amazon EC2) 实例因为不合规而终止。

注意:

  • 您可以替换特定 AWS 服务和组织规则名称的资源类型。
  • 此设置仅适用于 AWS Organizations 管理账户 要对成员账户的资源执行修复操作,请使用 AWS CloudFormation StackSets,通过运行手册设置 EventBridge 规则。

1.    在开始之前,请确保您拥有 EC2 权限来运行 AWS Systems Manager Automation 运行手册和类似如下的 Systems Manager Automation Role 信任策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "ssm.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

2.    打开 EventBridge 控制台

3.    在导航窗格中,选择规则,然后选择创建规则

4.    在名称和描述中,输入规则的名称和描述。

5.    在定义模式中,选择事件模式

5.    在事件匹配模式中,选择自定义模式

6.    在事件模式中,复制并粘贴以下示例事件模式,然后选择保存

注意:将“TesttruleExample”替换为账户中的目标组织规则名称。

{
  "source": [
    "aws.config"
  ],
  "detail-type": [
    "Config Rules Compliance Change"
  ],
  "detail": {
    "messageType": [
      "ComplianceChangeNotification"
    ],
    "configRuleName": [
      {
        "prefix": "OrgConfigRule-TestRuleExample-"
      }
    ],
    "resourceType": [
      "AWS::EC2::Instance"
    ],
    "newEvaluationResult": {
      "complianceType": [
        "NON_COMPLIANT"
      ]
    }
  }
}

7.    选择目标下拉列表,然后选择 SSM Automation

8.    选择文档下拉列表,然后选择 AWS-TerminateEC2Instance

9.    展开配置文档版本,然后选择最新

10.    展开配置自动化参数,然后选择输入转换器

11.    在输入路径文本框中,复制并粘贴以下路径:

{"instanceid":"$.detail.resourceId"}

12.    在实例 ID文本框中,复制并粘贴以下内容:

{"InstanceId":[<instanceid>],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/SSMRoleExample"]}

注意:AutomationAssumeRole ARN 值替换为您的 SSM 角色 ARN。

13.    选择创建新角色使用现有角色,然后选择创建

注意:请确保 EventBridge 规则状态为已启用

有关组织 AWS Config 规则状态的更多信息以及获取列表,请参阅 describe-organization-config-rule-statusesdescribe-organization-config-rules