Docs 菜单
Docs 主页
/ /

为 Kerberos 配置 MongoDB Agent

MongoDB Enterprise支持Kerberos。Kerberos 是一种网络身份验证协议。MongoDB 助手可以对运行Kerberos 的MongoDB实例进行身份验证。

Kerberos票证可以在有限的时间内对用户进行身份验证。您必须配置Kerberos密钥分发中心 (KDC),以颁发有效期为四小时或更长时间的票证。MongoDB 助手会定期更新票证。 KDC 服务为用户和主机提供会话票证和临时会话密钥。

MongoDB Agent与部署中的MongoDB数据库交互,就像MongoDB用户一样。因此,您必须配置 MongoDB 部署和 MongoDB Agent 以支持身份验证。

您可以在添加部署时指定部署的身份验证机制,也可以编辑现有部署的设置。 部署必须至少启用您希望MongoDB Agent使用的身份验证机制。 MongoDB Agent可以使用任何受支持的身份验证机制。

就本教程而言,您必须确保满足以下条件:

  • 您的部署支持 Kerberos 身份验证和

  • MongoDB Agent 使用 Kerberos 身份验证。

要了解如何启用 Kerberos 身份验证,请参阅为 Ops Manager 项目启用 Kerberos 身份验证。

必须在任何运行监控或备份的主机上安装两个与 Kerberos 相关的文件:

  • 创建或配置 krb5.conf Kerberos配置文件。

    平台
    默认路径
    注意

    Linux

    /etc/krb5.conf

    Windows

    %WINDIR%\krb5.ini

    这是非基于 Active 目录 的 Kerberos 实施的默认路径。请参阅适用于您的 Windows 版本的 Kerberos 实施文档,了解 Kerberos 配置文件的存储位置。

  • 在Linux系统上:确保 kinit 二进制文件位于 /usr/bin/kinitkinit 获取或续订Kerberos票证授予票证,以使用Kerberos对代理进行身份验证。

1

UPN的格式分为两部分,因此可以在 Kerberos 域 中唯一标识服务:

组件
说明

服务名称

主机向 Kerberos 域 提供的一项服务的名称,例如popftp

Kerberos Realm

共享同一 Kerberos 数据库的一组托管主机和服务。

根据 Kerberos 命名规则, <KERBEROS_REALM>必须位于所有UPPERCASE中。

例子

在设置为EXAMPLE.COM的 Kerberos 域 中,MongoDB Agent 会将其UPN设置为: mongodb-agent@EXAMPLE.COM

2

为MongoDB 助手UPN 生成 keytab文件(),并将其复制到运行MongoDB *.keytab助手的托管。确保运行MongoDB 助手的系统用户与拥有 keytab文件的系统用户相同。

当自动化被激活时,Ops Manager 管理 MongoDB Agent 身份验证。

要为 MongoDB Agent 身份验证配置 Kerberos,请参阅为 Ops Manager 项目启用 Kerberos 身份验证。

为 创建Kerberos UPN MongoDB AgentMongoDBMongoDB Agent后,在部署上创建与 的 UPN 相对应的 用户并授予权限。

在何处创建MongoDB用户取决于您是否使用LDAP授权。

如果在部署中使用LDAP授权,则必须在MongoDB服务器上为创建LDAP用户和LDAPMongoDB AgentLDAP群组。 创建LDAP用户和群组后,将LDAP群组映射到部署的admin数据库中的MongoDB角色。

警告

使用LDAP授权时,请勿在$external数据库中创建任何MongoDB用户。 如果$external数据库中存在MongoDB用户并且已启用LDAP授权,则MongoDB 3.4及更高版本不会启动。

对于代表MongoDB 的MongoDB Agent 用户:

  1. LDAPLDAP 服务器上创建一个以 的MongoDB Agent UPN 命名的新 用户。

  2. LDAP创建名称与MongoDB Agent 角色匹配的 群组。

  3. admin数据库中创建具有适当权限的MongoDB Agent角色。

    注意

    激活自动化后,自动化会自动为MongoDB Agent用户创建角色以进行LDAP身份验证。

  4. LDAP用户分配到LDAP群组。

提示

要学习;了解如何:

创建LDAP用户

LDAP实施的文档。

创建LDAP群组

LDAP实施的文档。

为MongoDB Agent分配适当的角色

映射LDAP群组和MongoDB角色

MongoDB手册中 LDAP授权 页面的 LDAP角色部分 。

在没有 自动化的情况下配置LDAP 授权MongoDB Ops Manager

MongoDB手册中的LDAP授权页面。

如果您不使用LDAP授权,则必须将MongoDB Agent的UPN作为用户添加到MongoDB部署的 $external数据库中。 如果没有LDAP授权, MongoDB会使用$external数据库根据Kerberos对用户进行身份验证。

注意

要查找 MongoDB 助手的适当角色,请参阅MongoDB Agent MongoDB Agent的访问权限。

mongosh中,发出以下命令以创建MongoDB用户:

db.getSiblingDB("$external").createUser(
{
user : "<Kerberos Principal>",
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" }
]
}
)

后退

LDAP

在此页面上