

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 認証）。SCRAM 認証を受け入れるには、このユーザーを MongoDB Atlas で設定する必要があります。

password  
MongoDB Atlas データベースユーザーの現在のパスワード。

clusterUrl  
MongoDB Atlas クラスターのホスト名。例: `cluster0.abc123.mongodb.net`。`mongodb+srv://` プレフィックスは含めないでください。これは、ローテーション中に新しいパスワードを検証するために使用されます。

databaseName  
ユーザーの認証情報が保存されている認証データベース。通常`admin`、SCRAM ユーザーまたは X.509/LDAP `$external`用です。

groupId  
24 文字の 16 進数の Atlas プロジェクト ID (グループ ID とも呼ばれます）。これは Atlas プロジェクト設定で確認できます。

## シークレットメタデータフィールド
<a name="w2aac25c11c21b5"></a>

以下は、MongoDB Atlas データベースユーザーのメタデータフィールドです。

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

adminSecretArn  
プロジェクトデータベースアクセス管理者のアクセス許可を持つ Atlas サービスアカウントの OAuth 認証情報 (タイプ: MongoDBAtlasServiceAccount) を含むシークレットの Amazon リソースネーム (ARN)。この管理者シークレットは、パスワードの更新のために Atlas Admin API を認証するために使用されます。

apiVersion  
(オプション) `yyyy-mm-dd`形式の Atlas Admin API バージョン日付。この値は、 `Accept`ヘッダーで として使用されます`application/vnd.atlas.{apiVersion}+json`。指定されない場合のデフォルト値は `2025-03-12` です。

## 使用フロー
<a name="w2aac25c11c21b7"></a>

このローテーションタイプは、2 シークレットアーキテクチャを使用します。Atlas Admin API への認証には、Atlas サービスアカウント OAuth 認証情報 (`clientId`、`clientSecret`、`serviceAccountId`) を含む管理者シークレットが必要です。管理者シークレットのタイプは MongoDBAtlasServiceAccount である必要があります。

上記のフィールドと、MongoDBAtlasDatabaseUser というシークレットタイプを含むシークレット値を使用して[CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html) 呼び出しを使用してシークレットを作成できます。ローテーション設定は、[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)」を参照してください。

管理者シークレットはユーザーシークレット (MongoDBAtlasDatabaseUser) とは異なるタイプ (MongoDBAtlasServiceAccount) であるため、 によってスコープされるデフォルトのローテーションロールポリシー`secretsmanager:resource/Type`は管理者シークレットへのアクセスを許可しません。 MongoDBAtlasDatabaseUser MongoDBAtlasServiceAccount タイプにスコープされたステートメントを追加するか、ロールポリシーで管理者シークレット ARN を直接指定して、ローテーションロールに管理者シークレットへのアクセスを明示的に提供する必要があります。

ローテーション中、ドライバーは新しいパスワードを生成し、Atlas Admin API を呼び出してデータベースユーザーのパスワードを更新し、クラスターへの実際の MongoDB 接続を開いて新しいパスワードを検証します。クラスターの認証レイヤーが新しいパスワードを受け入れるまでに、パスワードの更新後 5～10 秒の伝播遅延があることに注意してください。