Azure Cosmos DB for MongoDB vCore 中的数据库安全性概述

适用对象: MongoDB vCore

本文介绍了 Azure Cosmos DB for MongoDB vCore 提供的数据库安全最佳做法以及关键功能,可帮助你防范、检测和应对数据库入侵。

Azure Cosmos DB for MongoDB vCore 安全性中的新增功能

现在,静态加密已可用于大多数 Azure 区域 Azure Cosmos DB for MongoDB vCore 中存储的文档和备份。 对于这些区域中的新客户和现有客户,会自动应用静态加密。 无需配置任何内容。 可获得与以前(即知道使用静态加密可确保数据安全之前)一样的出色延迟、吞吐量、可用性和功能。 Azure Cosmos DB for MongoDB vCore 帐户中存储的数据将使用服务托管密钥通过 Microsoft 管理的密钥进行自动无缝加密。

如何保护我的数据库

数据安全性的责任由你、客户和数据库提供程序共同分担。 根据所选的数据库提供程序,要承担的责任大小将有所不同。 如果选择本地解决方案,则从终结点保护到硬件物理安全性的所有工作都由你负责 - 这不是一个轻松的任务。 如果选择 Azure Cosmos DB 等 PaaS 云数据库提供程序,要考虑的问题会明显减少。 下图摘自 Microsoft 的 Shared Responsibilities for Cloud Computing(云计算的责任分担)白皮书,显示了使用 Azure Cosmos DB 等 PaaS 提供程序时,责任会得到怎样的减轻。

客户和数据库提供程序责任的屏幕截图。

上图显示了高层级的云安全组件,但是,对于数据库解决方案,需要考虑到哪些具体的事项呢? 如何对不同的解决方案进行比较?

建议根据以下要求查检表来比较数据库系统:

  • 网络安全和防火墙设置
  • 用户身份验证和精细用户控制
  • 能够全局复制数据来应对区域性故障
  • 能够从一个数据中心故障转移到另一个数据中心
  • 在数据中心内执行本地数据复制
  • 自动数据备份
  • 从备份还原已删除的数据
  • 保护和隔离敏感数据
  • 监视攻击
  • 响应攻击
  • 能够地域隔离数据以遵守数据监管限制
  • 对受保护数据中心内的服务器实施物理保护
  • 认证

以下要求看似理所当然,但最近发生的大规模数据库入侵提醒我们这些要求尽管很简单,但却至关重要:

  • 让修补的服务器保持最新状态
  • HTTPS(默认)/TLS 加密
  • 使用强密码的管理帐户

Azure Cosmos DB 如何保护数据库

Azure Cosmos DB for MongoDB vCore 可无缝满足每项安全要求。

让我们深入分析其中的每项要求。

安全要求 Azure Cosmos DB 的安全方案
网络安全性 使用 IP 防火墙是用于保护数据库的第一个保护层。 Azure Cosmos DB for MongoDB vCore 支持使用基于 IP 的策略驱动访问控制来提供入站防火墙支持。 基于 IP 的访问控制类似于传统数据库系统使用的防火墙规则。 但它们是经过扩展的,以确保只能通过获得批准的一组计算机或云服务访问 Azure Cosmos DB for MongoDB vCore 群集。

使用 Azure Cosmos DB for MongoDB vCore,可以启用特定的 IP 地址 (168.61.48.0)、IP 范围 (168.61.48.0/8) 以及 IP 和范围的组合。

Azure Cosmos DB for MongoDB vCore 会阻止从此允许列表之外的计算机发出的所有请求。 从获批准计算机和云服务发出的请求必须完成身份验证过程才能获得资源的访问控制权。

