Set up Self-Managed X.509 Authentication

Self-managed X.509 certificates provide database users access to the clusters in your project. Database users are separate from Atlas users. Database users have access to MongoDB databases, while Atlas users have access to the Atlas application itself.


In order to use self-managed X.509 certificates, you must have a Public Key Infrastructure to integrate with MongoDB Atlas.

Configure a Project to use a Public Key Infrastructure


Turn on Self-Managed X.509 Authentication.

  1. In the Security section of Atlas’s left navigation panel, click Advanced.
  2. Toggle Self-Managed X.509 Authentication to ON.

Provide a PEM-encoded Certificate Authority.

You can provide a Certificate Authority (CA) by:

  • Clicking Upload and selecting a .pem file from your filesystem.
  • Copying the contents of a .pem file into the provided text area.

You can concatenate multiple CAs in the same .pem file or in the text area. Users can authenticate with certificates generated by any of the provided CAs.

When you upload a CA, a project-level alert is automatically created to send a notification 30 days before the CA expires, repeating every 24 hours. You can view and edit this alert from Atlas’s Alert Settings page. For more information on configuring alerts, see Configure Alert Settings.


Click Save.

To edit your CA once uploaded, click the Self-Managed X.509 Authentication Settings pencil icon icon.

Add a Database User using Self-Managed X.509 Authentication


Open the Add New Database User dialog.

  1. In the Security section of the left navigation, click Database Access. The Database Users tab displays.
  2. Click plus icon Add New Database User.



Enter user information.

Field Description
Distinguished Name

The user’s Common Name (CN) and optionally additional Distinguished Name fields. For more information, see RFC 2253.


CN=Jane Doe,O=MongoDB,C=US

User Privileges

You can assign roles in one of the following ways:

  • Select Atlas admin, which provides the user with readWriteAnyDatabase as well as a number of administrative privileges.

  • Select Read and write to any database, which provides the user with privileges to read and write to any database.

  • Select Only read any database which provides the user with privileges to read any database.

  • Select Select Custom Role to select a custom role previously created in Atlas. You can create custom roles for database users in cases where the built-in database user roles cannot describe the desired set of privileges. For more information on custom roles, see Configure Custom Roles.

  • Click Add Default Privileges. When you click this option, you can select individual roles and specify the database on which the roles apply. Optionally, for the read and readWrite roles, you can also specify a collection. If you do not specify a collection for read and readWrite, the role applies to all non-system collections in the database.


    When applied to a collection, the read and readWrite roles in Atlas differ slightly from the built-in MongoDB read and readWrite roles.

    In Atlas, read provides the following collection-level actions:

    In Atlas, readWrite provides the same actions as read, as well as the following additional collection-level actions:

For information on the built-in Atlas privileges, see Database User Privileges.

For more information on authorization, see Role-Based Access Control and Built-in Roles in the MongoDB manual.


Click Add User.