本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
MongoDB Atlas 資料庫使用者
秘密值欄位
以下是必須包含在 Secrets Manager 秘密中的欄位:
{
"username": "database username",
"password": "database password",
"clusterUrl": "cluster hostname",
"databaseName": "authentication database",
"groupId": "Atlas Project ID"
}
- 使用者名稱
-
MongoDB 資料庫使用者名稱 (SCRAM 驗證)。此使用者必須在 MongoDB Atlas 中設定以接受 SCRAM 身分驗證。
- password
-
MongoDB Atlas 資料庫使用者的目前密碼。
- clusterUrl
-
MongoDB Atlas 叢集主機名稱,例如
cluster0.abc123.mongodb.net。請勿包含mongodb+srv://前綴。這用於在輪換期間驗證新密碼。 - databaseName
-
存放使用者登入資料的身分驗證資料庫。通常
admin適用於 SCRAM 使用者或$externalX.509/LDAP。 - groupId
-
24 個字元的十六進位 Atlas 專案 ID (也稱為群組 ID)。您可以在 Atlas 專案設定中找到此項目。
秘密中繼資料欄位
以下是 MongoDB Atlas 資料庫使用者的中繼資料欄位:
{ "adminSecretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:MongoDBAtlasServiceAccount", "apiVersion": "2025-03-12" }
- adminSecretArn
-
秘密的 Amazon Resource Name (ARN),其中包含具有專案資料庫存取管理員許可的 Atlas 服務帳戶 OAuth 憑證 (類型:MongoDBAtlasServiceAccount)。此管理員秘密用於向 Atlas Admin API 驗證密碼更新。
- apiVersion
-
(選用)
yyyy-mm-dd格式的 Atlas Admin API 版本日期。此值在Accept標頭中用作application/vnd.atlas.{apiVersion}+json。如果未指定,則預設為2025-03-12。
用量流程
此輪換類型使用兩個秘密架構。需要包含 Atlas 服務帳戶 OAuth 登入資料 (clientId、clientSecret、serviceAccountId) 的管理員秘密,才能驗證 Atlas Admin API。管理員秘密應該是 MongoDBAtlasServiceAccount 類型。
您可以使用 CreateSecret 呼叫建立秘密,其中秘密值包含上述欄位,且秘密類型為 MongoDBAtlasDatabaseUser。您可以使用 RotateSecret 呼叫來設定輪換組態。您必須在輪換中繼資料adminSecretArn中提供 。您還必須在 RotateSecret 呼叫中提供角色 ARN,授予服務輪換秘密所需的許可。如需許可政策的範例,請參閱 安全與許可。
由於管理員秘密的類型 (MongoDBAtlasServiceAccount) 與使用者秘密 (MongoDBAtlasDatabaseUser) 不同,因此 範圍的預設輪換角色政策secretsmanager:resource/Type不會授予管理員秘密的存取權。您必須透過新增範圍為 MongoDBAtlasServiceAccount 類型的陳述式,或直接在角色政策中指定管理員秘密 ARN,明確提供管理員秘密的輪換角色存取權。
在輪換期間,驅動程式會產生新密碼、呼叫 Atlas Admin API 來更新資料庫使用者的密碼,並透過開啟與叢集的真實 MongoDB 連線來驗證新密碼。請注意,在密碼更新後有 5-10 秒的傳播延遲,叢集的身分驗證層才會接受新密碼。