管理 Amazon DocumentDB 用户 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理 Amazon DocumentDB 用户

在 Amazon DocumentDB 中,将用户与密码一起使用才能通过集群的身份验证。每个集群都有一个在集群创建过程中建立的主用户和密码。

注意

所有在 2020 年 3 月 26 日之前创建的新用户都已被授予 dbAdminAnyDatabasereadWriteAnyDatabaseclusterAdmin 角色。建议您重新评估所有用户并根据需要修改角色,以便为集群中所有用户强制执行最低权限。

有关更多信息,请参阅基于角色的访问控制限制数据库访问

主用户和 serviceadmin 用户

新创建的 Amazon DocumentDB 集群有两个用户:主用户和serviceadmin用户。

主用户 是单个特权用户,可以执行管理任务并创建具有角色的其他用户。首次连接至 Amazon DocumentDB 集群时,您必须使用主用户名称和密码进行身份验证。主用户在创建 Amazon DocumentDB 集群时收到该集群的这些管理权限,并被授予角色。root.

在创建集群时会隐式创建 serviceadmin 用户。每个 Amazon DocumentDB 集群都有一个serviceadmin提供的用户Amazon管理您的集群的能力。您无法登录、删掉、重命名、更改密码,或者修改 serviceadmin 的权限。任何此类尝试都会导致错误。

注意

主人和serviceadmin无法删除 Amazon DocumentDB 集群的用户,也无法删除root主用户无法撤销。

如果您忘记了主用户密码,则可以使用 Amazon Web Services Management Console 或 Amazon CLI 重置密码。

创建其他用户

作为主用户(或具有 createUser 角色的任何用户)连接后,您可以创建新用户,如下所示。

db.createUser( { user: "sample-user-1", pwd: "password123", roles: [{"db":"admin", "role":"dbAdminAnyDatabase" }] } )

要查看用户的详细信息,可以使用 show users 命令,如下所示。您还可以使用 dropUser 命令删除用户。有关更多信息,请参阅常见命令

show users { "_id" : "serviceadmin", "user" : "serviceadmin", "db" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }, { "_id" : "myMasterUser", "user" : "myMasterUser", "db" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }, { "_id" : "sample-user-1", "user" : "sample-user-1", "db" : "admin", "roles" : [ { "role" : "dbAdminAnyDatabase", "db" : "admin" } ] }

在上面的示例中,新用户 sample-user-1admin 数据库的限制。对于新用户来说,情况始终如此。Amazon DocumentDB 没有authenticationDatabase因此,所有身份验证都是在admin数据库。

创建用户时,如果省略db字段中指定角色时,Amazon DocumentDB 会隐式地将该角色归属于发出连接的数据库。例如,如果您的连接是针对数据库 sample-database 发出的,并且您运行以下命令,则用户 sample-user-2 将在 admin 数据库中创建并具有对数据库 sample-databasereadWrite 权限。

db.createUser( { user: "sample-user-2", pwd: "password123", roles: [{role: "readWrite"}] } )

创建具有跨所有数据库范围的角色的用户(例如,readInAnyDatabase)需要在创建用户时处于 admin 数据库上下文,或者在创建用户时明确指定角色的数据库。

要切换数据库上下文,可以使用以下命令。

use admin

要了解有关基于角色的访问控制以及对集群用户强制执行最低权限的更多信息,请参阅基于角色的访问控制限制数据库访问

自动轮换 Amazon DocumentDB 的密码

与Amazon Secrets Manager中,您可以将代码中的硬编码凭证(包括密码)替换为对 Secrets Manager 的 API 调用,以便以编程方式检索密钥。这有助于确保检查您的代码的人不会泄露密钥,因为其中根本不包含密钥。此外,您还可以配置 Secrets Manager 以根据指定的计划自动轮换密钥。这使您能够将长期密钥替换为短期密钥,这有助于显著减少泄露风险。

借助 Secrets Manager,您可以自动轮换您的 Amazon DocumentDB 密码(即,秘密) 使用Amazon LambdaSecrets Manager 提供的功能。

有关 的更多信息Amazon Secrets Manager以及与 Amazon DocumentDB 的本机集成,请参阅以下内容: