为 X.509 身份验证配置 MongoDB Agent
在此页面上
Ops Manager 允许您配置所有客户端(包括 Ops Manager 代理)用于连接到 MongoDB 部署的身份验证机制。 您可以为每个项目启用多种身份验证机制,但必须为代理仅选择一种机制。
MongoDB支持 X.509 证书 身份验证,用于安全的 TLS 连接。X. 509客户端身份验证允许客户端使用证书而不是用户名和密码向服务器进行身份验证。
注意
通过自动化,Ops Manager 托管 MongoDB Agent 身份验证。要了解有关身份验证的更多信息,请参阅为 Ops Manager 项目启用 x.509 身份验证。
Considerations
传输层安全 性的完整描述 , 公钥基础设施 , X。509 证书和 证书颁发机构 超出了本教程的范围。本教程假定您事先了解 TLS并可以访问有效的 X. 509证书。
先决条件
要为MongoDB Ops Manager启用 X.509 身份验证,您必须获取由单个证书颁发机构 (CA) 生成和签名的有效TLS证书。 要了解有关证书要求的更多信息,请参阅客户端 x。 MongoDB 手册中的509证书。
X.509 客户端证书身份验证要求您为部署启用和配置TLS 。
步骤
本教程假定您已将 MongoDB 部署配置为使用 X. 509证书身份验证和TLS 。 如果还没有这样做,请参阅“使用 X. 509证书对客户端进行身份验证”和“为 TLS 配置 mongod 和 mongos”教程。
从 X.509 创建 MongoDB 用户 subject
当自动化被激活时,Ops Manager 管理 MongoDB Agent 身份验证。
要为 MongoDB Agent 配置 X.509,请参阅为 Ops Manager 项目启用 x.509 客户端证书身份验证。
要使MongoDB Agent连接到MongoDB部署,必须在部署上创建与客户端证书的 subject
值相对应的MongoDB用户。
在何处创建MongoDB用户取决于您是否使用LDAP授权。
如果在部署中使用LDAP授权,则必须在MongoDB服务器上为创建LDAP用户和LDAPMongoDB AgentLDAP群组。 创建LDAP用户和群组后,将LDAP群组映射到部署的admin
数据库中的MongoDB角色。
警告
使用LDAP授权时,请勿在$external
数据库中创建任何MongoDB用户。 如果$external
数据库中存在MongoDB用户并且已启用LDAP授权,则MongoDB 3.4及更高版本不会启动。
对于代表MongoDB 的MongoDB Agent 用户:
在 LDAP 服务器上创建一个名为 的新 LDAP 用户,使用客户端证书的
subject
值作为用户名 。LDAP创建名称与MongoDB Agent 角色匹配的 群组。
在
admin
数据库中创建具有适当权限的MongoDB Agent角色。注意
激活自动化后,自动化会自动为MongoDB Agent用户创建角色以进行LDAP身份验证。
将LDAP用户分配到LDAP群组。
提示
另请参阅:
要学习;了解如何: | 看 |
---|---|
创建LDAP用户 | LDAP实施的文档。 |
创建LDAP群组 | LDAP实施的文档。 |
为MongoDB Agent分配适当的角色 | |
映射LDAP群组和MongoDB角色 | MongoDB手册中 LDAP授权 页面的 LDAP角色部分 。 |
在没有 自动化的情况下配置LDAP 授权MongoDB Ops Manager | MongoDB手册中的LDAP授权页面。 |
如果您不使用LDAP 授权,则必须将客户端证书的subject
值添加为MongoDB Agent $external
MongoDB部署的 数据库中的 的用户名。如果没有LDAP授权, MongoDB会使用$external
数据库针对 X. 509来对用户进行身份验证。
注意
要查找 MongoDB 助手的适当角色,请参阅MongoDB Agent MongoDB Agent的访问权限。
使用以下命令从mongosh
创建用户:
db.getSiblingDB("$external").createUser( { user : "<x.509 subject>", roles : [ { role : "clusterAdmin", db : "admin" }, { role : "readWriteAnyDatabase", db : "admin" }, { role : "userAdminAnyDatabase", db : "admin" }, { role : "dbAdminAnyDatabase", db : "admin" }, { role : "backup", db : "admin" }, { role : "restore", db : "admin" } ] } )
要学习;了解需要哪些访问权限,请参阅MongoDB Agent所需的访问权限。
每个MongoDB用户都必须拥有自己的 X. 509证书。
编辑 MongoDB 助手配置文件
要使用 X.509 身份验证,必须为TLS配置 MongoDB Agent:
在 MongoDB Agent 配置文件中指定受信任 CA 证书的绝对文件路径。
如果您为 Ops Manager 部署启用了TLS ,则必须将 MongoDB Agent 配置为使用 TLS 。要将 MongoDB Agent 配置为使用TLS ,您必须拥有签署 MongoDB 实例的受信任证书颁发机构证书。
在MongoDB 助手的安装目录中,编辑配置文件,将httpsCAFile
字段设置为包含一个或多个PEM格式证书的文件的路径。
MongoDB Agent 配置文件的位置是 C:\MMSData\Automation\automation-agent.config
。
注意
MongoDB 助手配置文件命名为 automation-agent.config
,以便使用传统代理的用户更容易升级。
MongoDB Agent 配置文件的位置是 /etc/mongodb-mms/automation-agent.config
。
注意
MongoDB 助手配置文件命名为 automation-agent.config
,以便使用传统代理的用户更容易升级。
MongoDB Agent 配置文件的位置是 /etc/mongodb-mms/automation-agent.config
。
注意
MongoDB 助手配置文件命名为 automation-agent.config
,以便使用传统代理的用户更容易升级。
MongoDB Agent 配置文件的位置是 /path/to/install/local.config
。
例子
使用以下命令通过mongosh
进行连接:
mongosh --tls --tlsCAFile /etc/ssl/ca.pem example.net:27017
然后,修改配置文件并设置以下键/值对:
httpsCAFile=/etc/ssl/ca.pem
保存配置文件。
要了解有关这些设置的更多信息,请参阅Ops Manager TLS设置。
配置 MongoDB Agent 以使用 TLS提供了有关配置 MongoDB Agent 以使用TLS的更多详细信息。
配置 MongoDB Agent后,在 Ops Manager 界面中配置 X.509 身份验证机制,如为 Ops Manager 项目启用 x.509 身份验证中所述。