安全管理

白名单管理

云数据库 RDS 可以通过白名单设定允许访问该实例的 IP 来源,支持的格式为 IP、CIDR(网段)和%(不限制任何ip)。

说明:

  • 云数据库 RDS实例创建后,默认允许所有 IP 通过便于用户连接,为了保证数据安全,请用户重新设置白名单后再连接数据库。
  • 目前白名单上限阈值为 100 个。

1.在实例的“安全”页面,选择“白名单”页签可以看到白名单列表。

2.点击“添加 IP”,在弹出的对话框中输入要增加的白名单,确认后添加成功。

image.png

3.勾选要删除的白名单,点击“删除”即可完成白名单删除。

DB 防火墙

SQL 注入是指通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令的目的。SQL注入是一种严重影响数据库数据安全的恶意攻击。DB 防火墙功能不仅可以在线识别和记录 SQL 注入行为,向用户发送短信及邮件报警,还可以帮助用户控制是否阻断这些访问行为,提升 云数据库 RDS 的数据安全性。

百度智能云支持用户在代理实例上开启 DB 防火墙功能,并提供 SQL 注入审计。

DB 防火墙功能启用流程

DB 防火墙功能启用流程如下:

  1. 创建代理实例
  2. 开通代理实例公网 IP,并测试代理实例连通性
  3. 创建代理实例帐号并设置密码
  4. 开启 DB 防火墙并选择安全模式
  5. 将业务程序中原有的数据库主实例域名或 IP、帐号与密码替换为代理实例的域名或 IP、帐号与密码

其中步骤1到步骤3的操作详情参考使用代理实例

操作步骤

  1. 在实例的“安全”页面选择“ DB 防火墙”页签,进行 DB 防火墙设置,如果为主实例则需要进入对应的代理实例进行设置,在代理实例的“安全”页签点击“编辑”按钮管理 DB 防火墙功能。

    image.png

>**说明**:
>
> 1. DB 防火墙开启后,会增加防御 SQL 注入等能力,SQL响应时间影响较小,每条 SQL 增加0.1毫秒延时。
> 2. 开启之后用户可以选择具体安全模式:
>     - 告警:识别注入并写入审计,不阻断 SQL 执行;
>     - 阻断:识别注入并写入审计,阻断 SQL 执行。
  1. 开启 DB 防火墙功能后,用户可以通过 SQL 注入审计页面查看发生了 SQL 注入的行为统计,并能以时间、数据库、帐号等维度进行分类。

    说明:确认非 SQL 注入的语句可以点击操作列的“添加到 SQL 白名单”中。添加到 SQL 白名单对非 SQL 注入进行放行。

SQL 注入报警

SQL 注入报警的通知策略:

汇总 5 分钟注入详情向用户发送报警邮件与短信,如无注入则不发送;
只要您开通了 DB 防火墙功能,无论您选择拦截模式还是告警模式,当发生 SQL 注入时,您都将收到 SQL 注入报警通知。

SQL 注入报警的内容示例:

您的 云数据库 RDS 实例 rdsproxy/rdsplrg92w5cmac 上发现 SQL 入侵5条,未拦截。
为了保证您的数据安全,请前往“百度智能云->云数据库 RDS ->代理实例->安全-> DB 防火墙”中查看详细注入信息,感谢支持!

SQL 注入报警的订阅与退订:

SQL注入报警订阅状况可在消息中心->消息接收设置->安全消息->报警、恢复通知中查看,并添加消息接收人。因为 SQL 注入对数据库安全影响重大,所以系统默认以邮件及短信方式发送通知且不允许退订。

设置 SSL 加密

为了提高链路安全性,您可以启用 SSL(Secure Sockets Layer)加密,并安装 SSL CA证书到需要的应用服务。SSL 在传输层对网络连接进行加密,将保证数据在传输过程中的安全性和完整性,减少您对数据传输安全性的顾虑,但 SSL 加密协议会增加网络连接的响应时间及云数据库 RDS 的负载。

开启/关闭 SSL 加密

说明:开启或关闭 SSL 设置都会重启实例,请谨慎使用。

  1. 登录百度智能云管理控制台,选择 云数据库 RDS。

  2. 单击目标实例的“实例名称/ID”,进入基本信息页面。

    说明:SSL 加密服务只针对 云数据库 RDS for MySQL 5.7 双机高可用版

    image.png

  3. 在顶端页签中选择“安全”页,进入“安全”页面。

  4. 选择SSL标签。

    image.png

  5. 在“SSL 设置”中打开/关闭“SSL 安全访问”,状态变更需要几分钟时间,下图是开启成功的示意。

    image.png

  6. 开启成功,则显示受保护地址、服务端证书生效期和有效期等信息。

  7. 您可单击“CA 证书下载”,下载 SSL CA 证书,如下图所示。

    image.png

配置CA 证书

开通SSL加密后,应用或者客户端连接 云数据库 RDS 时需要配置 SSL CA证书,本文以 MySQL Workbench 为例,介绍SSL CA证书的配置方法。

  1. 打开 MySQL Workbench,

  2. 选择 Database>Manage Connections...

  3. 点击 SSL 选项卡,导入 SSL CA 证书,如下图所示。

