amazon-web-services - 查询 ec2 实例中使用的 SSH 入站源 0.0.0.0/0
问题描述
我想查询并列出所有具有允许源 = 0.0.0.0/0(入站)到端口 22/ssh 上的 ec2 实例的规则的 ec2 实例。
目标是获取所有服务器的列表,这些服务器具有允许任何人在端口 22/ssh 上访问服务器的规则。在这种情况下,我需要查看并查看所有服务器以应用正确的强化。
那可能吗?我怎样才能控制它,可见性 = 治理?
谢谢!
解决方案
您可以编写一个脚本:
- 检索安全组列表
- 遍历安全组并检查入站规则
- 检查 SSH
0.0.0.0/0
除非您特别擅长 shell 脚本,否则用 Python 之类的语言编写可能比使用 AWS CLI 更容易。
它会是这样的:
import boto3
PORT = 22
ANYWHERE = '0.0.0.0/0'
ec2 = boto3.client('ec2', region_name='ap-southeast-2')
groups = ec2.describe_security_groups()
for group in groups['SecurityGroups']:
for permission in group['IpPermissions']:
if 'FromPort' in permission and PORT >= permission['FromPort'] and PORT <= permission['ToPort']:
for range in permission['IpRanges']:
if range['CidrIp'] == ANYWHERE:
print group['GroupName']
您还可以创建一个可以持续检查配置违规的AWS Config 规则。
推荐阅读
- java - 查找上个月的第一个和最后一个日期
- python - 保存更新期间密码未加密
- php - 使用布尔函数来确定 Laravel 查询生成器中的结果
- css-multicolumn-layout - chrome css3 多列光标错误
- c# - 除非使用断点单步执行,否则 ReadTextAsync 返回 null
- javascript - react-testing-library getAll 然后过滤找到一个元素
- firefox - Firefox:打破 DOM 属性更改
- java - 在 Eclipse 上创建 Alfresco maven 原型时出错
- angular - CORS - 撤销令牌时没有“访问控制允许来源”
- reactjs - 沿圆圈均匀对齐进度条