Azure Cosmos DB 中的安全注意事项

数据安全性的责任由你、客户和数据库提供程序共同分担。 根据所选的数据库提供程序,要承担的责任大小将有所不同。 如果选择本地解决方案,则从终结点保护到硬件物理安全性的所有工作都由你负责 - 这并不容易。 如果选择 Azure Cosmos DB 等平台即服务 (PaaS) 云数据库提供程序,要考虑的问题会明显减少。

有关详细信息,请参阅云中责任分担

清单

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

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

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

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

Azure Cosmos DB 如何保护我的数据库?

默认情况下,Azure Cosmos DB 大多使用内置于服务和 Azure 的许多功能来保护数据库。

安全要求 Azure Cosmos DB 的安全方案
网络安全性 使用 IP 防火墙是用于保护数据库的第一个保护层。 Azure Cosmos DB 支持使用基于 IP 的策略驱动访问控制来提供入站防火墙支持。 基于 IP 的访问控制类似于传统数据库系统使用的防火墙规则。 但是,它们已进行扩展,因此只能从一组已批准的计算机或云服务访问 Azure Cosmos DB 数据库帐户。 有关详细信息,请参院 Azure Cosmos DB 防火墙支持。 使用 Azure Cosmos DB 可以启用特定的 IP 地址 (168.61.48.0)、IP 范围 (168.61.48.0/8) 以及 IP 和范围的组合。 Azure Cosmos DB 会阻止所有来自此许可列表外的计算机的请求。 从获批准计算机和云服务发出的请求必须完成身份验证过程才能获得资源的访问控制权。 可以使用虚拟网络服务标记实现网络隔离,并保护 Azure Cosmos DB 资源不受常规 Internet 影响。 创建安全规则时,请使用服务标记代替特定 IP 地址。 通过在规则的相应“源”或“目标”字段中指定服务标记名(例如 AzureCosmosDB),可以允许或拒绝相应服务的流量。
授权 Azure Cosmos DB 使用基于哈希的消息身份验证代码 (HMAC) 进行授权。 每个请求将使用机密帐户密钥进行哈希处理,后续的 base-64 编码哈希将连同每个调用发送到 Azure Cosmos DB。 要验证请求,Azure Cosmos DB 需使用正确的机密密钥和属性生成哈希值,然后将该值与请求中的值进行比较。 如果两个值匹配,则将成功授权此操作并处理请求。 如果两个值不匹配,则授权失败,请求被拒。 可以使用主键,允许对资源(如文档)进行精细访问。 有关详细信息,请参阅保护对 Azure Cosmos DB 资源的访问
用户和权限 通过使用帐户的主密钥,可为每个数据库创建用户资源和权限资源。 资源令牌与数据库中的权限相关联,确定用户是否对数据库中的应用程序资源拥有访问权限(读写、只读或无访问权限)。 应用程序资源包括容器、文档、附件、存储过程、触发器和用户定义的函数 (UDF)。 然后,在身份验证期间,使用资源令牌来允许或拒绝访问资源。 有关详细信息,请参阅保护对 Azure Cosmos DB 资源的访问
Active Directory 集成(Azure 基于角色的访问控制) 还可以在 Azure 门户中通过“访问控制(标识和访问管理)”来提供或限制对 Azure Cosmos DB 帐户、数据库、容器和套餐(吞吐量)的访问权限。 IAM 提供基于角色的访问控制并与 Active Directory 集成。 对于个人和组,可使用内置角色或自定义角色。
多区域复制 Azure Cosmos DB 提供统包式多区域分发。可以统包方式将数据复制到 Azure 的任何一个跨中国的数据中心。 多区域复制可以实现全局缩放,以较低的延迟访问全中国的数据。 从安全角度来看,多区域复制可确保数据受到保护,防范区域性故障。 若要了解详细信息,请参阅在多个区域分配数据
区域性故障转移 如果将数据复制到多个数据中心,当区域数据中心脱机时,Azure Cosmos DB 会自动滚动切换操作。 可以使用数据复制到的区域创建故障转移区域的优先级列表。 有关详细信息,请参阅 Azure Cosmos DB 中的区域故障转移
本地复制 即使是在单个数据中心内,Azure Cosmos DB 也会自动复制数据来实现高可用性,并允许选择一致性级别。 此复制可保证为所有单区域帐户和具有松散一致性的所有多区域帐户提供 99.99% 的可用性服务级别协议 (SLA),为所有多区域数据库帐户提供 99.999% 的读取可用性。
自动联机备份 Azure Cosmos DB 数据库定期备份并存储在异地冗余的存储中。 有关详细信息,请参阅 Azure Cosmos DB 的自动联机备份和还原
还原已删除的数据 可以使用自动联机备份来恢复大约 30 天内意外删除的数据。 有关详细信息,请参阅 Azure Cosmos DB 的自动联机备份和还原
保护和隔离敏感数据 “新增功能”中列出的区域中的所有数据现已处于静态加密状态。 可将个人数据和其他机密数据隔离到特定的容器,并限制为只能由特定的用户进行读写或只读访问。
监视攻击 使用审核日志和活动日志,可以监视帐户中的正常和异常活动。 可以查看对资源执行的操作。 此类数据包括操作发起人、操作发生时间、操作的状态等等。
响应攻击 与 Azure 支持部门联系以报告潜在攻击后,将开始一个五步事件响应过程。 目标是恢复正常的服务安全性和操作。 此过程会在检测到问题并启动调查后,尽快将服务恢复正常。 若要了解更多信息,请参阅云中的 Azure 安全响应
地域隔离 Azure Cosmos DB 确保符合主权区域(例如中国)的数据治理要求。
受保护的设施 Azure Cosmos DB 中的数据存储在 Azure 受保护数据中心内的固态硬盘上。
HTTPS 与 TLS 加密 与 Azure Cosmos DB 建立的所有连接都支持 HTTPS。 Azure Cosmos DB 支持最高 1.2(包括)的传输层安全性 (TLS) 级别。 可以在服务器端强制实施最低 TLS 级别。 为此,请参阅自助服务指南在 Azure Cosmos DB 中自助强制实施最低 TLS 版本
静态加密 Azure Cosmos DB 中存储的所有数据都进行静态加密。 在 Azure Cosmos DB 静态加密中了解详细信息。
修补的服务器 作为一种托管数据库,Azure Cosmos DB 会代你自动修补和管理服务器,而无需手动执行维护任务。
使用强密码的管理帐户 Azure Cosmos DB 中不存在没有密码的管理帐户。 默认融入了基于 TLS 和 HMAC 机密的身份验证安全性。
安全和数据保护认证 有关最新的认证列表,请参阅 Azure 合规性和包含所有 Azure 认证(包括 Azure Cosmos DB)的最新 Azure 合规性文档