- Deploy and Configure MongoDB Database Resources >
- Manage Database Users >
- Manage Database Users Using X.509 Authentication
Manage Database Users Using X.509 Authentication¶
On this page
The Kubernetes Operator supports managing database users for deployments running with TLS and X.509 internal cluster authentication enabled.
Important
The Kubernetes Operator does not support other authentication mechanisms in deployments it creates. In an Operator-created deployment, you cannot use Ops Manager to:
- Add other authentication methods to users.
- Manage users not using X.509 authentication.
After enabling X.509 authentication, you can add X.509 users using the Ops Manager interface or the CustomResourceDefinition.
Prerequisites¶
Before managing database users, you must deploy a replica set or sharded cluster with TLS and X.509 enabled.
If you need to generate X.509 certificates for your MongoDB users, see Generate X.509 Client Certificates.
Add a Database User¶
Open your preferred text editor and paste the example ConfigMap into a new text file.¶
Change the five highlighted lines.¶
Use the following table to guide you through changing the highlighted lines in the ConfigMap:
Key | Type | Description | Example |
---|---|---|---|
metadata.name |
string | The name of the database user resource. Resource names must be 44 characters or less. |
mms-user-1 |
spec.username |
string | The subject line of the x509 client certificate signed by the Kubernetes CA (Kube CA). Important The username must comply with the RFC 2253 LDAPv3 Distinguished Name standard. To get the subject line of the X.509 certificate, run the following command: |
CN=mms-user,U=My Organizational Unit,O=My Org,L=New York,ST=New York,C=US |
spec.opsManager.configMapRef.name |
string | The name of the project containing the MongoDB database
where user will be added. The
spec.cloudManager.configMapRef.name setting is an
alias for this setting and can be used in its place. |
my-project |
spec.roles.db |
string | The database the role can act on. | admin |
spec.mongodbResourceRef.name |
string | The name of the MongoDB resource to which this user is associated. | my-resource |
spec.roles.name |
string | The name of the role to grant the database user. The role name can be any built-in MongoDB role or custom role that exists in Cloud Manager or Ops Manager. | readWriteAnyDatabase |
Add any additional roles for the user to the ConfigMap.¶
You may grant additional roles to this user using the format defined in the following example:
Create the user.¶
Invoke the following Kubernetes command to create your database user:
View the newly created user in Cloud Manager or Ops Manager.¶
You can view the newly-created user in Cloud Manager or Ops Manager:
- From the Project’s Deployment view, click the Security tab.
- Click the MongoDB Users nested tab.