阿里云数据库安全保障方案 | 学习笔记

简介: 快速学习阿里云数据库安全保障方案

开发者学堂课程【数据库安全阿里云数据库安全保障方案】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/69/detail/1170


阿里云数据库安全保障方案

 

内容介绍:

一、阿里云链路的数据库安全保护

二、云端数据库安全管理:SSL+TDE

三、开始和配置

四、云端数据库安全管理:VPC、安全白名单、用户名/密码

 

一、阿里云链路的数据库安全保护

61.png

图中是阿里云的各种类型的数据库,这里不是列的很全,不是2DB是整个阿里数据库,这里罗列了的各项交易链的主要数据库,包括IDs、PolarDB、AnlyticDB、GDB、Redis、MongoDB还有很多的数据库,这里面没有列全。有一系列的数据库的安全解决方案,帮使用者去避免各种类型的数据安全事件。

1.SSL/TDE

第一个先看一下左边这两个SSL和TDE,它可以保证数据在公网传输的时候保持安全,即便有人拿到了的数据包,它也不知道里面是什么数据。如果数据库的访问需要在公网上传播的话,也可以考虑启用SSL。

另外就是TDE,它是对的数据落盘进行加密,即便磁盘发生了物理的丢失,拿到盘的人可能也不知道里面存的是什么样的数据。

2.账号和实例安全

再来看一下纵向的右边的几个,越靠近最里层越贴近新数据库的,先来看一下账号和实例安全。第一层是第一层保障,最靠近数据库的这一层保障,任何一个人访问数据库,首先都要有用户名和密码。但是根据的经验来看,其实也有人在数据库访问的时候,密码直接是空的,也有这种情况,这种其实是非常不安全的。另外还有数据库的账号其实在权限控制上可以做到非常细致的级别,可以做到库级别、表级别、月级别,然后在很多的企业级数据库里面都会提供一些能力,就是密码的复杂度检测以及密码的过期更新时间这些功能,这些功能都可以帮助保证数据库的账号更加的安全,然后还有一些其它的这类问题,包括账号和IP的组合访问配合度,完整的审计都可以帮助形成完整的保证账号和实例安全。

3.DNS服务

再上面一层是数据库的安全访问DNS服务,DNS服务后面会详细的展开去讲,它可以帮助企业实现统一的安全、高效的数据管理访问方案。当企业的人数越来越多的时候,下面一层的数据库的账号管理、库、表、链的权限管理以及密码的管理都会非常复。试想一下,如果公司有200人,数据库里面有各种各样的账号,一般可能有几十个账号,是有不同的业务系统在使用。这里有一个问题,如果其中有成员转岗或离职,它原来知道的账号,是否需要把账号的权限回收或者密码改掉。其实通常是不改的,因为可能账号改掉会影响别的业务,这种情况其实非常常见,数据管理dms后面会介绍一下它怎么去避免钻研类情况导致的账号的不安全的情况。

4.网络控制

再往上一层网络控制,数据库的实例会采用最小访问的原则,就是尽可能最小访问的原则,只让需要访问的应用服务器来访问数据库就可以。这里有几种方式,第一个是vpc应用隔离包括白名单,安全组的配置都可以帮助实现目的。

5.阿里云大安全系统

最上面一层是整个的阿里的大安全系统,云盾可以帮阻隔离一般性的攻击,包括暴力破解等等这种一般性的空间,它会帮助保护起来,另外包括金融业环境,它还有一些特殊的物理和网络的隔离方案,会让的数据库更安全,另外堡垒机的安全以及RAM子账号等等都是属于阿里云的大安全体系,保障的数据库安全,让整个的数据库在最下面处于一个比较安全的情况。

 

二、云端数据库安全管理:SSL+TDE

1.SSL链路加密

内外部数据全链路加密

防止数据在传输时被窃取,最高支持TLS v1.2

可强制使用SSL

无需配置和管理证书,即开即用

建议在互联网和经典网络中开启,增强安全性

SSL加密在以下情况下可能会用的比较多。第一个是如果数据库需要通过公网来访问,或者在阿里云的环境下,需要通过经典网络访问,也是建议要开启SSL的。SSL的好处是每一次的数据访问和数据交互都是加密数据在传输的,如果没有使用SSL,数据如果在公网上流通的话,如果数据包被人截取了,截取还是比较容易的,当数据包被人截取的时候,别人就可以通过的数据包打开看里面传输的什么数据,这是非常不安全的。SSL进行配置很简单,之后会简单讲SSL如何加密。

SSL有以下这么几个特点,第一个是它会让客户端和的数据库之间的所有的通信都是加密的,第三方或者中间人拿到数据是无法解密的。另外,它传输的数据是不能被篡改的,有一类攻击叫做中间人的攻击,它可以利用和服务端的通信来伪造一些内容往服务端发送一些通信,窃取其想要窃取的数据,SSL加密的方式可以帮助避免这种情况。

