再讲一下背景, 这个实验的一个场景是,运维同事设计安全组Security Group的时候,打开了除了HTTP和HTTPS的入口访问权限。其他协议或端口如果打开,除了审计不通过的同时,会自动触发一个函数将它修改成我们定义好的权限。(如果你了解一些Lambda就会非常清楚这个逻辑了)
逻辑是:
修改,添加或已有的Security —— 触发Config的审计—— 触发Lambda来修改正确的规则(这个实验是自定义rule,AWS Config提供了90几个rule可以满足大部分场景的需求)
AWS DevOps 通过Config自动审计Security Group配置——下篇
Task5: 创建和运行AWS Config Rule



创建Lambda函数:
别忘了选择我们第一步为Lambda创建的rule




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

函数分析:

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

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

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

完成后变绿:

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

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

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

AWS DevOps 通过Config自动审计Security Group配置——下篇
原文:https://blog.51cto.com/13746986/2519312