最近在做安全检查需要整理AWS的securityGroup和ec2的关系到excel管理也算是配置管理的存档了,我的痛点是
1 AWS不提供excel下载
2 100多台机器进出站上千条inbound和outbound,还要关联到EC2
3 安全原因规则不能用http://www.esjson.com/jsontoexcel.html这种json转excel网站,比较数据上传到工具网站是不安全的
好了现在开始一台电脑搞定上面的事情
第一步 利用AWS CLI 下载SecurityGroup
--outbound
aws ec2 describe-security-groups --region cn-north-1 |jq '.SecurityGroups[] | {name:.GroupName,protocl:.IpPermissionsEgress[].IpProtocol,portfrom:.IpPermissionsEgress[].FromPort,portto:.IpPermissionsEgress[].ToPort,ip:.IpPermissionsEgress[].IpRanges[].CidrIp }' > outbound.txt
--inbound
aws ec2 describe-security-groups --region cn-north-1 |jq '.SecurityGroups[] | {name:.GroupName,protocl:.IpPermissionsEgress[].IpProtocol,portfrom:.IpPermissionsEgress[].FromPort,portto:.IpPermissionsEgress[].ToPort,ip:.IpPermissionsEgress[].IpRanges[].CidrIp }' > inbound.txt
AWS 提供了导出securitygroup到json的方法为了方便后面的整理用jquery做了些整理,整理后数据大概的样子是这个样子的
{
"name": "SG-OOOOO",
"protocl": "tcp",
"portfrom": XXX3,
"portto": XXX3,
"ip": "10.XXX.10.30/32"
}
{
"name": "SG-XXXX",
"protocl": "tcp",
"portfrom": XX3,
"portto": XXX3,
"ip": "10.XXX.110.30/32"
}
..............
然后再NotPad++里做个整理后拷贝到excel里
notePad++整理并拷贝至excel
全选-->编辑-->行操作-->合并行
} 替换为 } \n
{ "name": 和"protocl": 和"portfrom":和 "portto":和"ip":和"和} 都替换为空
, 替换为 \t
拷贝至excel,增加inboud和outbound列
下一步就是整理EC2和SecurityGroup的关系了
#3 aws cli 下载 EC2中SC关系
aws ec2 describe-instances | jq '.Reservations[] | .Instances[] | {name:.Tags[].Value ,SG:.SecurityGroups[].GroupName}'>map.json
下载后为json格式,将json整理至excel,方法同上
第二步 excel安装powerquery
https://www.microsoft.com/zh-CN/download/details.aspx?id=39379
第三步 excel合并
1 powerquery-->从文件-->excel 分别载入两个sheet
2 合并-->选择匹配的列-->完全外部
3 点击table上按钮选择素有列即可
参考http://www.360doc.com/content/18/0707/06/28740943_768444049.shtml