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

再讲一下背景, 这个实验的一个场景是,运维同事设计安全组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

猜你喜欢

转载自blog.51cto.com/13746986/2519312
AWS