Docs 菜单
Docs 主页
/
MongoDB Cloud Manager
/ /

为 Kerberos 配置 MongoDB Agent

在此页面上

  • 先决条件
  • 步骤

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

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

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

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

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

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

  • MongoDB Agent 使用 Kerberos 身份验证。

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

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

  • 创建或配置 krb5 .confKerberos 配置文件。

    平台
    默认路径
    注意
    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

生成 密钥表 文件 (*.keytab ) 的MongoDB Agent UPN ,并将其复制到运行MongoDB Agent 的主机。确保运行MongoDB Agent的操作系统用户与拥有 keytab 文件的操作系统用户相同。

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

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

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

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

注意

从 MongoDB 8.0 开始,LDAP 身份验证和授权已弃用。该功能可用,并将在 MongoDB 的整个生命周期内继续运行,无需更改 8。LDAP 将在将来的主要版本中删除。

有关详细信息,请参阅 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角色部分 。
在没有Cloud Manager自动化的情况下配置LDAP授权
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

在此页面上