

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

# MongoDB Atlas 数据库用户
<a name="mes-partner-MongoDBAtlasDatabaseUser"></a>

## 秘密值字段
<a name="w2aac25c11c21b3"></a>

以下是 Secrets Manager 密钥中必须包含的字段：

```
{
  "username": "{{database username}}",
  "password": "{{database password}}",
  "clusterUrl": "{{cluster hostname}}",
  "databaseName": "{{authentication database}}",
  "groupId": "{{Atlas Project ID}}"
}
```

username  
MongoDB 数据库用户名 ()。SCRAM-authenticated必须在 MongoDB Atlas 中配置此用户才能接受 SCRAM 身份验证。

password  
MongoDB Atlas 数据库用户的当前密码。

集群网址  
例如，MongoDB Atlas 集群的主机名。`cluster0.abc123.mongodb.net`请勿包含 `mongodb+srv://` 前缀。这用于在轮换期间验证新密码。

databaseName  
存储用户凭据的身份验证数据库。通常`admin`适用于 SCRAM 用户或`$external`。 X.509/LDAP

groupId  
24 个字符的十六进制地图集项目 ID（也称为群组 ID）。你可以在你的 Atlas 项目设置中找到它。

## 机密元数据字段
<a name="w2aac25c11c21b5"></a>

以下是 MongoDB Atlas 数据库用户的元数据字段：

```
{
  "adminSecretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:{{MongoDBAtlasServiceAccount}}",
  "apiVersion": "{{2025-03-12}}"
}
```

管理员 SecretArn  
包含具有项目数据库访问管理员权限的 Atlas 服务账户 OAuth 凭证（类型: MongoDBAtlasServiceAccount）的密钥的亚马逊资源名称 (ARN)。此管理员密钥用于向 Atlas 管理员 API 进行身份验证以更新密码。

apiVersion  
（可选）Atlas 管理员 API 版本的`yyyy-mm-dd`格式日期。此值在`Accept`标题中使用为`application/vnd.atlas.{apiVersion}+json`。如果未指定，则默认为 `2025-03-12`。

## 使用流程
<a name="w2aac25c11c21b7"></a>

这种轮换类型使用双密架构。要向 Atlas 管理员 API 进行身份验证，需要使用包含 Atlas 服务账户 OAuth 凭据 (`clientId``clientSecret`、、`serviceAccountId`) 的管理员密钥。管理员密钥的类型应为 MongoDBAtlasServiceAccount。

您可以使用[CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)调用来创建您的密钥，其密钥值包含上述字段，密钥类型为 MongoDBAtlasDatabaseUser。可以使用[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html)呼叫来设置轮换配置。您必须在轮换`adminSecretArn`中提供元数据。您还必须在[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html)调用中提供角色 ARN，该角色向服务授予轮换密钥所需的权限。有关权限策略的示例，请参阅[安全和权限](mes-security.md)。

由于管理员密钥的类型 (MongoDBAtlasServiceAccount) 与用户密钥 (MongoDBAtlasDatabaseUser) 不同，因此范围为的默认轮换角色策略`secretsmanager:resource/Type`不会授予对管理员密钥的访问权限。您必须通过添加限定于该 MongoDBAtlasServiceAccount 类型的语句或直接在角色策略中指定管理员密钥 ARN 来明确提供轮换角色对管理员密钥的访问权限。

在轮换期间，驱动程序会生成新密码，调用 Atlas Admin API 来更新数据库用户的密码，并通过打开与集群的真实 MongoDB 连接来验证新密码。请注意，在密码更新后，在集群的身份验证层接受新密码之前，会有 5-10 秒的传播延迟。