SSL加密的配置也比较灵活,可以指定某些账号必须强制地开启SSL,有些账号是需要远程访问的,可以强制一些账号开启SSL,另外阿里云已经把SSL的配置已经做到了非常简单。如果配置过https、配置过网站的Hpbs服务的话,其实会发现SSL配置其实还是比较复杂,还是有一定门槛的。

但是在阿里云上想把的数据库的SSL能力打开非常简单,基本上是请随便点几下就可以了,是属于一个无需配置和管理证书并且急用的方式使用,在公网文件和经典网络中是建议开启SSL,增强它的安全性。

2.TDE存储加密

支持实例级存储加密

oSS中的备份数据双层加密(InnoDB & Object)

密钥(Data Key)保存在KMS中,支持BYOK

一键开启,对应用透明

TDE原理上比较简单,就是当任何的数据漏盘的时候,它都会通过密钥进行对数据进行加密,所以在使用了TDE加密以后,即便数据在物理上或者在磁盘的层面被用户获取也没有关系,数据也没有关系,因为数据是加密存储的,拿到数据的人如果没有密钥也是打不开的。

TDE有以下几个特点,第一个它可以支持实例级别的加密,有的数据库类型支持表级别的存储加密。另外,如果把TDE的数据通过备份的方式用TDE加密的数据通过SSL的数据备份,SSL还可以在再次进行加密,可以达到一个双重加密的效果。

另外密钥的管理目前只是两种方式,第一个就是就是使用kms系统进行密钥管理,另外也支持BYOK,用自己的密钥来进行数据加密,这样安全级别又高了一个级别,这样即便有人拿到了数据,没有密钥也不知道里面存的是什么内容。

 

三、开始和配置

1.登录RDS管理控制台。

2.在页面左上角,选择实例所在地域。选择地域

3.找到目标实例,单击实例ID。

4.在左侧菜单栏中单击数据安全性。

5.选择SSL/TDE标签页。

 

62.png

另外它的开启和配置也非常简单,首先登录一下RDS的控制台,这样选择需要进行SSL加密或者TDE加密的实例,点击实例,然后在左侧的菜单选择数据库的安全性。如果需要开启SSL的话,点击SSL开通就可以了,点击了开通就可以下载系统的数字证书,数字证书里面有公钥,拿到数据证书给到客户端,客户端可以通过SSL上来连接数据库实例。

另外TDE的配置也是很简单的,TDE里面点击开通就可以了,但是如果要进行公网的网络传输,一定是推荐使用SSL的。因为如果不使用的话,所有的数据在公网上传输只要被人截取了,它就可以把数据包打开,看到里面是什么样的数据。现在在公网或者说在整个的互联网上,SSL加密也是一个非常普遍通用的数据安全加密的方式。比较大一点的网站基本上全部都会使用SSL对数据通信进行加密,基本上访问的绝大多数网站都是使用https的,https底层就是使用的SSL加密。HTTPS使用的SSL进行加密和其它的云数据库使用的SSL加密的方式和原理都是一样的,简单来说就是所有的通信,所有的client端和server端的通信都会通过session key对通信的内容进行加密传输,session key是cnk加密的方式是一个对称的加密,也就是client端发的任何请求都会用session key先进行加密,然后传输给server端,server端会用session key把请求解码出来看是什么样的请求,然后在数据库里面进行SQL的执行。执行完SQL它要把数据的结果返回给客户端的时候,也会用session key进行对称加密,然后传输到客户端,SSL加密有一个难点,session key在server端和client端进行传输以及session key传输过去的方式。简单的说大概就是在SSL的客户端client端,client端首先会随机的生成一个session key,clint端是需要拿到server端的数字证书的,数字证书里面有server的公钥,拿到了server的公钥之后,client端对它自己随机生成的session key进行一次加密,加密生成一个密文,密文再传回给server端,server端接收到密文之后可以使用自己的私钥对密文进行解密。如果公网上抓数据包的方式拿到了,拿到了4个session key用公钥加密的密文是没有用的,因为没有私钥是解不开session key的,这样client和server就session key并且达成了一致,并且第三方也已经拿不到。

这里还有另外一个问题,因为Client端是要用公钥进行加密的,client端保证公钥就恰好是server端的公钥,而不是一个第三方的欺骗方给的公钥。这个问题其实是一个关于SSL原理上比较复杂的一个问题,这也是为什么除了需要把公钥传递过来,还需要传递数字证书的原因。他要把自己的公钥信息传给client端,server端还要把数字证书也传给client端。数字证书的作用就是保障公钥恰好就是server端的公钥,至于保障的机制是什么,这里就不详细解释了,如果对问题感兴趣可以近一步的去Google一下SSL底层的原理是什么?

 

四、云端数据库安全管理:VPC、安全白名单、用户名/密码

1.VPC提供隔离的网络环境

不同应用有独立网络环境

本地环境可以通过专线打通

