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" }
使用者名稱

MongoDB 資料庫使用者名稱 (SCRAM 驗證)。此使用者必須在 MongoDB Atlas 中設定以接受 SCRAM 身分驗證。

password

MongoDB Atlas 資料庫使用者的目前密碼。

clusterUrl

MongoDB Atlas 叢集主機名稱,例如 cluster0.abc123.mongodb.net。請勿包含 mongodb+srv:// 前綴。這用於在輪換期間驗證新密碼。

databaseName

存放使用者登入資料的身分驗證資料庫。通常admin適用於 SCRAM 使用者或 $external X.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 登入資料 (clientIdclientSecretserviceAccountId) 的管理員秘密,才能驗證 Atlas Admin API。管理員秘密應該是 MongoDBAtlasServiceAccount 類型。

您可以使用 CreateSecret 呼叫建立秘密,其中秘密值包含上述欄位,且秘密類型為 MongoDBAtlasDatabaseUser。您可以使用 RotateSecret 呼叫來設定輪換組態。您必須在輪換中繼資料adminSecretArn中提供 。您還必須在 RotateSecret 呼叫中提供角色 ARN,授予服務輪換秘密所需的許可。如需許可政策的範例,請參閱 安全與許可

由於管理員秘密的類型 (MongoDBAtlasServiceAccount) 與使用者秘密 (MongoDBAtlasDatabaseUser) 不同,因此 範圍的預設輪換角色政策secretsmanager:resource/Type不會授予管理員秘密的存取權。您必須透過新增範圍為 MongoDBAtlasServiceAccount 類型的陳述式,或直接在角色政策中指定管理員秘密 ARN,明確提供管理員秘密的輪換角色存取權。

在輪換期間,驅動程式會產生新密碼、呼叫 Atlas Admin API 來更新資料庫使用者的密碼,並透過開啟與叢集的真實 MongoDB 連線來驗證新密碼。請注意,在密碼更新後有 5-10 秒的傳播延遲,叢集的身分驗證層才會接受新密碼。