我想执行修正操作,但是 AWS Config 组织规则不支持修正操作。
简短描述
要符合您的组织的 AWS Config 规则,请结合 Amazon EventBridge 规则运用自定义事件模式。然后,选择 AWS Systems Manager Automation 运行手册作为目标。
解决方法
在此示例过程中,运行手册 AWS-TerminateEC2Instance 在不合规的资源上运行,资源根据组织规则创建,资源类型为 AWS::EC2::Instance。Amazon Elastic Compute Cloud (Amazon EC2) 实例因不合规而被终止。
注意:
- 使用特别针对您的 AWS 服务和组织规则名称的资源类型。
- 使用 AWS CloudFormation StackSets 对您的成员账户的资源执行修正操作,并使用运行手册设置 EventBridge 规则。
- 确保您拥有运行 AWS Systems Manager Automation 运行手册的 Amazon EC2 权限。
完成以下步骤:
-
确保您的 Systems Manager Automation 角色信任策略与以下策略类似:
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"ssm.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
-
打开 EventBridge 控制台。
-
在导航窗格中,选择规则,然后选择创建规则。
-
在名称和描述中,输入规则的名称和描述。
-
在定义模式中,选择事件模式。
-
在事件匹配模式中,选择自定义模式。
-
在事件模式中,输入以下示例事件模式。将 TestRuleExample 替换为您账户中的目标组织规则名称:
{ "source": [
"aws.config"
],
"detail-type": [
"Config Rules Compliance Change"
],
"detail": {
"messageType": [
"ComplianceChangeNotification"
],
"configRuleName": [
{
"prefix": "OrgConfigRule-TestRuleExample-"
}
],
"resourceType": [
"AWS::EC2::Instance"
],
"newEvaluationResult": {
"complianceType": [
"NON_COMPLIANT"
]
}
}
}
-
选择保存。
-
对于目标,选择 SSM 自动化。
-
对于文档,选择 AWS-TerminateEC2Instance。
-
展开 配置文档版本,然后选择最新。
-
展开 配置自动化参数,然后选择输入转换器。
-
在输入路径中,输入以下内容:
{"instanceid":"$.detail.resourceId"}
- 在 “实例 ID” 文本框中,输入以下内容。将示例 ARN 替换为您的 Systems Manager 角色的 ARN:
{"InstanceId":[instanceid],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/SSMRoleExample"]}
- 选择创建新角色或使用现有角色,然后选择创建。
注意:确保 EventBridge 规则的状态为已启用。
有关 AWS Config 组织规则状态以及获取 AWS 配置规则列表的更多信息,请参阅 describe-organization-config-rule-statuses 和 describe-organization-config-rules。
相关信息
使用 AWS Config 服务在我的 AWS 账户中创建资源时,如何才能接收自定义电子邮件通知?
使用 AWS Config 规则自动修正不合规的资源
教程: 使用输入转换器自定义 EventBridge 向事件目标传递的内容。