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

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

逻辑是:

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


AY x RWS DevOps 通过Config自动审计Security Group配置——下篇


Task5: 创建/ t B f ) l [ m和运行AWS ConfiP $ O Z A rg Rule

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配置——下篇

整体的意思是,在创建或修改) G vSecurity Group的时候会触发API的操作,AWS Config 会通过Lambda函数中的参h $ [ / O 0 j数审计Security Group的规则是否合O + Z规,红y E 4 9 $ x ] g k框的是我定义了允许的参数只有80和443,也就是前面我添加的SMTPS和IMAPS这两个协议的端口是不被允许的,这个函数会把他们remove掉,保留允许的HTTP和HTTPS

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

格式为:arn:aws:O L D s x U glambda:XXXX:function:awscont i h @ 9 + K M 1fig_lambda_security_group
回到AWS Config这儿,copy Lambda的ARN
在Trigger中添加一些参数如下:

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

保存规则,会评估这w P p 1 [个规( $ l ` 8 Z p 5 5则一会儿:

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

完成后变绿:

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

T# - t ) Hask6:H 6 W N G ; A w验证规则是否生效

回到我们之前添加的Security Group中,W / 2 u . m &还记4 + a t X r Z得我们添加了HTTP、HTTPS、SMTPS、IMAP。如果成功,应该只保留了HTTP和HTTPS的出站规则。
如下图:成A ? i j

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

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

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

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

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

视频4 S l F Q z课:https://edu.51cto.com/sd/7cc77