View a markdown version of this page

MongoDB Atlas データベースユーザー - AWS Secrets Manager

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

MongoDB Atlas データベースユーザー

シークレット値フィールド

以下は、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.netmongodb+srv:// プレフィックスは含めないでください。これは、ローテーション中に新しいパスワードを検証するために使用されます。

databaseName

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

groupId

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

シークレットメタデータフィールド

以下は、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 です。

使用フロー

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

上記のフィールドと、MongoDBAtlasDatabaseUser というシークレットタイプを含むシークレット値を使用してCreateSecret 呼び出しを使用してシークレットを作成できます。ローテーション設定は、RotateSecret 呼び出しを使用して設定できます。ローテーションメタデータadminSecretArnで を指定する必要があります。また、RotateSecret 呼び出しでロール ARN を指定する必要があります。これにより、シークレットをローテーションするために必要なアクセス許可がサービスに付与されます。アクセス許可ポリシーの例については、「セキュリティとアクセス許可」を参照してください。

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

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