Security 如何确保从局域网访问AWS经典EC2机器
Security 如何确保从局域网访问AWS经典EC2机器,security,amazon-web-services,Security,Amazon Web Services,如何确保从我的局域网访问AWS classic EC2机器的安全性?由于我们连接到本地ISP提供商,因此,该局域网的IP可能每天都在变化。EC2 classic的访问限制分为两个级别:一个是基于操作系统的用户名和密码(如果是基于linux的实例,则为SSH密钥),然后是安全组 鉴于您已告知IP每天都会发生变化;这些是你可以尝试的选择 手动过程: 从您的ISP获取IP范围,并将其放入您允许的IP范围(例如SG) 基于脚本的流程: 您可以编写一个简单的cron脚本,它可以获取您的公共IP并每天
如何确保从我的局域网访问AWS classic EC2机器的安全性?由于我们连接到本地ISP提供商,因此,该局域网的IP可能每天都在变化。EC2 classic的访问限制分为两个级别:一个是基于操作系统的用户名和密码(如果是基于linux的实例,则为SSH密钥),然后是安全组 鉴于您已告知IP每天都会发生变化;这些是你可以尝试的选择 手动过程:
- 从您的ISP获取IP范围,并将其放入您允许的IP范围(例如SG)
- 您可以编写一个简单的cron脚本,它可以获取您的公共IP并每天更改指定实例的安全组
导入boto
导入urllib2
def get_public_ip():
ext_ip=urllib2.urlopen(“http://curlmyip.com)改为
返回外部ip.strip()
sg_name=''输入您的安全组名称
ec2=boto.connect_ec2()
sg=ec2.获取所有安全组(groupname=sg\u name)
sg=sg[0]
#删除现有的22条SSH规则-旧CIDR IP
对于sg.rules中的规则:
如果str(rule.from_port)=“22”:
ec2.撤销安全组(组名称=sg名称,
ip_协议=“tcp”,
从_port='22',
至_port='22',
cidr_ip=rule.grants[0])
#授权今天的公共知识产权
ec2.授权安全组(组名称=sg名称,
ip_协议=“tcp”,
从_port='22',
至_port='22',
cidr_ip=get_public_ip()+“/32”)
使用第三方工具:
您可以使用第三方提供的,如;它们提供的服务类似于您可以获得在特定时间内可访问的会话/实例等。请检查它们是否为您的场景提供了解决方案
他们的产品:
继续为实例回收您的凭据;这是为了增加安全性。能否详细说明如何回收您的凭据?我们使用pem文件通过sshRecycling进行连接,这是一个通用术语,用于按照计划(例如,每30天或60天手动或自动)重置凭据
import boto
import urllib2
def get_public_ip():
ext_ip = urllib2.urlopen("http://curlmyip.com").read()
return ext_ip.strip()
sg_name = '<your security group name>' #enter your Security Group's NAME
ec2 = boto.connect_ec2()
sg = ec2.get_all_security_groups(groupnames=sg_name)
sg = sg[0]
#remove existing 22 SSH rules - old CIDR IP
for rule in sg.rules:
if str(rule.from_port) == '22':
ec2.revoke_security_group(group_name=sg_name,
ip_protocol='tcp',
from_port='22',
to_port='22',
cidr_ip=rule.grants[0])
#Authorize today's Public IP
ec2.authorize_security_group(group_name=sg_name,
ip_protocol='tcp',
from_port='22',
to_port='22',
cidr_ip=get_public_ip()+"/32")