前言
随着企业业务全面向数字化、在线化、智能化演进,企业面临着呈指数级递增的海量存储需求和挑战,传统的商业数据库已经难以满足和响应快速变化持续增长的业务诉求。云数据库凭借着成本、性能、业务连续性以及在线业务扩展等优势成为企业更优的选择。随着企业数据逐步上云,云数据库安全变得至关重要。云数据库安全不仅可以防止未授权访问和数据泄露问题,保护数据的机密性和完整性,还可以保护企业的声誉和客户信任,保障企业遵守法律法规的要求。只有通过确保云数据库的安全性,企业才能够在数字化时代中安心地利用云服务。
PolarDB 2.0 是阿里巴巴自研的新一代云原生数据库,高度兼容 Oracle,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。在安全方面,PolarDB数据库具有以下特点和优势:
- 访问控制:PolarDB提供了精细的访问控制机制,可以根据用户角色、IP地址等进行访问权限的控制,确保只有授权的用户可以访问数据库。此外,PolarDB还支持数据库层面的防火墙策略,可以根据需求配置允许访问的IP范围,进一步加强安全控制。
- 数据加密:PolarDB支持数据的加密,在传输和存储过程中使用SSL/TLS协议进行加密,确保数据在传输和存储中的安全性。同时,PolarDB还提供了基于密钥管理服务(KMS)的数据加密功能,可以对数据库中的数据进行细粒度的加密和解密操作。
- 安全审计:PolarDB内置了安全审计功能,可以记录数据库的操作日志、登录日志等关键信息,帮助管理员进行安全审计和风险分析。通过审计日志,可以追踪和监控数据库的操作,及时发现异常行为和潜在的安全风险。
- 异地灾备:PolarDB支持跨地域的多可用区灾备方案,可以将数据备份到不同的地理位置,确保数据的可用性和持久性。在灾难发生时,可以快速切换到备份数据库,保证业务的连续性。
- 自动备份和恢复:PolarDB提供了自动备份和恢复功能,定期对数据库进行备份,并提供了灵活的数据恢复选项。这样可以防止数据丢失和意外删除,保证数据的完整性和可靠性。
- 安全补丁和升级:PolarDB会定期发布安全补丁和更新,及时修复已知的安全漏洞和风险。同时,PolarDB还提供了多个可用区的部署选项,可以在不同的物理设备和网络环境中分散数据,增加数据库的安全性。
下面,本文就以上安全特性进行更为详细的介绍。
网络层安全
IP 访问控制
IP访问控制是一种常见的网络安全措施,用于限制特定IP地址或IP地址范围对网络资源的访问。它通过过滤和控制网络流量,以实现对系统或服务的安全访问控制。通过IP访问控制,可以实现对网络资源的精细控制和保护。它可以防止未经授权的用户或攻击者访问系统,减少网络攻击和数据泄露的风险。
IP访问控制对于非白名单的IP进行拦截;具体的表现即客户端通过TCP/IP协议发出的SYN请求不会收到任何的回复。在当前的物理机上可以看到一个没有白名单的物理机再发送完SYN后不停的发送Retransmission重传请求,这说明IP拦截可以在TCP/IP协议的第一步将访问拦截。
IP 访问拦截的重要性不言而喻,就像人体防御系统的皮肤可以抵御各种细菌和病毒的侵蚀一样,IP访问拦截可以在一开始就将恶意的流量防患于未然。对于公有云的数据库来说,正确的设置IP拦截是一个数据库安全的第一步,也是相当重要的一步。
传输层安全
SSL 传输层加密
数据库SSL加密是一种通过SSL/TLS协议对数据库连接进行加密的安全措施。SSL(Secure Sockets Layer)是一种加密通信协议,用于保护网络通信的安全性。
数据库SSL加密采用了客户端-服务器模型,确保在数据库连接过程中的数据传输的机密性和完整性。以下是数据库SSL加密的工作原理:
- 握手阶段:在连接建立的初始阶段,客户端和服务器之间会进行握手操作。客户端发送一个SSL握手请求给服务器,服务器则回复一个SSL握手回应。
- 密钥交换:在握手过程中,客户端和服务器会协商并交换加密通信所需的密钥和证书。密钥交换的过程通常采用非对称加密算法,如RSA。通过该过程,客户端和服务器都会生成一个共享的会话密钥,用于后续数据的加密和解密。
- 数据加密:一旦握手和密钥交换完成,客户端和服务器之间的数据传输将使用会话密钥进行对称加密。数据库中的数据在传输过程中会被加密,同时也能够保护数据的完整性,防止被篡改。
非SSL加密实例传输数据时,通过抓包以后得到的数据可以直接解码。数据的传输走原始的PGSQL协议,该协议没有加密,是一种明文协议。
例如以下场景,用户希望创建一张表 create table a 这样的结果在链路上抓包以后可以反编译出原始的查询内容。
而如果在控制台打开了SSL密功能,数据的传输会升级为TLSv1.2协议,该协议是一种加密协议,会对传输的数据进行加密,这样中间节点就无法通过解包获取到查询的内容。
数据库SSL加密提供了以下优势和安全保障:
- 数据机密性:通过SSL加密,数据库中传输的数据会被加密,防止未经授权的用户或攻击者窃取敏感数据。即使在数据传输过程中,数据被截获,也无法解密其中的内容。
- 数据完整性:SSL加密还能够保护数据的完整性。数据在传输过程中,会使用消息认证码(MAC)等技术验证数据的完整性,从而防止数据被篡改。
- 身份验证:SSL加密使用数字证书验证服务器的身份,确保客户端连接到的服务器是合法和可信任的。客户端可以通过验证服务器的证书,确定服务器的身份,防止中间人攻击和欺骗。
数据库SSL加密通过SSL/TLS协议对数据库连接进行加密,保护了数据的机密性、完整性和身份认证。通过使用数据库SSL加密,可以提高数据库连接的安全性,防止数据在传输过程中被窃取或篡改。
应用层安全
用户访问控制
用户访问控制是一种安全机制,用于控制和管理用户对系统、应用程序或网络资源的访问权限。它是信息安全领域的重要组成部分,旨在确保只有授权用户能够访问和操作敏感信息或资源,以保护系统免受未经授权的访问和恶意活动的威胁。用户访问控制的主要目标是实施最小权限原则,即用户只被授予完成其工作所需的最低权限。这样可以减少潜在的风险和威胁,并防止用户滥用权限或访问未授权的资源。
对于云原生数据库来说,需要一个中介角色,可以做一些管理工作,例如创建数据库,赋予一些基本权限,创建发布等等,但是又必须严格限制其权限,原则上任何可能提权/操作系统的行为都是高危行为。基于以上考虑,PolarDB 适配了一套ACL权限体系,管理数据库中的所有操作类型,比如创建插件即是一种操作。并且我们把这个中介角色称之为高权限用户。
我们通过高权限用户实现了数据库权限的隔离,是保护系统和数据安全的重要措施。它确保只有授权用户能够访问敏感信息或资源,并提供了一种灵活且可管理的方式来管理用户权限和访问权限。
透明加密
TDE通过在数据库层执行静止数据加密,阻止可能的攻击者绕过数据库直接从存储中读取敏感信息。经过数据库身份验证的应用和用户可以继续透明地访问应用数据(不需要更改应用代码或配置),而尝试读取表空间文件中的敏感数据的OS用户以及尝试读取磁盘或备份信息的不法之徒将不允许访问明文数据。
PolarDB PostgreSQL版(兼容Oracle) TDE加密使用的密钥由密钥管理服务(KMS)产生和管理,PolarDB不提供加密所需的密钥和证书。您不仅可以使用阿里云自动生成的密钥,也可以使用自带的密钥材料生成数据密钥,然后授权PolarDB使用。
使用文档:https://help.aliyun.com/zh/polardb/polardb-for-oracle/configure-tde-2?spm=a2c4g.11186623.0.i16
全加密数据库
阿里云具有全球首个基于可信硬件的全加密数据库云服务,PolarDB PostgreSQL版(兼容Oracle)提供全加密数据库功能,数据在用户侧加密后传入数据库管理系统,数据明文对于数据库服务端不可见,实现了端到端的全程加密的数据强安全性。
全加密云数据库是达摩院数据库与存储实验室的自研产品,可以杜绝数据库应用服务端数据拥有者以外的任何人接触到用户的明文数据,提高数据管理的强安全性和隐私性。
全加密数据库(EncDB)- 提供端到端(客户端到数据库服务端)全程加密的高性能数据库服务,兼具传统数据库通用能力与隐私数据安全保护能力;其信任根基于TEE可信执行环境与密码学技术,用户像操作普通数据库一样简洁易用,且仅用户自身可见数据明文。
- 应用服务面向数据库服务的数据加密:数据拥有者即为应用服务方,防止数据库服务及其运维人员接触到任何应用数据;
- 终端客户面向应用服务的数据加密 :面向终端场景中,部分数据(如健康数据等)拥有者为客户,应用服务仅提供数据管理和分析的能力,不能接触私人明文数据。
另外,全加密数据库,可以分成依赖硬件的内存全加密,和不依赖硬件的客户端加密,PolarDB PG计划在2023年11月推出不依赖硬件的全加密数据库方案。
行级访问控制
行级访问控制是一种数据库安全机制,用于限制用户对数据库中行级数据的访问权限。通过行级别安全功能,数据库管理员可以定义和控制用户对表、视图或查询结果中特定行的访问权限,从而提高数据的安全性和保密性。行级访问控制的优点之一是它允许管理员对数据进行细粒度的控制。可以有效地保护敏感数据。通过限制用户对数据的访问权限,管理员可以防止未经授权的用户查看、修改或删除敏感数据。这对于处理个人身份信息、财务数据或其他机密信息的组织尤为重要。
以上图为例,对于同一张表,加上行级访问控制后,每个人只能查询到自己应该能查到自己应该看到的数据。
行级访问控制是一种强大的数据库安全机制,它通过控制用户对数据库中行级数据的访问权限,提高了数据的安全性和保密性。它可以细粒度地控制用户对数据的操作,并有效地保护敏感数据。
使用文档:https://help.aliyun.com/zh/polardb/polardb-for-oracle/dbms-rls-6?spm=a2c4g.11186623.0.i25
数据脱敏
数据脱敏是一种数据保护技术,通过对敏感数据进行处理,将其中的敏感信息替换或删除,以保护数据的隐私和安全。数据脱敏通常在数据使用、共享或存储之前进行,以减少敏感数据的泄露风险。
数据脱敏的主要目标是保护个人身份信息(PII)、财务数据、医疗记录等敏感数据。
以上图为例,Alice可以像普通表一样读到真实的数据,而Bob只能读到脱敏后的数据。
数据脱敏需要根据特定的需求和数据类型来选择适当的方法。在实施数据脱敏之前,需要进行充分的数据分类和风险评估,以确定哪些数据是敏感的,哪些数据需要脱敏保护。此外,数据脱敏也需要遵守适用的法规和合规要求,以确保数据隐私和安全的保护。
使用文档:(注意该功能只有PolarDB for PG(Oracle兼容性版本) 提供) https://help.aliyun.com/zh/polardb/polardb-for-oracle/dbms-redact?spm=a2c4g.11186623.0.i28
主动防御
权限审计&行为审计
权限审计是一种安全控制机制,用于监视和记录用户对系统、应用程序或网络资源的访问权限和操作行为。它旨在确保用户的权限使用符合规定,减少潜在的风险和滥用风险,并提供对系统的可追溯性和合规性的验证。
权限审计通常包括以下几个关键方面:
- 记录权限分配:权限审计记录用户被授予的访问权限和权限级别。这包括用户角色、群组或特定资源的访问权限。管理员可以通过审计记录来验证权限分配是否符合安全策略和最小权限原则。
- 监视访问活动:权限审计监视用户的访问活动,记录用户对系统或资源的访问、修改或操作行为。这包括登录时间、访问时间、访问的资源、操作类型等信息。监视访问活动可以及时发现潜在的安全威胁、异常行为或违规操作。
- 分析和报告:权限审计可以对记录的访问活动进行分析和报告,以发现异常行为、安全漏洞或违规操作。管理员可以利用审计报告来识别安全风险、改进权限分配策略,并满足合规要求。
- 建立警报和通知机制:权限审计可以根据预设的规则或策略,设置警报和通知机制,以便在发现异常或违规行为时及时通知管理员或安全团队。这有助于及时采取措施来保护系统和数据的安全。
阿里云后台会通过定时任务来扫描全网实例的关键权限信息,例如超级管理员账号,并对于不符合预期的行为进行告警,并第一时间人工介入处理。权限和行为的审计流程是保障云上数据库安全中主管重要的一步,属于阿里云主动防御体系的一环。
权限审计的好处包括:
- 增强安全性:通过监控和记录用户访问权限和操作行为,可以预防和识别潜在的安全威胁、滥用风险和违规行为。
- 提供追溯性:权限审计记录的详细信息可以用于追溯用户的操作行为,帮助确定责任和解决问题。
- 合规性验证:审计记录和报告可以用于验证系统的合规性,以符合法规和合规要求。
权限审计是一种重要的安全控制机制,用于监视和记录用户的访问权限和操作行为,以确保合规性、减少安全风险和滥用风险,并提供对系统的可追溯性。
故障介入
多可用区灾备
多可用区灾备是一种用于保障系统和应用程序高可用性的灾备方案。它通过将系统和应用程序部署在不同的可用区(Availability Zone)中,以提供容错性和故障恢复能力。可用区是云服务提供商在同一地理区域内的独立数据中心,每个可用区都具有独立的电力供应、网络连接和硬件设备。
多可用区灾备的主要原理是将系统的关键组件和数据复制到不同的可用区中,以实现故障隔离和冗余。当一个可用区发生故障或不可用时,系统可以无缝地切换到另一个可用区,以保持服务的连续性。
实施多可用区灾备通常涉及以下几个关键步骤:
- 复制数据:将关键数据复制到多个可用区中。这可以通过数据备份、复制或同步机制来实现,以确保数据在不同可用区之间的一致性。
- 部署多个实例:将系统和应用程序的关键组件部署到不同的可用区中。这样,当一个可用区不可用时,其他可用区中的实例可以接管服务。
- 监控和自动化:实施监控和自动化机制,以实时监测可用区的状态,当一个可用区发生故障时,自动触发故障切换或故障恢复机制,以保障系统的连续性。
多可用区灾备的好处包括:
- 提高可用性:通过将系统和应用程序部署在多个可用区中,可以减少单点故障,提高系统的可用性和容错性。
- 提供快速故障恢复:当一个可用区发生故障时,系统可以立即切换到其他可用区,以实现快速故障恢复,减少服务中断的时间。
- 保证业务连续性:多可用区灾备可以确保系统在面对自然灾害、硬件故障或其他意外事件时,仍能提供持续的服务,保证业务连续性。
- 支持地理多样性:通过将系统部署在不同地理位置的可用区中,可以满足地理多样性的需求,提供更好的用户体验和服务范围。
多可用区灾备是一种重要的灾备方案,通过将系统和应用程序部署在不同的可用区中,实现故障隔离和冗余,以提供高可用性和业务连续性。它是保障系统和数据安全的重要措施,广泛应用于云计算和分布式系统中。PolarDB 数据库的standby节点天然就是为灾备而存在的节点,在出现不可抗力事件时,单可用区的故障会引发数据库的跨可用区切换,保障数据库能够应对紧急事件的影响。
自动备份恢复
自动备份恢复是一种自动化的数据保护机制,用于定期备份关键数据和系统设置,并在需要时恢复到先前的状态。它旨在减少人工错误和减少数据丢失的风险,提供数据的可靠性和可恢复性。
自动备份恢复的主要原理是通过预定的计划和自动化工具来执行数据备份和恢复操作,以确保数据的完整性和可用性。它通常包括以下几个关键步骤:
- 预定备份计划:根据需求和业务要求,制定备份计划,包括备份频率、备份的数据和目标位置等。可以选择全量备份或增量备份,根据数据的重要性和更新频率进行调整。
- 数据备份:根据预定的计划,自动执行数据备份操作。这可以是将数据复制到本地存储设备(如硬盘、磁带等),也可以是将数据备份到云存储服务(如阿里云OSS、AWS S3、Azure Blob存储等)。
- 数据恢复:当发生数据损坏、丢失或系统故障时,自动备份恢复机制可以根据需要恢复数据到先前的状态。恢复可以是完全恢复,还原数据到最近一次的备份点,也可以是选择性恢复,只还原特定的文件或数据。
- 监视和报告:自动备份恢复机制可以提供监视和报告功能,监控备份操作的执行情况和数据恢复的状态。这可以帮助管理员及时发现备份故障、数据完整性问题或备份策略的改进需求。
自动备份恢复的好处包括:
- 数据可靠性:通过自动化备份操作,可以减少人工错误和遗漏,提高数据的可靠性和完整性。
- 减少数据丢失风险:定期备份可以减少数据丢失的风险,使得在数据损坏或灾难性事件发生时能够快速恢复到先前的状态。
- 节省时间和成本:自动化备份和恢复操作可以节省管理员的时间和精力,减少手动操作的成本和风险。
自动备份恢复是一种重要的数据保护机制,通过自动执行备份和恢复操作,确保数据的可靠性和可恢复性。它是保护数据安全和业务连续性的关键措施。阿里云PolarDB有成熟的备份恢复机制,可以帮助用户找到备份周期中的数据,对于防范恶意勒索事件具有重要意义。
安全运维
安全补丁升级
定期的补丁修复是一种常见的安全措施,旨在修复操作系统、应用程序和其他软件中存在的漏洞和安全漏洞。补丁是由软件供应商发布的更新程序,旨在修复已知的漏洞、安全问题和错误,以提高系统的安全性和稳定性。
定期的补丁修复通常包括以下几个关键步骤:
- 漏洞评估:定期评估操作数据库漏洞和安全威胁。这可以通过订阅安全公告、参考漏洞数据库、使用漏洞扫描工具等方式来进行。
- 补丁收集:根据漏洞评估结果,收集适用于系统和软件的相关补丁。这些补丁通常由软件供应商提供,并可以通过自动更新功能、官方网站或第三方渠道获得。
- 测试和验证:在应用补丁之前,进行适当的测试和验证,以确保补丁可以正常工作并不会对系统的稳定性和功能造成负面影响。
- 补丁应用:根据预定的计划,应用补丁到系统和软件中。这可以通过自动化的更新工具、集中式管理平台或手动操作来完成。
- 监视和验证:在补丁应用后,进行监视和验证,确保补丁的成功应用和系统的正常运行。这可以通过日志记录、监控工具和用户反馈来实现。
定期的补丁修复的好处包括:
- 提高系统安全性:补丁修复可以修复已知的漏洞和安全问题,减少系统受到恶意攻击的风险。
- 提升系统稳定性:修复软件中的错误和故障,提高系统的稳定性和性能。
- 保护数据安全:补丁修复可以修复与数据安全相关的漏洞,保护敏感数据不受未经授权的访问和泄漏。
- 遵守合规要求:定期进行补丁修复可以满足许多合规要求,确保系统和数据的合规性。
定期的补丁修复是一种重要的安全措施,用于修复系统和软件中的漏洞和安全问题。它可以提高系统的安全性、稳定性和合规性,减少潜在的安全风险和数据泄漏的风险。定期补丁修复通常是信息安全管理中不可或缺的一部分。阿里云PolarDB的每月小版本升级都会维护当前时间周期的缺陷,对于紧急的缺陷会紧急发布小版本修复,保障数据库免受热点攻击事件的影响。
作者:佑熙 琼台