Atlas implements a defense-in-depth model. Each layer operates independently — compromising one never exposes the others.
Unlike self-managed deployments where security is opt-in, Atlas ships with strong defaults from the moment you create a cluster. No open ports, no anonymous access, no unencrypted connections.
Authentication required — no anonymous access
TLS 1.2+ enforced — all connections encrypted in transit
Encryption at rest — AES-256 on all data
IP allowlist empty — zero access until you explicitly grant it
The outermost layer. Control exactly who and what can reach your cluster — from IP allowlists to fully private connectivity that never touches the internet.
Dedicated clusters run in a fully isolated VPC/VNet within the Atlas infrastructure. Your data plane is logically separated from all other customers.
Traffic between your application and Atlas stays on the cloud provider's backbone — never traversing the public internet.
Restrict access to trusted IP addresses or CIDR blocks. Alternatively, peer your VPC directly with Atlas for private routing without endpoint services.
# Private Endpoint — AWS PrivateLink
resource "mongodbatlas_privatelink_endpoint" "pe" {
project_id = var.atlas_project_id
provider_name = "AWS"
region = "US_EAST_1"
}
# IP Access List
resource "mongodbatlas_project_ip_access_list" "office" {
project_id = var.atlas_project_id
cidr_block = "203.0.113.0/24"
comment = "Office network"
}
# VPC Peering
resource "mongodbatlas_network_peering" "peer" {
project_id = var.atlas_project_id
container_id = mongodbatlas_cluster.main.container_id
provider_name = "AWS"
accepter_region_name = "us-east-1"
aws_account_id = var.aws_account_id
vpc_id = var.vpc_id
route_table_cidr_block = "10.0.0.0/16"
}Data is encrypted in transit, at rest, and optionally at the field level — so sensitive fields remain unreadable even to database administrators and MongoDB personnel.
TLS 1.2+ required for all client-to-cluster and intra-cluster communication. Uses OpenSSL FIPS module.
TLS 1.2+AES-256 encrypts all data on disk transparently. Bring your own key (BYOK) via AWS KMS, Azure Key Vault, or GCP KMS.
AES-256 BYOKClient-Side Field-Level Encryption encrypts specific fields before they leave the application — server never sees plaintext.
Client-SideRun equality and range queries on fully encrypted data. The server processes encrypted queries without ever decrypting.
Query on EncryptedQueryable Encryption lets you query encrypted fields using equality and range operators. The database processes encrypted values and returns encrypted results — decryption happens only on the client. This protects data from compromised servers, snapshots, and backups.
No server-side exposure — data remains encrypted in memory, logs, and backups.
Automatic encryption — configure once, the driver handles all encryption/decryption transparently.
Range queries — run $gt, $lt, $gte on encrypted numeric and date fields.
from pymongo import MongoClient
from pymongo.encryption import AutoEncryptionOpts
# KMS provider config (AWS KMS example)
kms = { "aws": {
"accessKeyId": os.environ["AWS_KEY"],
"secretAccessKey": os.environ["AWS_SECRET"]
}}
# Encrypted fields configuration
encrypted_fields = {
"fields": [
{ "path": "ssn",
"bsonType": "string",
"queries": [{ "queryType": "equality" }] },
{ "path": "billing.amount",
"bsonType": "double",
"queries": [{ "queryType": "range" }] }
]
}
# The driver handles all encryption transparently
client = MongoClient(
"mongodb+srv://cluster.mongodb.net",
auto_encryption_opts=AutoEncryptionOpts(
kms_providers=kms,
encrypted_fields_map={
"mydb.patients": encrypted_fields
}
)
)
# Query on encrypted field — server never sees plaintext
result = client.mydb.patients.find_one(
{ "ssn": "123-45-6789" }
)Verify who is connecting. Atlas supports multiple authentication mechanisms — from username/password to certificate-based to federated identity.
Salted Challenge-Response Authentication Mechanism. NIST 800-63B compliant, default for all Atlas clusters.
Authenticate using client certificates from your own PKI. Eliminates passwords entirely for service-to-service communication.
Integrate with your corporate directory. Centralize user management and map LDAP groups to MongoDB roles.
Use AWS IAM roles for passwordless authentication. Ideal for applications running on EC2, ECS, Lambda.
Authenticate via Okta, Azure AD, or any OIDC provider. Supports both workforce (human) and workload (service) identity.
# SCRAM (username/password)
mongosh "mongodb+srv://cluster.mongodb.net/mydb" \
--username admin --authenticationDatabase admin
# X.509 Certificate
mongosh "mongodb+srv://cluster.mongodb.net/mydb" \
--tls --tlsCertificateKeyFile client.pem \
--authenticationMechanism MONGODB-X509
# AWS IAM (passwordless)
mongosh "mongodb+srv://cluster.mongodb.net/mydb" \
--authenticationMechanism MONGODB-AWS
# OIDC (Workforce Identity)
mongosh "mongodb+srv://cluster.mongodb.net/mydb" \
--authenticationMechanism MONGODB-OIDCAccess to the Atlas UI and API is separately protected by Multi-Factor Authentication (MFA) and Identity Federation (SSO) via SAML or OpenID Connect with providers like Okta and Azure AD.
The innermost layer: accountability. Every administrative and database action can be captured, filtered, and forwarded to your SIEM for forensic analysis and compliance evidence.
Capture all DML/DDL and administrative actions with granular filters. Track actions by user, role, LDAP group, IP address, or operation type. Available on M10+ dedicated clusters.
Chronological, filterable log of all administrative actions — user access changes, cluster modifications, network configuration updates, billing events.
Export audit logs via the Atlas API for integration with Splunk, Imperva, IBM Guardium, or any SIEM platform. Build alerts, dashboards, and compliance reports.
// Audit filter: capture auth failures + sensitive ops
{
"$or": [
// All authentication failures
{
"atype": "authenticate",
"param.mechanism": { "$exists": true },
"result": { "$ne": 0 }
},
// DDL operations (create, drop, rename)
{
"atype": {
"$in": [
"createCollection",
"dropCollection",
"dropDatabase",
"renameCollection",
"createIndex",
"dropIndex"
]
}
},
// Writes to sensitive collections
{
"atype": "authCheck",
"param.ns": {
"$regex": "^mydb\\.patients"
},
"param.command": {
"$in": ["update", "delete", "insert"]
}
}
]
}Atlas is audited and certified against the industry's most demanding security and privacy frameworks. These certifications mean fewer controls your team has to build and validate.
Security, availability, and confidentiality controls independently audited annually.
Information security management system certified by accredited third party.
BAA available. Atlas supports HIPAA-compliant architectures for healthcare data.
Level 1 Service Provider compliant for payment card data workloads.
Data processing agreements, EU data residency, and right-to-erasure support.
Cloud Security Alliance STAR registry listing with detailed security posture.
Available through MongoDB Atlas for Government (via authorized partners).
Assessed for Australian government workloads under the IRAP framework.
MongoDB conducts regular cloud provider audits, maintains a structured vulnerability management program using CVSS risk scoring, performs annual penetration tests, and is a MITRE CVE Numbering Authority for identifying and reporting threats.
MongoDB Trust Center