AWS Config 记录安全组不合规并使用补救措施进行补救
一、创建 AWS Config
1.1 选择资源类型和角色

1.2 选择存放位置

1.3 跳过配置规则

1.4 审核并创建

二、配置规则
2.1 查看安全组资源

2.2 配置 restricted-ssh 规则
restricted-ssh 规则该规则检测所有 ssh 的源地址为 0.0.0.0/0 的安全组规则为不合规

当资源发生更改时触发

2.3 Review

2.4 查看安全组合规状态

2.5 更改相应安全组规则,查看变化
将 sg-0863d82aa8bcf75a1 - compliance-sg Compliant 的安全组 ssh 入站规则的 My IP更改为段(不会检测为不合规),以让他不合规。
将 sg-089a3beb47c3a39b9 - launch-wizard-1 的 ssh 入站规则更改为 My IP,以让他合规。

sg-089a3beb47c3a39b9 - launch-wizard-1 已合规

sg-0863d82aa8bcf75a1 - compliance-sg 不合规了

三、创建自动化文档所需角色
3.1 创建一个 IAM 角色并授予允许 SSM 代表您调用 AWS 服务的权限。

3.2 添加 AmazonSSMAutomationRole 权限
AmazonSSMAutomationRole 权限
3.3 角色命名为 SSMAutomationRoleForConfig
SSMAutomationRoleForConfig
3.4 在此之后附加一个内联策略,以授予角色访问权限以删除安全组
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ec2:RevokeSecurityGroupIngress",
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
}
]
} 
3.5 命名规则为 DeleteSecurityGroupInboundRules
DeleteSecurityGroupInboundRules
3.6 最后角色以及权限如下

四、为相应资源添加补救措施
4.1 切换到 Rules,选择 Manage remediation

4.2 选择补救方法为自动化,重试次数为一分钟 5 次

4.3 选择补救动作为 AWS-DisablePublicAccessForSecurityGroup
AWS-DisablePublicAccessForSecurityGrouphttps://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/automation-aws-disablepublicaccessforsecuritygroup.html
禁用对所有 IP 地址开放的默认 SSH 和 RDP 端口。


4.4 配置 Resource ID parameter 和 Parameters
在资源 ID 参数中,选择SecurityGroupIds(或者您可以通过选择依赖于资源类型的参数将不合规资源的资源 ID 传递给补救操作。)。但在这里我们想为所有安全组做这件事。


五、验证是否工作
5.1 手动对 sg-045ba0639ac1d0945 执行补救措施
sg-045ba0639ac1d0945 执行补救措施
5.2 可以看到执行成功了

5.3 Tileline 检查 Events 可以看到 ssh 规则被移除

5.4 有一点不好的是,因为规则配置的是当资源发生更改时触发,所以之前已经检测为不合规的资源无法自动处理,就需要手动去执行补救措施。
当我们把 sg-089a3beb47c3a39b9 - launch-wizard-1 的 ssh 入站规则改为 0.0.0.0/0,看看会有什么变化。


5.5 解决办法就是需要规则下执行重新评估



5.6 System Manager Automation 查看执行情况


六、清理
删除 Rules
删除存储桶

七、深入学习的点
需要知道常用场景的 AWS Config 托管规则含义并如何使用
https://docs.aws.amazon.com/zh_cn/config/latest/developerguide/managed-rules-by-aws-config.html
需要知道常用场景 System Manager Documents 中 AWS 自动化文档
可以自定义 AWS Config 托管规则
可以自定义 Automation
参考文档
https://dev.to/aws-builders/automating-the-deletion-of-specifc-inbound-rules-from-any-security-groups-in-aws-via-config-21lb
Last updated