AWS DevOps 通过Config自动审计Security Group配置——下篇

依然范特西╮ 提交于 2020-08-13 13:06:52

再讲一下背景, 这个实验的一个场景是,运维同事设计安全组Security Group的时候,打开了除了HTTP和HTTPS的入口访问权限。其他协议或端口如果打开,除了审计不通过的同时,会自动触发一个函数将它修改成我们定义好的权限。(如果你了解一些Lambda就会非常清楚这个逻辑了)

逻辑是:

修改,添加或已有的Security —— 触发Config的审计—— 触发Lambda来修改正确的规则(这个实验是自定义rule,AWS Config提供了90几个rule可以满足大部分场景的需求)


AWS DevOps 通过Config自动审计Security Group配置——下篇


Task5: 创建和运行AWS Config Rule

AWS DevOps 通过Config自动审计Security Group配置——下篇

AWS DevOps 通过Config自动审计Security Group配置——下篇

AWS DevOps 通过Config自动审计Security Group配置——下篇

创建Lambda函数:

别忘了选择我们第一步为Lambda创建的rule
AWS DevOps 通过Config自动审计Security Group配置——下篇

AWS DevOps 通过Config自动审计Security Group配置——下篇

AWS DevOps 通过Config自动审计Security Group配置——下篇

AWS DevOps 通过Config自动审计Security Group配置——下篇

Handler改为:awsconfig_lambda_security_group.lambda_handler
Timeout改为:1min

AWS DevOps 通过Config自动审计Security Group配置——下篇

函数分析:

AWS DevOps 通过Config自动审计Security Group配置——下篇

整体的意思是,在创建或修改Security Group的时候会触发API的操作,AWS Config 会通过Lambda函数中的参数审计Security Group的规则是否合规,红框的是我定义了允许的参数只有80和443,也就是前面我添加的SMTPS和IMAPS这两个协议的端口是不被允许的,这个函数会把他们remove掉,保留允许的HTTP和HTTPS。

好,继续。copy这个Lambda的ARN 并保存好:

AWS DevOps 通过Config自动审计Security Group配置——下篇

格式为:arn:aws:lambda:XXXX:function:awsconfig_lambda_security_group
回到AWS Config这儿,copy Lambda的ARN。
在Trigger中添加一些参数如下:

AWS DevOps 通过Config自动审计Security Group配置——下篇

保存规则,会评估这个规则一会儿:

AWS DevOps 通过Config自动审计Security Group配置——下篇

完成后变绿:

AWS DevOps 通过Config自动审计Security Group配置——下篇

Task6:验证规则是否生效

回到我们之前添加的Security Group中,还记得我们添加了HTTP、HTTPS、SMTPS、IMAP。如果成功,应该只保留了HTTP和HTTPS的出站规则。
如下图:成功

AWS DevOps 通过Config自动审计Security Group配置——下篇

Task7:通过CloudWatch logs找到它是如何操作的

AWS DevOps 通过Config自动审计Security Group配置——下篇

可以发现993和465端口在被移除了。

AWS DevOps 通过Config自动审计Security Group配置——下篇

视频课:https://edu.51cto.com/sd/7cc77

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!