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并每天更改指定实例的安全组
Python-Boto脚本,用于将SSH-22的每日SG公共IP更改为您的公共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")