MongoDB Security Documentation
安全
MongoDB提供了多种特性,如 authentication,access control,encryption,来保护你的MongoDB的部署。
一些关键的安全特性:
Authentication | Authorization | TLS/SSL | Enterprise Only |
---|---|---|---|
认证 SCRAM-SHA-1 | Role-Based Access Control Enable Auth Manage User and Roles | Transport Encryption Configure mongod and mongos for TLS/SSL TLS/SSL Configuration for Clients | Keyberos Authentication LDAP Proxy Authentication Encryption at Rest Auditing |
Authentication:认证; Authorization:授权; Kerberos:一种安全认证系统; Auditing:审计
安全检查列表
MongoDB同样提供了 推荐动作列表的安全检查列表 来保护MongoDB的部署。
Enable Access Control and Enforce Authentication
允许接入控制和指定认证机制。 你可以使用默认的 MongoDB 认证机制或一个现有的外部框架。 认证要求所有的客户端和服务端在连接到系统之前提供合法的证书。 在集群部署中,为每个MOngoDB服务器启用身份认证。
Configure Role-Based Access Control
首先创建一个administrator用户,之后创建其他用户。 为访问系统的每个人和应用程序创建一个唯一的 MongoDB-user。
Encrypt Communication
为所有传入和传出的连接的 MongoDB配置TLS/SSL。 使用TLS/SSL来加密MongoDB客户端和组件或所有应用程序 与 MongoDB之间的通信。
Encrypt and Protect Data
从MongoDB企业3.2开始,WiredTiger 存储引擎的本地加密
就能够配置在存储层加密数据。
如果未使用WiredTiger的加密,应该在每个主机上使用文件系统、设备或物理加密对MondoDB数据进行加密。使用文件系统权限保护MongoDB数据。MongoDB数据包含了 数据文件,配置文件,监测文件和关键文件。
Limit Network Exposure
确保MongoDB运行在一个信任的网络环境中,并且限制MongoDB实例监听传入连接的接口。只允许受信任的客户端访问MongoDB实例可用的网络接口和端口。
Exposure:曝光
Audit System Activity
追踪访问和更改数据库配置和数据,这些监测记录进行取证分析,并允许管理员检查适当的控制。
Run MongoDB with a Dedicated User
使用一个专用的操作系统用户账户来运行MongoDB进程,确保这个账户有权限去访问数据但是没有不必要的权限。
dedicated:专用的
Run MongoDB with Secure Configuration Options
MongoDB支持对某些服务器端操作执行JS代码,如果你没有使用这些操作,你可以在服务器上禁用脚本选项。
保证输入验证启用,MongoDB通过默认的wireObjecCheck设置启用输入验证。这确保了由MongoDB实例存储的所有文档都是有效的BSON。
Request a Security Technical Implementation Guide
安全技术实现指南(Security Technical Implementation Guide ,简称STIG))包含了部署的安全指导方针。
Consider Security Standards Compliance
对于要求HIPAA或pcidss符合性的应用程序,请参考 MongoDB Security Reference Architecture去了解更多关于如何使用关键的安全功能来构建兼容的应用程序基础设施。
Compliance:符合性
认证
虽然认证和授权关系非常紧密,认证和授权是两个不同的概念。
认证 是用来识别用户的身份;
授权 控制已经认证的用户使用资源和行为的权限;