如何设置仅允许AWS Auto Scaling Group中特定EC2实例访问RDS?
如何让Auto Scaling Group中的特定EC2实例访问RDS?
方法一:通过专属安全组控制(推荐,适配ASG场景)
Auto Scaling Group会自动创建/替换实例,用安全组管理访问权限更灵活,步骤如下:
- 创建专属EC2安全组
进入EC2控制台 -> 安全组 -> 创建安全组:
- 名称:比如
sg-ec2-allowed-rds - 所属VPC:与你的RDS实例处于同一VPC
- 出站规则保持默认即可(允许所有流量)
- 创建专属EC2安全组
- 给需要访问RDS的EC2实例添加该安全组
选中目标EC2实例 -> 操作 -> 安全组 -> 更改安全组 -> 勾选刚才创建的sg-ec2-allowed-rds-> 保存
注:如果希望ASG新创建的实例自动获得该权限,可修改ASG的启动模板/配置,将此安全组加入其中,新实例会自动继承
- 给需要访问RDS的EC2实例添加该安全组
- 配置RDS安全组的入站规则
进入RDS控制台 -> 选中目标数据库实例 -> 连接与安全性 -> 找到关联的安全组 -> 编辑入站规则:
- 添加一条规则:
- 类型:选择数据库对应的端口(比如MySQL选
MySQL/Aurora,端口3306;PostgreSQL选PostgreSQL,端口5432) - 来源:选择自定义,输入刚才创建的EC2专属安全组ID(格式如
sg-xxxxxx) - 描述:比如
Allow specific EC2 instances via sg-ec2-allowed-rds
- 类型:选择数据库对应的端口(比如MySQL选
- 保存规则
- 配置RDS安全组的入站规则
方法二:通过EC2实例私有IP控制(适合固定实例,不推荐ASG场景)
若你的EC2实例不会被ASG替换(私有IP固定),可直接用IP限制:
- 获取目标EC2实例的私有IP
EC2控制台 -> 实例 -> 找到目标实例 -> 查看私有IPv4地址
- 获取目标EC2实例的私有IP
- 编辑RDS安全组入站规则
步骤同方法一的第3步,仅需将来源改为EC2实例的私有IP(格式如10.0.1.10/32)
- 编辑RDS安全组入站规则
额外注意事项
- 确保EC2与RDS处于同一VPC,或通过VPC对等连接、中转网关连通(新手场景多为同一VPC)
- 若RDS开启了公有可访问,建议关闭,仅允许私有网络访问以提升安全性
- 数据库内部权限也需匹配:比如MySQL需创建允许来自EC2实例网段的用户(示例:
CREATE USER 'user'@'10.0.%.%' IDENTIFIED BY 'password';)
内容的提问来源于stack exchange,提问作者John lingda
相关产品推荐
相关产品推荐

