GaussDB(DWS) 云端运维系列第四期:集群安全(SSL连接,三权分立)

举报
chinawjb 发表于 2020/11/05 15:39:33 2020/11/05
【摘要】 SSL连接:DWS支持SSL通道加密和证书认证两种方式进行客户端与服务器端的通信。可以通过服务器端是否强制使用SSL连接进行设置。开关打开,即只能通过SSL方式连接。开关关闭,即两种方式均可。默认关闭。 三权分立:为了保护用户的数据安全,DWS支持使用不同类型的用户分别控制不同权限的三权分立模式。开启后,用户划分为:系统管理员、安全管理员、审计管理员和普通用户,其中三类管理员用户权限彼此分离

SSL连接

GaussDB(DWS) 支持SSL认证方式的连接,以加密GaussDB(DWS) 客户端与数据库之间传输的数据。SSL连接方式的安全性高于普通模式,集群默认开启SSL功能允许来自客户端的SSL连接或非SSL连接,从安全性考虑,建议用户在客户端使用SSL连接方式。如果要强制使用SSL连接,需要为集群开启服务器端是否强制使用SSL连接

DWS支持SSL通道加密和证书认证两种方式进行客户端与服务器端的通信。您可以通过服务器端是否强制使用SSL连接进行设置。开关打开,即只能通过SSL方式连接。开关关闭,即两种方式均可。默认关闭。

在集群的安全设置页面可以设置是否开启服务器端是否强制使用SSL连接

【说明】

  •  修改安全配置参数并保存生效可能需要重启集群,将导致集群暂时不可用。

  • 实时数仓暂不支持SSL连接。

  •  实时数仓暂不支持MRS数据源连接。

  •  修改集群安全配置必须同时满足以下两个条件:

    集群状态为可用低性能

    任务信息不能处于创建快照中节点扩容配置中重启中

设置SSL连接

  1. 登录GaussDB(DWS) 管理控制台。

  2. 在左侧导航树中,单击集群管理

  3. 在集群列表中,单击指定集群的名称,然后单击安全设置

    默认显示配置状态已同步,表示页面显示的是数据库当前最新结果。

  4. “SSL连接区域中,单击服务器端是否强制使用SSL连接的设置开关进行设置,建议开启。

:开启,表示服务器端强制要求SSL连接。

:关闭,表示服务器端对是否通过SSL连接不作强制要求,默认为关闭。

  说明:

  如果使用GaussDB(DWS) 提供的gsql客户端或ODBC驱动,GaussDB(DWS) 支持的SSL协议为TLSv1.2

  如果使用GaussDB(DWS) 提供的JDBC驱动,支持的SSL协议有SSLv3TLSv1TLSv1.1TLSv1.2。客户端与数据库之间实际使用何种SSL协议,依赖客户端使用的JDKJava Development Kit)版本,一般JDK支持多个SSL协议。

5.    单击应用

系统将自动应用保存SSL连接设置,在安全设置页面,配置状态显示应用中。当配置状态显示为已同步,表示配置已保存生效。

客户端和服务端SSL连接参数组合情况

  客户端最终是否使用SSL加密连接方式、是否验证服务器证书,取决于客户端参数sslmode与服务器端(即GaussDB(DWS) 集群侧)参数sslrequire_ssl。参数说明如下:

ssl(服务器)

ssl参数表示是否开启SSL功能。on表示开启,off表示关闭。

  • 对于集群版本高于1.3.1(包括1.3.1)的集群,默认为on,不支持在GaussDB(DWS) 管理控制台上设置。

  • 对于集群版本低于1.3.1的集群,默认为onssl参数可通过GaussDB(DWS) 管理控制台上集群的安全设置页面中的SSL连接进行设置。

require_ssl(服务器)

 require_ssl参数是设置服务器端是否强制要求SSL连接,该参数只有当sslon时才有效。on表示服务器端强制要求SSL连接。off表示服务器端对是否通过SSL连接不作强制要求。

  • 对于集群版本高于1.3.1(包括1.3.1)的集群,默认为offrequire_ssl参数可通过GaussDB(DWS) 管理控制台上集群的安全设置页面中的服务器端是否强制使用SSL连接进行设置。

  • 对于集群版本低于1.3.1的集群,默认为off,不支持在GaussDB(DWS) 管理控制台上设置。

 sslmode(客户端)

可在SQL客户端工具中进行设置。

  • gsql命令行客户端中,为“PGSSLMODE”参数。

  • Data Studio客户端中,为“SSL模式参数。

客户端参数sslmode与服务器端参数sslrequire_ssl配置组合结果如下:

客户端与服务器端SSL参数组合结果

