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

逻辑是:

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

先决条件:

  1. 了解AWS Lambda
  2. 了解IAM role、Policy等
  3. 了解VPC和Security Group

Task1:创建一个名字为:AwsConfigLambdaEc2SecuritygroupRole 的角色:

绑定名为awsconfig_lambda_ec2_security_group_role_policy 的Policy如下(直接copy这个JSON就好):

主要是允许Lambda函数创建和编写安全组Security Group event到LogStream。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "config:PutEvaluations",
                "ec2:DescribeSecurityGroups",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Condition": {
                "StringNotEquals": {
                    "ec2:InstanceType": [
                        "t2.micro"
                    ]
                }
            },
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Effect": "Deny"
        },
        {
            "Action": [
                "ec2:*Spot*"
            ],
            "Resource": "*",
            "Effect": "Deny"
        }
    ]
}

Task2:创建一个S3Access和默认Config的Policy的config role:AWS config role.

这里已经创建好了,所以创建步骤略过,部分截图。
AWS DevOps 通过Config自动审计Security Group配置——上篇_第1张图片

——————

AWS DevOps 通过Config自动审计Security Group配置——上篇_第2张图片

——————

AWS DevOps 通过Config自动审计Security Group配置——上篇_第3张图片

——————

附件完成后,我们会看到AwsConfigRole包括:
——————
AWS DevOps 通过Config自动审计Security Group配置——上篇_第4张图片

Task3:通过AWS Config监控安全组的规则

——————
AWS DevOps 通过Config自动审计Security Group配置——上篇_第5张图片
——————
AWS DevOps 通过Config自动审计Security Group配置——上篇_第6张图片
——————
AWS DevOps 通过Config自动审计Security Group配置——上篇_第7张图片
AWS Config rules 定义了很多默认的规则目前94个rule,可以满足大多数场景。我们自定义,将这一步skip掉。
AWS DevOps 通过Config自动审计Security Group配置——上篇_第8张图片
——————
AWS DevOps 通过Config自动审计Security Group配置——上篇_第9张图片
——————
AWS DevOps 通过Config自动审计Security Group配置——上篇_第10张图片
——————

Task4:修改EC2的安全组Security Group

不要修改default VPC的SG,找一个测试Lab VPC或自定义的一个,选择该SG。
AWS DevOps 通过Config自动审计Security Group配置——上篇_第11张图片
添加HTTP,HTTPS,SMTPS,IMAP等协议(不要删除默认的那条rule),inbound source 为anywhere:

AWS DevOps 通过Config自动审计Security Group配置——上篇_第12张图片

写不下了,再写下篇吧。