多用户访问控制

介绍

云数据库 RDS 多用户访问控制是指原用户作为子帐号的主帐号,可以给子帐号分配相关产品或实例的操作权限,实现细粒度的权限管理。如给DBA等一线操作人员分配产品级或具体到实例级别的云数据库 RDS 运维操作权限,给其他非操作人员分配产品级或实例级的云数据库 RDS 查看权限。

适用于下列使用场景:

  • 中大型企业客户:对公司内多个员工授权管理;

  • 偏技术型vendor或SAAS的平台商:对代理客户进行资源和权限管理;

  • 中小开发者或小企业:添加项目成员或协作者,进行资源管理。

创建子用户

  1. 主账号用户登录后在控制台选择“多用户访问控制”进入用户管理页面。

  2. 在左侧导航栏点击“用户管理”,在“子用户管理列表”页,点击“新建用户”。

  3. 在弹出的“新建用户”对话框中,完成填写“用户名”和确认,返回“子用户管理列表”区可以查看到刚刚创建的子用户。

配置策略

云数据库 RDS 支持系统策略和用户自定义策略两种,分别实现云数据库 RDS 的产品级权限和实例级权限控制。

系统策略

系统策略为云数据库 RDS 产品级权限,云数据库 RDS 有产品级管理权限、产品级运维权限和产品级只读权限三种系统策略,权限范围详细解释如下。

权限 权限范围
云数据库 RDS 产品级管理权限 所有云数据库 RDS 实例所有操作权限。
云数据库 RDS 产品级运维权限 可以访问、操作所有主帐号下的云数据库 RDS 实例权限,不包括创建主实例/只读/代理实例权限,不包括克隆实例、配置变更、续费、tag、计费变更、释放实例。
云数据库 RDS 产品级只读权限 所有云数据库 RDS 实例列表查看权限,包括实例详情查看、监控、日志。无操作权限。

自定义策略

子用户可以通过点击“创建策略”添加自定义策略来进行实例级权限控制,自定义策略的添加有配置策略生成器和编辑策略文件两种方式,用户可以根据具体的权限设置修改策略内容。

  • 策略生成器:用户可以通过策略生成器选择实例操作权限和配置资源区域来添加自定义策略,点击完成后,创建的策略展示于自定义策略列表中。

    注意:目前每条策略只能选择单个区域进行实例配置

  • 编辑策略文件:用户也可以通过编辑策略文件添加自定义策略,策略文件本质上是一个JSON文件,无论是系统策略还是用户自定义策略,最终都会映射成为一个ACL的JSON串。使用ACL策略配置文件,用户可以非常灵活的定义权限策略,但是需要用户理解ACL字符串的含义。编辑ACL权限策略的语法可参考文档[策略语法]。文件中permission和resource用来定义权限和资源。

    策略文件中各字段的含义如下:

    字段 数据类型 说明 是否必须 父节点
    accessControlList list 标识acl主体的开始,由一或多组acl配置项组成,其中acl配置项由service+region+effect+permission+resource组合而成。
    +service string acl配置项影响的服务组件,云数据库 RDS固定为"bce:rds"。 accessControlList
    +region string acl配置项影响的区域,取值范围为"bj"、"gz"、"su"、"hk"和"∗"。其中"bj"代表北京region,"gz"代表广州region,"su"代表苏州region,"h"代表香港region,"∗"代表示所有区域。取值需要写在引号内部,标点符号需用英文半角。 accessControlList
    +effect string 指定与该条acl配置项匹配的Request能否执行,取值为"Allow"或"Deny"。"Allow"表示可以执行"Deny"表示拒绝执行。 accessControlList
    +permission list ACL配置项所影响的权限,取值范围为"READ"和通配符"∗"。"READ"为只读权限,"∗"为运维权限。 accessControlList
    +resource list ACL配置项所影响的资源,支持通配符"∗"和具体实例ID。"∗"代表所有的实例,实例ID可以配置多个,取值用半角英文引号包住,取值间用逗号间隔。 accessControlList

云数据库 RDS 自定义实例级权限范围详细解释如下:

权限 权限范围
云数据库 RDS 实例级管理权限 所选云数据库 RDS 实例的所有操作权限,不包括新建主实例
云数据库 RDS 实例级运维权限 所选云数据库 RDS 实例(包括关联只读、代理)所有操作权限,不包括创建主实例/只读/代理实例权限,不包括克隆实例、配置变更、续费、tag、计费变更、释放实例。
云数据库 RDS 实例级只读权限 所选云数据库 RDS 实例(包括关联只读、代理)详情查看、监控、日志权限。

用户授权

在“用户管理->子用户管理列表页”的对应子用户的“操作”列选择“添加权限”,并为用户选择系统权限或自定义策略进行授权。

说明:如果在不修改已有策略规则的情况下修改某子用户的权限,只能通过删除已有的策略并添加新的策略来实现,不能取消勾选已经添加过的策略权限。

子用户登录

主账号完成对子用户的授权后,可以将链接发送给子用户;子用户可以通过IAM用户登录链接登录主账号的管理控制台,根据被授权的策略对主账户资源进行操作和查看。

其他详细操作参考:多用户访问控制