数据库运维最佳实践

数据库作为企业的核心业务,其运维操作是安全管控的重点。堡垒机企业双擎版和国密版支持对MySQL、SQL Server、PostgreSQL类型的RDSMySQL、PostgreSQL、PostgreSQL(兼容Oracle)的PolarDB以及MySQL、SQL Server、PostgreSQL、Oracle类型的自建数据库进行运维和审计。本文以具体案例介绍如何通过堡垒机进行数据库运维。

背景信息

企业资产中,除了Windows服务器、Linux服务器外,还有大量的数据库资产。数据库作为核心业务资产包含大量敏感信息,如何保证运维安全、防止越权访问、违规操作等更是企业的重点关注需求。

数据库业务比较多样化,有云原生数据库如RDS、以及自建数据库,并包含MySQL、SQL Server、PostgreSQL、Oracle多种类型,且很多大型企业数据库业务也通常会分布在多跨账号、跨VPC以及线下IDC或异构云等混合场景下,那么如何实现对如上混合场景的统一运维管控、方便运维安全团队的集中管理也是堡垒机的重点。

阿里云堡垒机企业双擎版或国密版支持Windows服务器、Linux服务器以及数据库的运维管控,针对多种类型数据库均可实现运维权限划分及事后审计追溯,最大化保证数据库运维安全。另外还提供混合场景运维能力,通过网络域运维能力将跨账号、线下IDC、异构云混合场景下的资产进行统一平台接入,便于安全团队的一站式管控。

同时,企业双擎版和国密版具有可靠底层架构保障,双引擎部署,双活架构运行,对于数据库的运维高要求操作提供更稳定的业务保障。详细信息,请参见版本功能对比

数据库运维

数据库运维流程

使用堡垒机进行数据库运维时,管理员先通过堡垒机对资产进行管理,以及运维人员进行权限划分。运维人员再通过客户端、运维门户等方式建立到堡垒机的SSH隧道,并在堡垒机管控下登录数据库资产进行运维。

流程

运维方式及步骤

客户端运维

前提条件

步骤一:获取堡垒机运维地址和数据库运维令牌

  1. 登录运维门户。具体操作,请参见登录运维门户

  2. 在左侧导航栏,单击数据库

  3. 数据库页面,定位到目标数据库,在远程连接列,将登录方式选择为查看运维令牌,单击登录

  4. 运维令牌对话框,单击申请运维令牌(首次登录需要申请运维令牌)。

    image

说明
  • 登录运维门户获取运维令牌时,如果当前数据库账户未在堡垒机上托管,则需要在运维令牌对话框配置数据库账户的基本信息后,才能获取运维令牌。关于新建数据库账户的更多信息,请参见数据库管理

  • 运维令牌需要在有效期内使用,管理员可以在堡垒机设置令牌有效期。若开启运维审批,则以管理员审批通过时设置的有效期为准。

  • 如果管理员设置允许运维员自主续期,则令牌过期前,运维员可以自主为令牌续期,过期之后需要重新申请令牌。若已开启运维审批,则运维员不可进行续期。运维令牌配置修改后需要重新申请或更新令牌才可生效。

  • 若令牌在有效期内但运维连接失败,可能为运维并发已达到上限,请联系管理员升配堡垒机规格或释放空闲连接;或管理员限制了该来源IP和时间段导致无法运维,请联系管理员解除限制。

  • 审计记录的运维用户信息为申请令牌的用户,与客户端中所填用户名和资产账户无关。

步骤二:通过客户端工具或者命令行建立SSH隧道

下文以Navicat Premium工具和终端命令行工具介绍通过堡垒机运维数据库资产的流程。

