DEV Community

Cover image for 💻 入门: MongoDB 集群基础设施和加密安全 💻
Danny Chan for MongoDB Builders

Posted on

💻 入门: MongoDB 集群基础设施和加密安全 💻

🔒 管理数据安全的考虑因素:

  • 合规性和隐私法规 🔍
  • 惩罚: 高管完全知道存储和管理数据的成本 💰
  • 可扩展性: 未来增长需求 🚀
  • 遗留基础设施: 轻松满足数据法规要求 👨‍💻
  • 灵活性: 满足法规要求, 在广度和复杂性上增长 🧠
  • 成本: 手动过程, 不合规 💸


🌍 分片集群区域:

  • 分片部署大型数据集 📊
  • 根据分片键创建分片数据区域 🗺️


🔐 网络隔离和访问:

  • 虚拟私有云 (VPC) 🛡️
  • 隔离数据, 系统 🔒
  • 每个区域高度可用 ↔️
  • 每个数据分片将有多个节点 💻
  • 自动透明故障转移, 实现零停机 ⚠️


🌐 多云集群:

  • AWS, Microsoft Azure, Google Cloud 🌍
  • 为每个文档定义地理位置 📍
  • 将相关数据保持在靠近终端用户的位置, 满足法规合规性 🌍


🔒 IP 白名单:

  • 允许指定访问的 IP 地址范围 🔐
  • 对数据的细粒度控制 🔍


🔒 可查询加密:

  • 从客户端加密敏感数据, 以完全随机的形式存储 🔐
  • 不牺牲性能 🚀


🌍 MongoDB Atlas 全球集群:

  • 控制数据部署到特定地理区域, 满足数据策略和合规性要求 🌍


🔒 客户端字段级加密:

  • 在传输、静止和使用时保护数据 🔒
  • 数据库从未看到明文, 但数据仍可查询 🔍
  • 隐私法规 (GDPR, CCPA, PII) 🌍
  • 使数据不可读, 不可恢复: 在内存、静止状态、备份和日志中 🔒



🔒 KMIP: 加密操作 🔒

  • 定义了客户端和服务器之间的密钥管理操作和数据交换方式 🔑
  • 支持任何 KMIP 支持的密钥提供商 (例如 AWS、Google Cloud、Azure) 🌍
  • 允许使用自定义的内部密钥管理软件 💻


🔒 加密数据示例: 🔒

  1. MongoDB 驱动程序从 KMIP 密钥提供商 (例如 AWS) 请求密钥 🔑
  2. 驱动程序使用该密钥加密 SSN 号码 🔒
  3. 驱动程序将加密的 SSN 号码作为密文提交查询到数据库 🔒
  4. 数据库将加密的查询结果返回给驱动程序 🔒
  5. 驱动程序使用密钥解密查询结果 🔓


🔒 加密数据的优势: 🔒

  • 减少未经授权访问的风险 🚫
  • 减少敏感数据泄露的风险 🚫
  • 数据在离开应用程序之前就已加密 🔒
  • 保护网络上、数据库内存中、静态存储和备份中以及系统日志中的数据 🔒



🌍 通过分片集群分区数据位置: 🌍



挑战:

  • CPU 和/或内存过载 🔥
  • 无法响应请求流量 🚦
  • 数据库响应时间增加 🕰️
  • 存储用尽 💽
  • 网络接口过载 🌐


解决方案: 分片 🔧

  • 水平扩展 🚀
  • 增加数据库节点 (副本) 以分担请求流量 💻
  • 在不同区域的节点上分布, 实现集群均衡 🌍
  • 根据分片键创建分片数据区域 🗺️
  • 将每个区域与集群中的一个或多个分片关联 🔗


分片细节:

  • 如果额外的数据库节点宕机, 其他节点 (副本) 仍可提供读写操作 🔁
  • 如果额外的数据库节点宕机, 其他节点 (副本) 只能提供读操作 📖



Reference:

https://www.mongodb.com/library/mainframe-modernization/reference-architecture-mainframe-modernization?lb-mode=overlay
Reference Architecture: Mainframe Modernization

https://www.mongodb.com/solutions/solutions-library
Solutions Library


Editor

Image description

Danny Chan, specialty of FSI and Serverless

Image description

Kenny Chan, specialty of FSI and Machine Learning

Top comments (0)