本地复制 即使在单个数据中心内,Azure Cosmos DB for MongoDB vCore 也会使用 LRS 复制数据。 启用了 HA 的群集在主节点和辅助节点之间还有另一层复制,因此可以保证 99.995% 的可用性 SLA
自动联机备份 Azure Cosmos DB for MongoDB vCore 数据库会定期备份并存储在异地冗余存储中。
还原已删除的数据 可以使用自动联机备份恢复意外删除事件后最多约 7 天的数据。
保护和隔离敏感数据 “新增功能”中列出的区域中的所有数据现已处于静态加密状态。
监视攻击 使用审核日志和活动日志,可以监视帐户中的正常和异常活动。 可以查看对资源执行的操作。 此数据包括:操作是谁发起的、操作是何时发生的、操作的状态,等等。
响应攻击 当你联系 Azure 支持来报告潜在的攻击行为后,我们会启动一个五步事件响应过程。 此五步过程的目标是恢复正常的服务安全性和操作。 此五步过程会在检测到问题并启动调查后,尽快将服务恢复正常。
受保护的设施 Azure Cosmos DB for MongoDB vCore 中的数据存储在 Azure 的受保护数据中心内的 SSD 上。
HTTPS/SSL/TLS 加密 Azure Cosmos DB for MongoDB vCore 支持最高为 1.2 的 TLS 级别(包括)。
可以在服务器端强制实施最低 TLS 级别。
传输中加密 始终强制执行加密(SSL/TLS),如果尝试在无加密的情况下连接到群集,尝试会失败。 仅接受通过 MongoDB 客户端进行的连接,并且始终强制执行加密。 每当将数据写入 Azure Cosmos DB for MongoDB vCore 时,都使用传输层安全性 1.2 在传输过程中加密数据。
静态加密 Azure Cosmos DB for MongoDB vCore 使用 FIPS 140-2 验证的加密模块对静态数据进行存储加密。 数据(包括所有备份)在磁盘上加密,包括临时文件。 该服务使用包含在 Azure 存储加密中的 AES 256 位密码,并且密钥由系统进行管理。 存储加密始终处于启用状态,无法禁用。
修补的服务器 Azure Cosmos DB for MongoDB vCore 消除了管理和修补群集的需求,因为这些工作会自动完成。
使用强密码的管理帐户 很难相信我们甚至需要提到这个要求,但与我们的一些竞争对手不同,在 Azure Cosmos DB for MongoDB vCore 中,不可能存在没有密码的管理帐户。

默认情况下,已融入通过基于 TLS 的身份验证实现的安全性。

以下屏幕截图显示如何使用审核日志和活动日志监视帐户:Azure Cosmos DB 活动日志的屏幕截图。

网络安全选项

本部分概述了可为群集配置的各种网络安全选项。

无访问权限

如果未启用公共或专用访问,新建的群集默认使用 不允许访问 选项。 在这种情况下,任何计算机(无论位于 Azure 内部或外部)都无法连接到数据库节点。

使用防火墙进行公共 IP 访问

在公共访问选项中,将公共 IP 地址分配给群集,对群集的访问权限受防火墙保护。

防火墙概述

Azure Cosmos DB for MongoDB vCore 使用服务器级防火墙阻止对群集的所有访问,直到你指定哪些计算机具有权限。 防火墙基于每个请求的起始 IP 地址授予对群集的访问权限。 要配置防火墙,请创建防火墙规则,以指定可接受的 IP 地址的范围。

防火墙规则允许客户端访问群集及其包含的所有数据库。 可以使用 Azure 门户或使用 Azure CLI 等 Azure 工具以编程方式配置服务器级防火墙规则。

默认情况下,防火墙阻止对群集的所有访问。 要从另一台计算机开始使用群集,需要指定一个或多个服务器级防火墙规则以允许访问群集。 使用防火墙规则指定要允许的来自 Internet 的 IP 地址范围。 防火墙规则不会影响对 Azure 门户网站本身的访问。 来自 Internet 和 Azure 的连接尝试必须先穿过防火墙,然后才能访问数据库。 除了防火墙规则之外,专用链接访问还可用于 Azure Cosmos DB for MongoDB vCore 群集的专用 IP。

后续步骤