数据库作为企业的核心业务,其运维操作是安全管控的重点。堡垒机企业双擎版和国密版支持对MySQL、SQL Server、PostgreSQL类型的RDS和MySQL、PostgreSQL、PostgreSQL(兼容Oracle)的PolarDB以及MySQL、SQL Server、PostgreSQL、Oracle类型的自建数据库进行运维和审计。本文以具体案例介绍如何通过堡垒机进行数据库运维。
背景信息
企业资产中,除了Windows服务器、Linux服务器外,还有大量的数据库资产。数据库作为核心业务资产包含大量敏感信息,如何保证运维安全、防止越权访问、违规操作等更是企业的重点关注需求。
数据库业务比较多样化,有云原生数据库如RDS、以及自建数据库,并包含MySQL、SQL Server、PostgreSQL、Oracle多种类型,且很多大型企业数据库业务也通常会分布在多跨账号、跨VPC以及线下IDC或异构云等混合场景下,那么如何实现对如上混合场景的统一运维管控、方便运维安全团队的集中管理也是堡垒机的重点。
阿里云堡垒机企业双擎版或国密版支持Windows服务器、Linux服务器以及数据库的运维管控,针对多种类型数据库均可实现运维权限划分及事后审计追溯,最大化保证数据库运维安全。另外还提供混合场景运维能力,通过网络域运维能力将跨账号、线下IDC、异构云混合场景下的资产进行统一平台接入,便于安全团队的一站式管控。
同时,企业双擎版和国密版具有可靠底层架构保障,双引擎部署,双活架构运行,对于数据库的运维高要求操作提供更稳定的业务保障。详细信息,请参见版本功能对比。
数据库运维流程
使用堡垒机进行数据库运维时,管理员先通过堡垒机对资产进行管理,以及运维人员进行权限划分。运维人员再通过客户端、运维门户等方式建立到堡垒机的SSH隧道,并在堡垒机管控下登录数据库资产进行运维。
运维方式及步骤
客户端运维
前提条件
已在堡垒机中新建数据库和用户,并授权用户资产和资产账户。具体操作,请参见新建数据库、管理用户及授权资产及资产账户。
下文以MySQL和本地用户为例介绍。
已在本地系统安装支持SSH隧道的数据库运维工具。关于客户端工具及版本推荐,请参见客户端远程连接工具及版本推荐。
下文以Windows系统+Navicat Premium工具、Linux系统+命令行两种方式介绍运维流程。
步骤一:获取堡垒机运维地址和数据库运维令牌
登录运维门户。具体操作,请参见登录运维门户。
在左侧导航栏,单击数据库。
在数据库页面,定位到目标数据库,在远程连接列,将登录方式选择为查看运维令牌,单击登录。
在运维令牌对话框,单击申请运维令牌(首次登录需要申请运维令牌)。
登录运维门户获取运维令牌时,如果当前数据库账户未在堡垒机上托管,则需要在运维令牌对话框配置数据库账户的基本信息后,才能获取运维令牌。关于新建数据库账户的更多信息,请参见数据库管理。
运维令牌需要在有效期内使用,管理员可以在堡垒机设置令牌有效期。若开启运维审批,则以管理员审批通过时设置的有效期为准。
如果管理员设置允许运维员自主续期,则令牌过期前,运维员可以自主为令牌续期,过期之后需要重新申请令牌。若已开启运维审批,则运维员不可进行续期。运维令牌配置修改后需要重新申请或更新令牌才可生效。
若令牌在有效期内但运维连接失败,可能为运维并发已达到上限,请联系管理员升配堡垒机规格或释放空闲连接;或管理员限制了该来源IP和时间段导致无法运维,请联系管理员解除限制。
审计记录的运维用户信息为申请令牌的用户,与客户端中所填用户名和资产账户无关。
步骤二:通过客户端工具或者命令行建立SSH隧道
下文以Navicat Premium工具和终端命令行工具介绍通过堡垒机运维数据库资产的流程。
Navicat Premium工具
打开Navicat Premium工具,新建MySQL连接。
在SSH页签,勾选SSH隧道,并配置登录堡垒机的相关信息(步骤一获取的客户端SSH隧道配置项)。
关键配置项
说明
主机
堡垒机运维地址,即填写步骤一客户端SSH隧道配置项中的公网或私网运维地址。
端口
堡垒机SSH运维端口。默认为60022。
用户名
运维员登录堡垒机的用户名。
密码
数据库运维令牌,即填写步骤一客户端SSH隧道配置项中的运维令牌。
在常规页签,配置数据库的相关信息。
关键配置项
说明
主机
数据库连接地址。
用户名
数据库账户登录名。
密码
如果管理员已在堡垒机中托管了数据库账户密码,则密码处可留空。
如果管理员未在堡垒机中托管数据库账户密码,则密码处需填写数据库账户的登录密码。
说明 建议您勾选保存密码,如果未勾选,客户端可能会要求您填写账户密码,您可以将运维令牌填写在密码处。
在Navicat Premium工具中,双击新创建的数据库连接,连接成功后进行运维。
终端命令行
打开命令行工具,执行以下命令。
命令格式:
ssh -N -L <localport>:<databaseAddress>:<databasePort> <bastionusername>@<bastionAddress> -p <bastionPort>
参数说明:
参数
说明
localport
建立隧道后自定义本地监听的端口。请确认与本地已有监听端口不存在冲突。
databaseAddress
需要运维的数据库资产的地址。
databasePort
需要运维的数据库资产的端口。
bastionusername
云堡垒机的用户名。
bastionAddress
云堡垒机的运维地址。
bastionPort
云堡垒机SSH运维的端口。默认为60022。
命令示例:
ssh -N -L 33061:rm-******m020h.mysql.rds.aliyuncs.com:3306 bastuser@******-public.bastionhost.aliyuncs.com -p 60022
在密码认证步骤,输入数据库运维令牌,然后按回车键等待。
另起一个命令行,确认本地自定义端口是否处于已监听状态,LISTEN表示已监听。
执行以下命令,成功连接数据库后进行运维。
命令格式
mysql -h 127.0.0.1 -u <accountname> -P <localport>
参数说明
accountname
为运维的数据库登录账户名。localport
为连接堡垒机时自定义的本地监听端口。
Web运维
堡垒机支持通过运维门户或Web控制台运维数据库。下文以运维门户为例数据运维流程。
前提条件
已在堡垒机中新建数据库和用户,并授权用户资产和资产账户。具体操作,请参见新建数据库、管理用户及授权资产及资产账户。
下文以MySQL和本地用户为例介绍。
操作步骤
登录堡垒机运维门户。具体操作,请参见登录运维门户。
在左侧导航栏,单击数据库。
找到目标数据库,并在远程连接列,选择Web远程连接登录方式,单击登录。
SSO单点登录运维
运维人员可通过Web页面使用单点登录器自动调用本地客户端以建立会话,从而省去单独配置客户端的步骤。下文以堡垒机运维门户为例,介绍如何使用SSO单点登录运维MySQL数据库。
前提条件
已在堡垒机中新建数据库和用户,并授权用户资产和资产账户。具体操作,请参见新建数据库、管理用户及授权资产及资产账户。
下文以MySQL和本地用户为例介绍。
已在本地系统安装单点登录器支持的客户端。关于支持的客户端说明,请参见单点登录器支持的客户端。
下文以Windows系统、Dbeaver 23为例介绍。
步骤一:获取运维门户地址
登录堡垒机控制台,在顶部菜单栏,选择堡垒机所在的地域。
在堡垒机实例列表,定位到目标实例,单击管理。
在左侧导航栏,单击概览,获取运维门户地址。
步骤二:在本地系统安装单点登录器
在浏览器中,输入获取到的运维门户地址。
在云盾堡垒机登录页面,输入堡垒机用户名和密码,单击登录。
在运维门户页面,单击单点登录器下载。
本文下载的是Windows系统适用的单点登录器。
下载完成后安装成功即可(安装后无需打开)。
步骤三:设置运维终端
在运维门户的左侧导航栏,单击终端设置。
在MySQL页签,选择Dbeaver客户端,并单击保存。
在弹出的usmsso.exe提示框中,单击打开,并按照页面指引配置运维数据库的客户端。
步骤四:运维数据库
在运维门户的左侧导航栏,单击数据库。
找到目标数据库,并在远程连接列,单击下拉列表,将登录方式设置为本地客户端登录,单击登录。
数据库运维审计
运维人员通过堡垒机进入数据库资产之后,堡垒机可对运维人员的操作进行审计,包括会话审计、实时监控、操作日志等,实现事后追溯。
登录堡垒机控制台,在顶部菜单栏,选择堡垒机所在的地域。
在堡垒机实例列表,定位到目标实例,单击管理。
在左侧导航栏,选择 。
在会话审计页面,查看会话记录。