mysql如何在云环境中配置权限_mysql云数据库安全建议

2次阅读

云环境 MySQL 权限配置需遵循最小权限原则,限制监听地址为内网、禁用 root 远程登录、按角色创建专用账号、强制 TLS 加密、定期审计权限与登录行为。

mysql 如何在云环境中配置权限_mysql 云数据库安全建议

在云环境中配置 MySQL 权限,核心是遵循最小权限原则、分离管理与业务账号、禁用默认高危配置,并结合云平台提供的安全能力做纵深防护。

严格限制远程访问与监听地址

云数据库默认可能绑定 0.0.0.0 或开放公网 IP,极易被暴力扫描。应确保 MySQL 仅监听内网地址(如 VPC 内网段),禁止绑定公网或 0.0.0.0。若必须远程管理,通过云平台的「白名单」或「安全组」控制源 IP,而非依赖 MySQL 自身的 host 限制。

  • 修改 my.cnf 中的 bind-address 为具体内网 IP(如 10.0.1.5)或 127.0.0.1
  • 云厂商(如 阿里云 RDS、 腾讯 云 CDB)不开放 my.cnf 修改权限,需在控制台设置「专有网络 VPC」和「安全组规则」,只放行应用服务器所在 子网
  • 禁用 skip-networking(除非纯本地使用),但绝不开启无保护的公网访问

按角色创建专用账号,禁用 root 远程登录

云环境不应使用 root 账号连接业务应用。应为每个应用、每个功能模块创建独立账号,并精确授予所需库表权限。

  • 创建应用账号示例:
    CREATE USER ‘app_order’@’10.0.1.%’ IDENTIFIED BY ‘StrongPass2024!’;
    GRANT SELECT, INSERT, UPDATE ON shop_db.orders TO ‘app_order’@’10.0.1.%’;
    FLUSH PRIVILEGES;
  • 删除或重命名 root 账号远程访问权限:
    DROP USER ‘root’@’%’; — 或 REVOKE ALL PRIVILEGES ON *.* FROM ‘root’@’%’;
  • 管理账号(如 DBA)应限定来源 IP,且仅用于跳板机或堡垒机连接

启用 TLS 加密连接,避免明文传输凭证

云内网虽相对可信,但东西向流量仍可能被截获。所有客户端连接(尤其跨可用区或混合云场景)应强制使用 TLS。

  • 云数据库(如 AWS RDS、阿里云 RDS)通常提供一键启用 SSL 的选项,启用后下载服务器 CA 证书
  • 应用连接串中添加参数:
    ?ssl-mode=REQUIRED&ssl-ca=/path/to/rds-combined-ca-bundle.pem
  • 验证是否生效:登录后执行 SHOW STATUS LIKE ‘Ssl_cipher’;,返回非空值即表示加密已启用

定期审计权限与登录行为

云平台日志服务(如阿里云 ActionTrail、AWS CloudTrail + RDS 日志)可记录账号创建、权限变更、异常登录等事件,配合 MySQL 自身的 general_log 或 slow_query_log(谨慎开启)辅助分析。

  • 每月检查高权限账号:
    SELECT user,host,account_locked,plugin FROM mysql.user WHERE Super_priv=’Y’ OR Grant_priv=’Y’;
  • 清理 90 天未登录的账号:
    SELECT user,host,last_password_change FROM mysql.user WHERE last_password_change
  • 云数据库控制台开启「SQL 审计日志」,保留至少 30 天,对接 SIEM 系统做规则告警(如 root 登录、大批量 DELETE、跨库 GRANT)
text=ZqhQzanResources