要限制 EC2 实例访问开发者 IP,可以使用以下方法:
import requests
def get_developer_ip():
response = requests.get('https://api.ipify.org?format=json')
data = response.json()
return data['ip']
developer_ip = get_developer_ip()
print(developer_ip)
import boto3
ec2_client = boto3.client('ec2')
def update_security_group(developer_ip):
# 获取安全组 ID
response = ec2_client.describe_security_groups(
Filters=[
{
'Name': 'group-name',
'Values': ['your-security-group-name']
}
]
)
security_group_id = response['SecurityGroups'][0]['GroupId']
# 更新安全组规则
ec2_client.authorize_security_group_ingress(
GroupId=security_group_id,
IpPermissions=[
{
'IpProtocol': 'tcp',
'FromPort': 0,
'ToPort': 65535,
'IpRanges': [
{
'CidrIp': f"{developer_ip}/32",
'Description': 'Allow access from developer IP'
},
],
},
],
)
developer_ip = get_developer_ip()
update_security_group(developer_ip)
上述代码使用 Boto3 的 describe_security_groups
方法获取安全组的 ID,然后使用 authorize_security_group_ingress
方法添加入站规则,允许来自开发者 IP 地址的访问。
请确保将 'your-security-group-name'
替换为您实际的安全组名称。此外,需要确保您的 EC2 实例使用了该安全组。
上一篇:不使用安全调用运算符