Navicat Premium工具

  1. 打开Navicat Premium工具,新建MySQL连接。

    • SSH页签,勾选SSH隧道,并配置登录堡垒机的相关信息(步骤一获取的客户端SSH隧道配置项)。

      image

      关键配置项

      说明

      主机

      堡垒机运维地址,即填写步骤一客户端SSH隧道配置项中的公网或私网运维地址。

      端口

      堡垒机SSH运维端口。默认为60022。

      用户名

      运维员登录堡垒机的用户名。

      密码

      数据库运维令牌,即填写步骤一客户端SSH隧道配置项中的运维令牌。

    • 常规页签,配置数据库的相关信息。

      image

      关键配置项

      说明

      主机

      数据库连接地址。

      用户名

      数据库账户登录名。

      密码

      • 如果管理员已在堡垒机中托管了数据库账户密码,则密码处可留空。

      • 如果管理员未在堡垒机中托管数据库账户密码,则密码处需填写数据库账户的登录密码。

      说明 建议您勾选保存密码,如果未勾选,客户端可能会要求您填写账户密码,您可以将运维令牌填写在密码处。
  2. Navicat Premium工具中,双击新创建的数据库连接,连接成功后进行运维。

终端命令行

  1. 打开命令行工具,执行以下命令。

    • 命令格式:

      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

  2. 在密码认证步骤,输入数据库运维令牌,然后按回车键等待。

    image

  3. 另起一个命令行,确认本地自定义端口是否处于已监听状态,LISTEN表示已监听。

    image

  4. 执行以下命令,成功连接数据库后进行运维。

    image

    • 命令格式

      mysql -h 127.0.0.1 -u <accountname> -P <localport>
    • 参数说明

      • accountname为运维的数据库登录账户名。

      • localport为连接堡垒机时自定义的本地监听端口。

Web运维

堡垒机支持通过运维门户或Web控制台运维数据库。下文以运维门户为例数据运维流程。

前提条件

已在堡垒机中新建数据库和用户,并授权用户资产和资产账户。具体操作,请参见新建数据库管理用户授权资产及资产账户

下文以MySQL本地用户为例介绍。

操作步骤

  1. 登录堡垒机运维门户。具体操作,请参见登录运维门户

  2. 在左侧导航栏,单击数据库

  3. 找到目标数据库,并在远程连接列,选择Web远程连接登录方式,单击登录

    image

SSO单点登录运维

运维人员可通过Web页面使用单点登录器自动调用本地客户端以建立会话,从而省去单独配置客户端的步骤。下文以堡垒机运维门户为例,介绍如何使用SSO单点登录运维MySQL数据库

前提条件

步骤一:获取运维门户地址

  1. 登录堡垒机控制台,在顶部菜单栏,选择堡垒机所在的地域。

  2. 在堡垒机实例列表,定位到目标实例,单击管理

  3. 在左侧导航栏,单击概览,获取运维门户地址。

    image

步骤二:在本地系统安装单点登录器

  1. 在浏览器中,输入获取到的运维门户地址。

  2. 云盾堡垒机登录页面,输入堡垒机用户名和密码,单击登录

  3. 在运维门户页面,单击单点登录器下载

    本文下载的是Windows系统适用的单点登录器。

    image

  4. 下载完成后安装成功即可(安装后无需打开)。

步骤三:设置运维终端

  1. 在运维门户的左侧导航栏,单击终端设置

  2. MySQL页签,选择Dbeaver客户端,并单击保存

    image

  3. 在弹出的usmsso.exe提示框中,单击打开,并按照页面指引配置运维数据库的客户端。

步骤四:运维数据库

  1. 在运维门户的左侧导航栏,单击数据库

  2. 找到目标数据库,并在远程连接列,单击下拉列表,将登录方式设置为本地客户端登录,单击登录

    image

数据库运维审计

运维人员通过堡垒机进入数据库资产之后,堡垒机可对运维人员的操作进行审计,包括会话审计、实时监控、操作日志等,实现事后追溯。

  1. 登录堡垒机控制台,在顶部菜单栏,选择堡垒机所在的地域。

  2. 在堡垒机实例列表,定位到目标实例,单击管理

  3. 在左侧导航栏,选择运维审计 > 会话审计

  4. 会话审计页面,查看会话记录。