数据库端口怎么隔离
数据库端口隔离的做法是把入方向规则的来源指定为应用层安全组,而不是写地址段:只有挂着该安全组的实例才能访问数据库,实例增减与地址变化都自动适配。相比维护地址白名单,以组为源的做法既省维护,也避免了漏加新机器这类高频故障。
基本信息
| 核心做法 | 入方向来源类型选择安全组,指向应用层安全组 |
|---|---|
| 生效效果 | 只有挂载该安全组的实例可以访问,扩容自动适配 |
| 与地址白名单对比 | 地址清单维护成本高,新机器容易漏加造成故障 |
| 端口范围 | 按数据库实际监听端口放行,不要放行整段端口 |
| 纵深防御 | 数据库账号权限、安全组、子网路由三层配合 |
| 子网要求 | 数据库子网不应配置直接通向公网的路由 |
典型使用场景
- 应用连接数据库:只允许应用层安全组访问数据库端口
- 运维临时接入:通过堡垒机所在安全组单独放行,事后可随时收回
- 多环境隔离:测试环境的应用安全组不能访问生产数据库
- 容器化部署:节点或容器网络的安全组作为来源,弹性伸缩自动适配
- 中间件隔离:缓存与消息队列同样采用组引用方式控制访问来源
- 合规审计:以组为源的规则本身就能画清访问关系图
隔离层次对照
| 层次 | 控制手段 | 解决的问题 |
|---|---|---|
| 网络层 | 子网路由不指向公网 | 数据库整体不暴露在公网 |
| 访问层 | 安全组以组为源 | 只有指定角色能连上端口 |
| 账号层 | 数据库账号与权限 | 即使连上也读不到不该看的数据 |
| 审计层 | 操作日志与慢查询日志 | 事后追溯谁做了什么操作 |
以安全组为源的规则
以安全组为源的规则
方向:入 协议:TCP 端口:数据库端口
来源:应用层安全组(组标识)
策略:允许
注:不写任何地址段,随应用扩容自动生效
# 数据库子网不应配置默认公网路由数据库端口对全网开放并只靠密码防护是最高危配置之一:爆破与弱口令问题会直接变成数据泄露事件,务必先收窄来源。
用地址白名单维护应用机器时最容易漏加新机器:扩容后新实例连不上数据库,故障窗口往往在业务高峰才暴露。
安全组之外还要看子网路由:数据库子网如果有默认公网路由,即使端口没放行,风险敞口也比隔离子网大一档。
数据库账号权限也要一并收敛:应用账号按库授权,不给全局权限,避免一个应用的问题波及整个实例。