You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量添加IP列表为Security Group源IP以放行tcp/22访问

AWS安全组批量放行指定IP段SSH访问配置方案

操作需求

现有50-60个IP地址的列表,需要仅允许这些IP的TCP/22(SSH)流量访问目标资源,拦截其余所有IP的访问请求,无需手动逐个添加规则,实现批量配置安全组。


方案一:通过AWS CLI批量配置

你可以通过Shell循环调用AWS CLI命令批量添加入站规则,通用脚本如下:

for ip in {csv_list_of_cidrs}
do
aws ec2 authorize-security-group-ingress --group-id <sg_id_here> --protocol tcp --port 22 --cidr $ip
done

参数说明

  • <sg_id_here>:替换为你要操作的目标安全组的实际ID
  • {csv_list_of_cidrs}:替换为你的IP/CIDR地址列表,多个地址用英文逗号分隔

配置示例

for ip in {1.1.1.1/8,2.2.2.2/16,3.2.3.12/29}
do
aws ec2 authorize-security-group-ingress --group-id sg-xxxxxxxxx --protocol tcp --port 22 --cidr $ip
done

方案二:通过Python Boto3批量配置

如果你更倾向用Python实现批量操作,可以参考如下示例代码:

import boto3

# 初始化EC2客户端
ec2 = boto3.client('ec2')
# 替换为目标安全组ID
SECURITY_GROUP_ID = 'sg-xxxxxxxxx'
# 替换为你的允许访问的IP/CIDR列表
ALLOWED_SSH_CIDRS = [
    '1.1.1.1/8',
    '2.2.2.2/16',
    '3.2.3.12/29'
]

for cidr in ALLOWED_SSH_CIDRS:
    ec2.authorize_security_group_ingress(
        GroupId=SECURITY_GROUP_ID,
        IpPermissions=[
            {
                'IpProtocol': 'tcp',
                'FromPort': 22,
                'ToPort': 22,
                'IpRanges': [{'CidrIp': cidr}]
            }
        ]
    )

注意:AWS安全组默认拒绝所有未显式允许的入站流量,添加完上述允许规则后,其余未在列表内的IP的22端口访问会被自动拦截。

内容的提问来源于stack exchange,提问作者rooni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:24:00