ssl(服务器)

sslmode(客户端)

require_ssl(服务器)

结果

on

disable

on

由于服务器端要求使用 SSL,但客户端针对该连接禁用了 SSL,因此无法建立连接。

disable

off

连接未加密。

allow

on

连接经过加密。

allow

off

连接未加密。

prefer

on

连接经过加密。

prefer

off

连接经过加密。

require

on

连接经过加密。

require

off

连接经过加密。

verify-ca

on

连接经过加密,且验证了服务器证书。

verify-ca

off

连接经过加密,且验证了服务器证书。

off

disable

on

连接未加密。

disable

off

连接未加密。

allow

on

连接未加密。

allow

off

连接未加密。

prefer

on

连接未加密。

prefer

off

连接未加密。

require

on

由于客户端要求使用 SSL,但服务器端禁用了 SSL,因此无法建立连接。

require

off

由于客户端要求使用 SSL,但服务器端禁用了 SSL,因此无法建立连接。

verify-ca

on

由于客户端要求使用 SSL,但服务器端禁用了 SSL,因此无法建立连接。

verify-ca

off

由于客户端要求使用 SSL,但服务器端禁用了 SSL,因此无法建立连接。

下载SSL证书

GaussDB(DWS) 支持SSL标准协议(TLS 1.2),SSL协议是安全性更高的协议标准,它们加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数据传输。为支持SSL连接方式,GaussDB(DWS) 已经从CA认证中心申请到正式的服务器、客户端的证书和密钥(假设服务器的私钥为server.key,证书为server.crt,客户端的私钥为client.key,证书为client.crtCA根证书名称为cacert.pem。)。

GaussDB(DWS) 集群(即服务器端)默认已开启SSL功能允许来自客户端的SSL连接或非SSL连接,并且,GaussDB(DWS) 服务器端的证书、私钥以及根证书已经默认配置完成。

如果客户端或JDBC/ODBC应用程序要使用SSL连接方式,用户必须在客户端或应用程序代码中配置相关的SSL连接参数。GaussDB(DWS) 管理控制台提供了客户端所需的SSL证书,该SSL证书包含了客户端所需的默认证书、私钥、根证书以及私钥密码加密文件。请将该SSL证书下载到客户端所在的主机上,然后在客户端中指定证书所在的路径。

说明:

使用默认的证书可能存在安全风险,为了提高系统安全性,强烈建议用户定期更换证书以避免被破解的风险。如果需要更换证书,请联系客服

步骤:

  1. 登录GaussDB(DWS) 管理控制台。

  2. 在左侧导航栏中,单击连接管理

  3.  下载驱动程序区域,单击这里下载SSL证书文件。

三权分立

介绍

为了保护用户的数据安全,DWS支持使用不同类型的用户分别控制不同权限的三权分立模式。开启此模式后,用户划分为:系统管理员安全管理员审计管理员和普通用户,其中三类管理员用户权限彼此分离

默认权限机制系统管理员两节的描述基于的是集群创建之初的默认情况。从前面的介绍可以看出,默认情况下拥有SYSADMIN属性的系统管理员,具备系统最高权限。

在实际业务管理中,为了避免系统管理员拥有过度集中的权利带来高风险,可以设置三权分立,将系统管理员的权限分立给安全管理员和审计管理员。

三权分立后,系统管理员将不再具有CREATEROLE属性(安全管理员)和AUDITADMIN属性(审计管理员)能力。即不再拥有创建角色和用户的权限,并不再拥有查看和维护数据库审计日志的权限。关于CREATEROLE属性和AUDITADMIN属性的更多信息请参考CREATE ROLE

三权分立后,系统管理员只会对自己作为所有者的对象有权限。

三权分立的设置办法请参考设置三权分立部分。

三权分立前的权限详情及三权分立后的权限变化,请分别参见12

默认的用户权限

对象名称

系统管理员

安全管理员

审计管理员

普通用户

表空间

对表空间有创建、修改、删除、访问、分配操作的权限。

不具有对表空间进行创建、修改、删除、分配的权限,访问需要被赋权。

对所有表有所有的权限。

仅对自己的表有所有的权限,对其他用户的表无权限。

索引

可以在所有的表上建立索引。

仅可以在自己的表上建立索引。

模式

对所有模式有所有的权限。

仅对自己的模式有所有的权限,对其他用户的模式无权限。

函数

对所有的函数有所有的权限。

仅对自己的函数有所有的权限,对其他用户放在public这个公共模式下的函数有调用的权限,对其他用户放在其他模式下的函数无权限。

自定义视图

对所有的视图有所有的权限。