2.安全白名单更细粒度的网络控制

控制哪个IP、网段、资源组访问数据库。最小化权限与访问原则

3.用户名/密码进入数据库的钥匙

密码复杂度管理/定期更新机制管理

实现列/表/库多级别权限控制

可以与IP地址组合授权

63.png

可以通过ssrpd的方式保证的链路上数据传输是安全,来看一下在链路上怎么样去尽可能减少不必要的人、不必要的服务器、不必要的机器来访问的数据库用最小化的原则来访问数据库的服务器最小化。如果只有应用A需要访问数据库,只需要对部署服务器A的IP打开限制。一共有三种方式配置方式,第一个是通过vpc提供天然的应用网络隔离进行保障,只有相同的应用或者一个类型的应用才会放在一个VPC里面,只有在VPC内部的服务器才能访问VPC内的数据库,这样的话就保证了跟应用无关的应用就不能再访问数据库,这样就多了一层保障。

第二个就是在VPC下面更细粒度的,对于数据库A,应用服务器只有应用服务器ABC这三台机器需要访问数据库,数据库实例上就可以以白名单的方式配置只这三台服务器可以进行访问。使用最小化原则尽可能的保障,最少的应用能访问到数据库,这样会更安全。

第三个就是配置合理的用户名密码,因为是用户名密码是进入数据库的钥匙,也是最后一道关卡,要配置合理的用户名密码来访问数据库。合理的用户名的最佳实践这里有几个,第一个就是要尽可能的去保证的密码的复杂度,如果经常使用同样的密码,这是非常不安全的。密码如果只有数字或者只有字母的简单的组合,也是比较危险。第二个要有定期的密码更新机制,定期对密码进行更换,建议的用户名密码可以细致到库、表、链的级别,如果一个应用系统它不需要访问 A类或者不需要访问B列,在给用户名密码授权的时候,就把AB两列的权限给去掉,可以保证最小化的访问的时限,不需要访问列A列B的用户就不给其访问的权限,用户密码也可以和IP地址组合,一般用的比较少。

相关文章
|
21天前
|
关系型数据库 分布式数据库 数据库
成都晨云信息技术完成阿里云PolarDB数据库产品生态集成认证
近日,成都晨云信息技术有限责任公司(以下简称晨云信息)与阿里云PolarDB PostgreSQL版数据库产品展开产品集成认证。测试结果表明,晨云信息旗下晨云-站群管理系统(V1.0)与阿里云以下产品:开源云原生数据库PolarDB PostgreSQL版(V11),完全满足产品兼容认证要求,兼容性良好,系统运行稳定。
|
27天前
|
缓存 安全 Java
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
|
28天前
|
存储 NoSQL 数据库
阿里云数据库Cassandra的产品价格
阿里云数据库Cassandra提供多地域服务,如中国、亚太、欧洲、美洲及中东。计费分为实例主机节点规格费和存储费用,实例价格因节点数和副本数而异,存储费用按挂载云盘计算。生产系统建议配置多节点以确保冗余。公网流量目前免费,具体收费时间未定。详细价格以购买页面为准。
419 3
|
25天前
|
SQL 安全 数据管理
在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
【2月更文挑战第33天】在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
27 7
|
26天前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
366 3
|
16天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
76 3
|
26天前
|
弹性计算 关系型数据库 MySQL
阿里云MySQL云数据库优惠价格、购买和使用教程分享!
阿里云数据库使用流程包括购买和管理。首先,选购支持MySQL、SQL Server、PostgreSQL等的RDS实例,如选择2核2GB的MySQL,设定地域和可用区。购买后,等待实例创建。接着,创建数据库和账号,设置DB名称、字符集及账号权限。最后,通过DMS登录数据库,填写账号和密码。若ECS在同一地域和VPC内,可内网连接,记得将ECS IP加入白名单。
419 2
|
27天前
|
存储 SQL 数据管理
阿里云数据库 SelectDB 内核 Apache Doris 如何基于自增列满足高效字典编码等典型场景需求|Deep Dive 系列
自增列的实现,使得 Apache Doris 可以在处理大规模时展示出更高的稳定性和可靠性。通过自增列,用户能够高效进行字典编码,显著提升了字符串精确去重以及查询的性能。使用自增列作为主键来存储明细数据,可以完美的解决明细数据更新的问题。同时,基于自增列,用户可以实现高效的分页机制,轻松应对深分页场景,有效过滤掉大量非必需数据,从而减轻数据库的负载压力,为用户带来了更加流畅和高效的数据处理体验。
|
27天前
|
SQL 关系型数据库 MySQL
阿里云mysql数据库价格购买和使用教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,通过选择配置、地域和可用区完成购买。创建数据库和账号,分配权限。使用DMS登录数据库,进行管理操作。确保ECS与RDS在同一地域的VPC内,配置白名单实现内网连接。详细步骤见官方文档。
627 1
|
27天前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移