仅对自己的视图有所有的权限,对其他用户的视图无权限。

系统表和系统视图

可以查看所有系统表和视图。

只可以查看部分系统表和视图。详细请参见系统表和系统视图

 

三权分立较非三权分立权限变化说明

对象名称

系统管理员

安全管理员

审计管理员 普通用户

表空间

无变化

无变化。

权限缩小。

只对自己的表有所有权限,对其他用户放在属于各自模式下的表无权限。

无变化。

索引

权限缩小。

只可以在自己的表上建立索引。

无变化。

模式

权限缩小。

只对自己的模式有所有的权限,对其他用户的模式无权限。

无变化。

函数

权限缩小。

只对自己的函数有所有的权限,对其他用户放在属于各自模式下的函数无权限。

无变化。

自定义视图

权限缩小。

只对自己的视图及其他用户放在public模式下的视图有所有的权限,对其他用户放在属于各自模式下的视图无权限。

无变化。

系统表和系统视图

无变化。

无变化。

无变化。 无权查看任何系统表和视图。

设置三权分立

操作场景

        默认情况下,创建GaussDB(DWS) 集群时指定的管理员用户属于数据库的系统管理员,能够创建其他用户和查看数据库的审计日志,即权限不分立,三权分立模式为关闭。

        为了保护集群数据的安全,GaussDB(DWS) 支持对集群设置三权分立,使用不同类型的用户分别控制不同权限的模式。

        默认的权限模型和开启三权分立后的权限模型,请参见《数据仓库服务数据库开发指南》的三权分立章节。

对系统影响

修改安全配置参数并保存生效可能需要重启集群,将导致集群暂时不可用。

前提条件:

修改集群安全配置必须同时满足以下两个条件:

集群状态为可用低性能

任务信息不能处于创建快照中节点扩容配置中重启中

操作步骤

1.      登录GaussDB(DWS) 管理控制台。

2.      在左侧导航树中,单击集群管理

3.      在集群列表中,单击指定集群的名称,然后单击安全设置

4.      默认显示“配置状态”为“已同步”,表示页面显示的是数据库当前最新结果。

5.      在“安全设置页面,设置三权分立

 表示开启三权分立模式。开启三权分立后,分别设置安全管理员审计管理员的用户名和密码,系统将会创建这两个用户。使用这两个用户可以连接数据库并执行数据库的相关操作

    表示关闭三权分立模式。默认为关闭状态。

安全配置

安全配置参数说明

参数名

参数解释

样例值

安全管理员

用户命名要求如下:

l  只能由小写字母、数字或下划线组成。

l  必须以小写字母或下划线开头。

l  长度为664个字符。

l  用户名不能为GaussDB(DWS) 数据库的关键字。GaussDB(DWS) 数据库的关键字,具体请参见《数据仓库服务数据库开发指南》中关键字章节。

security_admin

密码

密码复杂度要求如下:

l  密码长度为832个字符。

l  不能与用户名或倒序的用户名相同。

l  密码至少包含大写字母、小写字母、数字和特殊字符四类中的三类,其中可输入的特殊字符为:~!@#%^&*()-_=+|[{}];:,<.>/?

l  弱口令检查。

Dws_2018!

确认密码

再次输入安全管理员密码。

-

审计管理员

用户命名要求如下:

l  只能由小写字母、数字或下划线组成。

l  必须以小写字母或下划线开头。

l  长度为664个字符。

l  用户名不能为GaussDB(DWS) 数据库的关键字。GaussDB(DWS) 数据库的关键字,具体请参见《数据仓库服务数据库开发指南》中关键字章节。

audit_admin

密码

密码复杂度要求如下:

l  密码长度为832个字符。

l  不能与用户名或倒序的用户名相同。

l  密码至少包含大写字母、小写字母、数字和特殊字符四类中的三类,其中可输入的特殊字符为:~!@#%^&*()-_=+|[{}];:,<.>/?

l  弱口令检查。

Dws_2018!

确认密码

再次输入审计管理员密码。

-

6.      单击应用

7.      在弹出的保存配置窗口中,选择是否勾选立即重启集群,然后单击

      • 如果勾选立即重启集群,系统将保存安全设置页面的配置并立即重启集群,集群重启成功后安全设置将立即生效。

      • 如果不勾选立即重启集群,系统将只保存安全设置页面的配置。稍后,用户需要手动重启集群才能使安全设置生效。

      • 安全设置完成后,在安全设置页面,配置状态有如下3种状态:

      • 应用中:表示系统正在保存配置。

      • 已同步:表示配置已保存生效。

      • 需重启生效:表示配置已保存但还未生效。如需生效,需重启集群。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。