Atlas Resource Policies Cedar
Parent: MongoDB Atlas IAM and RBAC · Published reference · snapshot 2026-09-25 · skill mongodb-atlas-expert/references/mongodb-atlas-identity-policy-frontier-20261001.md
↓ Facts as markdownall context files
Depth-first rabbithole dossier for Atlas Resource Policies Cedar; source-anchored research pack.
These notes link each claim to its source. A source may be a research report hosted on this site rather than the primary document. A published reference means the content is available; it does not certify independent review or accuracy.Read the editorial policy and follow the sources before relying on a claim.
Structure and components
- - **Concept:** Atlas Resource Policies Cedar - **Parent context:** MongoDB Atlas IAM and RBAC - **Brief:** mechanism, parts, invariants, limits - **Run date:** 2026-09-25 - **Method:** /rabbithole, 3 passes. The report uses atomic claims, and each claim carries an inline source. [source]
- - OP1. `[doc]` Policies can be managed through the Atlas UI, the Admin API, Terraform, and CloudFormation/CDK (awscdk-resources-mongodbatlas v3.9.0 or later). [P] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - OP2. `[doc]` MongoDB recommends many simple policies over a few complex ones, because simple policies make Activity Feed events easier to track. [P] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - OP3. `[doc]` The recommended rollout order is: block wildcard IPs, then region restrictions, then TLS, then IP allowlists or private-only networking. Test in no [source]
- - HI1. `[doc]` 2023-05-10: AWS open-sources Cedar, then the policy language of Amazon Verified Permissions and AWS Verified Access. [H] — https://aws.amazon.com/about-aws/whats-new/2023/05/cedar-open-source-language-access-control - HI2. `[doc]` 2024-03-07: the Cedar paper (Cutler et al.) appears on arXiv. It describes a Lean model with proved properties, a Rust implementation, and a sound and complete logical encoding. [H,E] — https://arxiv.org/abs/2403.04651 - HI3. `[doc]` The paper appeared at OOPSLA 2024 and reports that Cedar outperforms OpenFGA and Rego. [P] — https://www.amazon.science/ [source]
- 1. [doc] Atlas Resource Policies let Organization Owners constrain the configuration options that developers can use when they create or configure Atlas clusters. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 2. [doc] Only Organization Owners can create, update, or delete policies. Organization Members and Read Only users can only view them. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 3. [doc] Policies are written in the open-source Cedar policy language. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 4. [doc] Policies apply organization-wide by defau [source]
- 30. [doc] Atlas creates an Activity Feed event on every policy create, update, or delete. MongoDB recommends many simple policies over a few complex ones, because that makes the events easier to track. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 31. [doc] To exempt a project, add `unless { resource in ResourcePolicy::Project::"<PROJECT-ID>" }`. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 32. [doc] A MongoDB blog example shaped as `forbid ... unless { resource in Project X && cloudProviders == [aws] }` is presented as a "project-specific restriction". https://www [source]
- 1. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ — official docs (fetched 2026-09-25; include May 2026 additions) 2. https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-resource-policies/ — AWS Open Source Blog, 2026-04-23 3. https://www.mongodb.com/company/blog/7-new-resource-policies-strengthen-atlas-security — GA announcement, 2025-04-14 4. https://www.mongodb.com/company/blog/innovation/layer-mongodb-atlas-resource-policies-for-defense-in-depth — J. Costa, 2025-12-03 5. https://www.mongodb.com/company/blog/innovation/stop-a- [source]
- - CTX1. `[doc]` For each request, Atlas builds a `context` record with four sub-records: `context.cluster.*`, `context.project.*`, `context.search.*`, `context.aiModelApi.*`. [M] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ ; https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-resource-policies/ - CTX2. `[doc]` The cluster attributes are `project`, `cloudProviders`, `clusterType`, `diskSizeGB`, `regions`, `minShardCount`, `maxShardCount`, `isConvertingToSharded`, `min`/`maxGeneralClassInstanceSizeValue`, `encryptionAtRest.cus [source]
- - C1. For each request, Atlas builds a `context` record and passes it to the evaluator. The record has four sub-records: `context.cluster.*`, `context.project.*`, `context.search.*`, and `context.aiModelApi.*`. — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ ; https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-resource-policies/ - C2. The cluster attributes are `project`, `cloudProviders`, `clusterType`, `diskSizeGB`, `regions`, `minShardCount`, `maxShardCount`, `isConvertingToSharded`, `min`/`maxGeneralClassInstanceSizeValue`, [source]
- - https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorgresourcepolicy - https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-validateorgresourcepolicies - https://www.mongodb.com/docs/atlas/cli/v1.57/command/atlas-api-resourcepolicies/ - https://www.mongodb.com/docs/atlas/cli/current/command/atlas-api-resourcePolicies-validateResourcePolicies/ - https://www.mongodb.com/blog/post/simplify-security-at-scale-resource-policies-mongodb-atlas (2025-02-10) - https://www.mongodb.com/com [source]
- 39. [doc] MongoDB's recommended order is: (1) block wildcard IPs, (2) region restrictions, (3) TLS, (4) IP allowlists or private-only networking. Test in non-production first, and provide clear compliance paths so teams don't build workarounds. https://www.mongodb.com/company/blog/innovation/layer-mongodb-atlas-resource-policies-for-defense-in-depth 40. [doc] Do not combine overlapping policies such as an IP allowlist and a required-empty IP access list, because together they create conditions nobody can satisfy. https://www.mongodb.com/company/blog/innovation/layer-mongodb-atlas-resource-poli [source]
How it works
- - **Concept:** Atlas Resource Policies Cedar - **Parent context:** MongoDB Atlas IAM and RBAC - **Run:** frontier-2026-09-25, synthesis pass, 2026-09-25 - **Inputs:** four role reports: mechanism [M], history [H], edge-cases [E], practice [P]. This pass fetched no new pages. Every URL below comes from those reports, and every quote is given as the role reports recorded it. The history report notes that its quotes came through a summarizing fetcher, not from raw page text. - **Tags:** `[doc]` means a source states it. `[derived]` means one role report inferred it from the cited sources. `[synth [source]
- This report covers only the evolution of MongoDB Atlas Resource Policies and their use of the Cedar policy language: when each stage shipped, what changed, and where the primary sources are. It does not cover Atlas RBAC roles, Atlas IAM generally, other policy engines (OPA/Rego, OpenFGA), or Cedar's use in other products. Those are separate frontier items. Cedar's own history appears only where it explains why Atlas could adopt it. [source]
Measurements and reference values
- - Concept: Atlas Resource Policies Cedar - Parent context: MongoDB Atlas IAM and RBAC - Lens: how teams operate it, trade-offs, how to evaluate it, and concrete implications - Date researched: 2026-09-25 - Method: /rabbithole depth passes (3 passes: 41 → 9 → 2 new claims; rate 100% → 18% → 4%). The loop stopped when the budget ran out, not because it saturated: the rate did not stay below 5% for two passes in a row. [source]
- Deepening curve (atomic claims added per pass / total): pass 0 announcements 11/11; pass 1 docs, API, and Terraform 14/25 (56%); pass 2 Cedar origin, CNCF, and AWS post 7/32 (22%); pass 3 independent source and changelog recheck 1/33 (3%). Verdict: BUDGET_EXHAUSTED (soft stop). Only one pass was under 5%. Another pass that reads raw changelog and forum text would probably settle the date disagreements above. [source]
- **Saturation.** Pass 0 produced 24 claims. Pass 1 added 16, a rate of 40%. Pass 2 added 8, a rate of 17%. The verdict is `BUDGET_EXHAUSTED` (soft stop at the brief's scope). At least one more pass would likely still pay off. Its targets are gaps 2, 3, and 6, and the likely method is an empirical `:validate` or `nonCompliantResources` probe against a test org, or the Atlas OpenAPI spec. [source]
Problems, failure modes and limitations
- **In scope:** how Atlas evaluates Cedar `forbid` policies. That covers the policy object and API, the Cedar subset Atlas accepts, the request context, where evaluation sits relative to RBAC, decision and error semantics, what happens to existing resources, gaps in coverage, failure modes, the release history, and where sources disagree. [source]
- - DEF1. `[doc]` Atlas Resource Policies let Organization Owners limit the configuration options that users can choose when they create or configure Atlas clusters. [P] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - DEF2. `[doc]` Policies are written in a subset of Cedar. Only `forbid` policies are accepted: "The converse element, `permit`, is not allowed in Atlas Resource Policies." [M,H,E,P] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - DEF3. `[doc]` Policies can only narrow what RBAC already allows. They never grant access. [M] — https://www.mongodb.com/doc [source]
- - OBJ1. `[doc]` A resource policy is an organization-level object. You create one with `POST /api/atlas/v2/orgs/{orgId}/resourcePolicies`. [M,H,P] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ ; https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorgresourcepolicy - OBJ2. `[doc]` The API offers create, list, get, update (`PATCH`), delete, validate, and a listing of non-compliant resources. [M] — https://www.mongodb.com/docs/atlas/cli/v1.57/command/atlas-api-resourcepolicies/ - OBJ3. `[doc]` A policy requires `name`, `org_id`, and a `policies` list [source]
- - EV1. `[doc]` RBAC runs first, and an unauthorized role ends processing. If RBAC allows the request, Atlas builds the context and passes the principal, action, resource, and context to a Cedar evaluator. The evaluator returns a binary allow/block decision before the change is applied. [M,H,E,P] — https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-resource-policies/ - EV2. `[doc]` Every decision is evaluated at organization scope. [M] — https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-re [source]
- - FM1. `[doc]` Terraform provider versions below 1.33.0 may be blocked when TLS-version or cipher-suite policies are active: Atlas "might block connections from earlier versions of Terraform". [M,H,E,P] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - FM2. `[doc]` Overlapping policies can create conditions nobody can satisfy, for example an IP allowlist combined with a required-empty IP access list. [P] — https://www.mongodb.com/company/blog/innovation/layer-mongodb-atlas-resource-policies-for-defense-in-depth - FM3. `[doc]` The docs' project-exception example contradicts itself [source]
- 6. The Atlas changelog's "5 February 2025 Release" introduced Atlas resource policies in public preview. It listed options to limit cloud providers, regions, and wildcard IPs. https://www.mongodb.com/docs/atlas/release-notes/changelog/ 7. MongoDB's launch blog is dated 2025-02-10 (updated 2025-03-05), is by Alex Bauer and Jeff Costa, and names three preview policies: restrict cloud provider, restrict cloud region, and block wildcard IP (0.0.0.0/0). https://www.mongodb.com/company/blog/product-release-announcements/simplify-security-at-scale-resource-policies-mongodb-atlas 8. The launch blog na [source]
- 18. Atlas accepts only `forbid` policies. The docs state that `permit` "is not allowed in Atlas Resource Policies." https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 19. Atlas Resource Policies are allow-by-default. If no policy exists, users can do anything their Atlas role allows. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 20. Atlas supports one Cedar policy per `.cedar` file, and one Atlas Resource Policy can list several such policies. Atlas identifies each file by a 24-hex-character `policies.id`. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 21. T [source]
- **In scope.** This report covers how Atlas evaluates Cedar `forbid` policies: the policy object model, the Cedar entity and context vocabulary that Atlas exposes, where evaluation sits relative to RBAC, how Cedar's decision and error semantics apply, how existing and non-compliant resources are treated, validation, and the documented limits. [source]
- - A1. An Atlas Resource Policy is an organization-level object. Its API path is `POST /api/atlas/v2/orgs/{orgId}/resourcePolicies`. — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - A2. The API provides create, list, get, update (`PATCH`), delete, validate, and non-compliant-resource-listing operations. — https://www.mongodb.com/docs/atlas/cli/v1.57/command/atlas-api-resourcepolicies/ - A3. A policy object has a required `name`, a required `org_id`, a required `policies` list whose items each hold a Cedar `body` string, and an optional `description`. — https://raw.githubuserconte [source]
- - B1. Atlas allows only `forbid` policies. The docs say: "The converse element, `permit`, is not allowed in Atlas Resource Policies." — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - B2. Atlas supports only a subset of the Cedar language. — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - B3. The `principal` slot is fixed. The docs say: "Applied universally by default. Do not change or omit." A policy therefore cannot target or exempt a particular user. — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - B4. All entities live in the `ResourcePolicy::` na [source]
- - D1. Order of evaluation: RBAC runs first. If the caller's role is not authorized, processing stops. If the role is authorized, Atlas builds the context attributes and passes them to the Cedar evaluator. — https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-resource-policies/ - D2. Resource policies can therefore only narrow what RBAC already allows. They never grant access. — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ ; https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-r [source]
- 10. [doc] Atlas is allow-by-default. With no policies, every action is allowed within the user's role. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 11. [doc] Atlas policies use `forbid`, not `permit`. Actions include `cluster.modify`, `project.ipAccessList.modify`, `project.maintenanceWindow.modify`, `search.index.modify`, `search.deployment.modify`, `project.rerank.modify`, and `project.aiModelAPI.modify`. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 12. [doc] Standalone Cedar denies by default. It returns `Allow` only if a `permit` policy matches, and any matchi [source]
- - CED1. `[doc]` The `principal` slot "defines the user affected by the policy". It applies to everyone by default, and the docs say "Do not change or omit." A policy therefore cannot target or exempt a particular user or role. [M,E,P] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - CED2. `[doc]` All entities are in the `ResourcePolicy::` namespace. The resource types are `ResourcePolicy::Cluster::"<id>"` and `ResourcePolicy::Project::"<id>"`. Enumerations are typed entities, for example `ResourcePolicy::CloudProvider::"gcp"`, `ResourcePolicy::Region::"aws:us-east-1"`, `Resource [source]
- - ST1. `[doc]` Atlas evaluates policies only on requests to create or modify. It never scans existing resources or fixes them afterward. [M,P] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ ; https://www.mongodb.com/company/blog/innovation/enforce-data-sovereignty-with-mongodb-atlas-resource-policies ; https://foojay.io/today/enforcing-governance-in-mongodb-atlas-with-resource-policies/ - ST2. `[doc]` An existing non-compliant cluster keeps running. Atlas allows only the changes that bring it into compliance. For example, if a policy blocks AWS, the only allowed change to an AWS [source]
- 12. A new policy applies to new clusters. On an existing non-compliant cluster, Atlas allows only changes that move the cluster toward compliance. [docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/); [MongoDB blog, 2025-04-14](https://www.mongodb.com/company/blog/7-new-resource-policies-strengthen-atlas-security) 13. Knock-on effect: while a project's access list still contains `0.0.0.0/0`, users cannot add any other IP. Once removed, the wildcard cannot be added back. [MongoDB blog, 2025-12-10](https://www.mongodb.com/company/blog/innovation/stop-a-dangerous-database-security- [source]
- - **Is an existing violation "left alone" or "frozen"?** Foojay says Atlas "does not automatically fix or block existing resources ... the system only reports the violation" ([foojay, 2025-08-13](https://foojay.io/today/enforcing-governance-in-mongodb-atlas-with-resource-policies/)). MongoDB's docs and the wildcard blog say Atlas blocks every change that does not restore compliance. For example, you cannot add IPs while `0.0.0.0/0` is present ([docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/); [wildcard blog](https://www.mongodb.com/company/blog/innovation/stop-a-dangerous-da [source]
- Met. The report uses 8 sources on 6 hosts: mongodb.com (docs and blogs), aws.amazon.com, foojay.io, docs.cedarpolicy.com, arxiv.org, and raw.githubusercontent.com. Foojay is the disconfirming source on existing-resource behaviour. Limitation: the MongoDB docs are the only primary source for Atlas-specific behaviour. The AWS blog is co-authored by MongoDB staff, so it is not fully independent. A GitHub issue search on the Terraform provider found no issues about resource policies. The Atlas Admin API spec page returned no content and was not used. [source]
- - E1. Atlas applies a policy only to requests: creates and modifies. It does not scan resources and change them after the fact. — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ ; https://foojay.io/today/enforcing-governance-in-mongodb-atlas-with-resource-policies/ - E2. An existing non-compliant cluster keeps running. Atlas only allows changes that bring that cluster into compliance. — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ ; https://www.mongodb.com/company/blog/7-new-resource-policies-strengthen-atlas-security - E3. Detection of existing drift is separate fro [source]
- 19. [doc] A new policy applies immediately to new clusters. On an existing non-compliant cluster, Atlas allows only changes that bring it into compliance. For example, if a policy blocks AWS, the only allowed change to an AWS cluster is a move to Azure or GCP. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 20. [doc] Atlas does not remediate non-compliant resources automatically. They keep running, and a person must fix them. https://www.mongodb.com/company/blog/innovation/enforce-data-sovereignty-with-mongodb-atlas-resource-policies 21. [doc] If a wildcard-IP policy is added, exis [source]
- 23. [doc] If existing auto-scaling limits do not match a new size policy, auto-scaling can take a cluster outside the policy bounds. Manual scaling beyond those bounds is blocked. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 24. [doc] A minimum shard count greater than 1 blocks replica-set-to-sharded conversion unless the policy adds `&& !context.cluster.isConvertingToSharded`. The same policy also marks every replica set non-compliant, because Atlas treats a replica set as having 1 shard. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 25. [doc] Terraform MongoDB At [source]
- - CV1. `[doc]` `search.index.modify` blocks only creating and changing search indexes. Deleting them is always allowed. [E] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - CV2. `[synthesis]` Deletes are a recurring blind spot. Region and provider policies cannot see them (CTX6), and search-index policies exempt them (CV1). [M,E] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - CV3. `[doc]` Cluster-tier limits do not apply to the Low CPU or NVMe SSD cluster classes. [E] — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - CV4. `[doc]` Private-endpoint a [source]
- 1. Whether a runtime error fails open or fails closed (DIS3). 2. How default-allow is implemented (DIS2). 3. The body-size limit and the maximum number of policies per organization (CV8). 4. How IPv6 `::/0`, backup and snapshot regions, and Flex/M0 clusters are handled (CV5–CV7). 5. The exact text of denial errors (FM9). 6. Whether the bodies are type-checked against a schema (DIS4). 7. The first Terraform provider version with the preview flag (DIS8). [source]
- The gate is met, with caveats. There are 9 distinct URLs on 6 hosts: mongodb.com (docs and 4 blogs), aws.amazon.com, foojay.io, docs.cedarpolicy.com, amazon.science, and raw.githubusercontent.com. - **Independence caveat 1:** the AWS Open Source post is co-authored with MongoDB engineers, so it is not fully independent of the vendor. - **Independence caveat 2:** samuelmolling.github.io republishes the foojay article, so I did not count it separately. - **Truly independent sources:** foojay.io, a practitioner at Fireflies.ai, and the Cedar primary sources (docs.cedarpolicy.com and the OOPSLA 20 [source]
Comparisons and alternatives
- - **DIS1. Existing resources: "left alone" or "frozen"?** - Foojay: Atlas "does not automatically fix or block existing resources … only reports the violation." https://foojay.io/today/enforcing-governance-in-mongodb-atlas-with-resource-policies/ - Docs and the wildcard blog: every change that does not restore compliance is blocked, including adding unrelated IPs while `0.0.0.0/0` is present. https://www.mongodb.com/docs/atlas/atlas-resource-policies/ ; https://www.mongodb.com/company/blog/innovation/stop-a-dangerous-database-security-mistake-wildcard-ips - Both agree that Atlas never remediat [source]
- 1. Atlas accepts only `forbid` policies. `permit` is not allowed. [docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/) 2. Atlas Resource Policies allow by default. If no policy exists, users can do anything their Atlas role allows. [docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/) 3. Stock Cedar denies by default: a request is `Deny` unless a `permit` policy matches. So Atlas must supply an implicit permit, or invert the decision, for forbid-only policies to allow anything. Atlas does not document which. [Cedar authorization](https://docs.cedarpolicy.com/auth/a [source]
- 1. **Official docs contradict themselves on the project-exception example.** The prose says the example prevents cluster edits in project `6217f7fff7957854e2d09179` "unless Google Cloud is the only cloud provider". The code is `forbid … when { resource in Project && cloudProviders == [gcp] }`, which forbids GCP-only clusters, the opposite of the prose. One of the two is wrong. — https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 2. **Does an erroring policy fail open or fail closed?** Native Cedar ignores an erroring `forbid`, which means it fails open (D7). Atlas warns that using min [source]
- - **"Blocks existing resources" versus "does not block".** The practitioner source says Atlas "does not automatically fix or block existing resources" (https://foojay.io/today/enforcing-governance-in-mongodb-atlas-with-resource-policies/). The official docs say Atlas allows only compliant changes to existing non-compliant clusters (https://www.mongodb.com/docs/atlas/atlas-resource-policies/). These probably describe the same behaviour: the resource keeps running, but changes to it are gated. Neither source defines "block" in the same terms. - **Hierarchical policies.** The defense-in-depth blo [source]
- - **Launch date.** The Atlas changelog says 5 Feb 2025 (claim 6). The MongoDB blog says 10 Feb 2025 (claim 7). The forum post says 11 Feb 2025 (claim 10). The likely reading is release-train date vs. announcement dates, but no source says so. The Foojay write-up (claim 33) uses April 2025 because it counts from GA. - **Terraform introduction.** Provider 1.33.0 labels `mongodbatlas_resource_policy` a "New Resource" (claim 16). However, 1.32.0 already changed the same resource (claim 15), and the 1.33.0 notes say a preview flag was removed. So the resource existed behind `MONGODB_ATLAS_ENABLE_PR [source]
- 43. [doc] MongoDB rejected 3 alternatives. Expanded RBAC would have needed "hundreds or thousands" of role combinations. Hard-coded validation would have scattered authorization logic through the code. A custom DSL would have cost years of language and security work. https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-resource-policies/ 44. [doc] The trade-off is that platform and security teams now author and maintain the Cedar policies. https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-r [source]
Facts and statements
- In scope: how Atlas Resource Policies use Cedar, including evaluation semantics, enforcement boundaries, behaviour on existing resources, and gaps between the docs and secondary sources. Out of scope: Atlas RBAC roles in general, Backup Compliance Policy, network access features on their own, and Cedar outside Atlas. Cedar language facts appear only where they explain Atlas behaviour. [source]
- 22. Only Organization Owners can create, update, or delete policies. Organization Read Only and Organization Member can view them. [docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/) 23. Policy names must be unique (a duplicate returns `400`). Atlas does not detect identical bodies saved under different names. [docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/) 24. TLS-restriction policies need Terraform provider 1.33.0 or later. Atlas "might block connections from earlier versions of Terraform". [docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/ [source]
- 12. MongoDB declared Atlas Resource Policies generally available on 2025-04-14. The GA release added seven new policies and a GUI for creating and managing policies. https://www.mongodb.com/products/updates/now-ga-atlas-resource-policies/ 13. The GA blog lists the seven policies as: cluster size limits, restricting IP access list changes, restricting VPC peering changes, restricting private endpoint changes, a minimum TLS version, restricted TLS cipher suites, and required maintenance windows. https://www.mongodb.com/company/blog/7-new-resource-policies-strengthen-atlas-security 14. The GA blo [source]
- 26. A December 2025 Atlas release added policies that enforce cluster topology (replica set, sharded, or Global), disk size, and number of shards. https://www.mongodb.com/docs/atlas/release-notes/changelog/ 27. Cedar was accepted into the CNCF as a Sandbox project on 2025-10-08. https://www.cncf.io/projects/cedar/ 28. AWS announced the CNCF move on 2025-12-15 and named MongoDB among Cedar's "current adopters and maintainers." https://aws.amazon.com/blogs/opensource/cedar-joins-cncf-as-a-sandbox-project 29. The Atlas docs say that, as of May 2026, policies can require dedicated config servers f [source]
- **In scope:** the operational behaviour of Atlas Resource Policies, including authoring, enforcement semantics, rollout, exceptions, monitoring, tooling, known limitations, and Cedar-specific pitfalls in Atlas. **Out of scope:** Atlas RBAC roles in general, other Atlas IAM features, generic Cedar use outside Atlas, and competing policy engines such as OPA/Rego. Those are separate frontier items. [source]
- - https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - https://www.mongodb.com/company/blog/7-new-resource-policies-strengthen-atlas-security - https://www.mongodb.com/company/blog/innovation/stop-a-dangerous-database-security-mistake-wildcard-ips - https://www.mongodb.com/company/blog/innovation/enforce-data-sovereignty-with-mongodb-atlas-resource-policies - https://www.mongodb.com/docs/atlas/cli/current/command/atlas-api-resourcepolicies/ - https://aws.amazon.com/blogs/opensource/decoupling-authorization-at-scale-mongodb-atlas-and-cedar-based-resource-policies/ - https://foojay.io/t [source]
- - Cedar in Amazon Verified Permissions, and Cedar Analysis tooling. These are separate from Atlas. - Atlas RBAC and org/project roles. This is the parent-domain item. - The Atlas non-compliant resources endpoint as a separate governance/monitoring concept. [source]
- 37. [doc] Policies can be managed through the Atlas UI, the Admin API (`POST /api/atlas/v2/orgs/{ORG-ID}/resourcePolicies` with `Accept: application/vnd.atlas.2024-08-05+json`), Terraform, and CloudFormation (awscdk-resources-mongodbatlas v3.9.0 or later). https://www.mongodb.com/docs/atlas/atlas-resource-policies/ 38. [doc] The Terraform resource `mongodbatlas_resource_policy` requires `name`, `org_id`, and a `policies` list of `body` strings. It exposes `version` and created/updated user and date metadata, and it imports as `{ORG_ID}-{POLICY_ID}`. https://raw.githubusercontent.com/mongodb/te [source]
- 1. AWS open-sourced the Cedar policy language and SDK on 2023-05-10. https://aws.amazon.com/about-aws/whats-new/2023/05/cedar-open-source-language-access-control 2. At launch, Cedar was the policy language for Amazon Verified Permissions and AWS Verified Access. https://aws.amazon.com/about-aws/whats-new/2023/05/cedar-open-source-language-access-control 3. The primary technical paper, "Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization" (Cutler et al.), was first posted to arXiv on 2024-03-07. https://arxiv.org/abs/2403.04651 4. The paper says the Cedar team modeled [source]
- **Out of scope:** Atlas RBAC roles in general, other Atlas IAM features, Backup Compliance Policy, Cedar outside Atlas (Amazon Verified Permissions and the Cedar analysis tools), and similar guardrail systems such as AWS SCPs and Azure Policy. These are listed as handoffs at the end. [source]
- - W1. `[doc]` The launch blog gives Cedar's "concise syntax" as the reason. [H] — https://www.mongodb.com/company/blog/product-release-announcements/simplify-security-at-scale-resource-policies-mongodb-atlas - W2. `[doc]` The GA blog calls Cedar "an open-source policy language designed for both expressiveness and ease of use." [H] — https://www.mongodb.com/company/blog/7-new-resource-policies-strengthen-atlas-security - W3. `[doc]` The AWS post gives three reasons: Cedar separates policy logic from provisioning logic, its policies are readable and auditable, and it builds on AWS's investment i [source]
- - Cedar in Amazon Verified Permissions, and the Cedar analysis and verification tools - Atlas RBAC and org/project roles (the parent domain) - The Atlas `nonCompliantResources` endpoint as its own governance and monitoring concept - Atlas Backup Compliance Policy - Comparable guardrail systems: AWS SCPs and Azure Policy [source]
- **Cedar primary sources** - https://docs.cedarpolicy.com/auth/authorization.html - https://docs.cedarpolicy.com/policies/syntax-operators.html - https://docs.cedarpolicy.com/policies/validation.html - https://arxiv.org/abs/2403.04651 (2024-03-07) - https://www.amazon.science/publications/cedar-a-new-language-for-expressive-fast-safe-and-analyzable-authorization (OOPSLA 2024) - https://www.cncf.io/projects/cedar/ [source]
- 17. `search.index.modify` blocks only creating and changing search indexes. Atlas always allows deleting them. [docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/) 18. Cluster-tier size limits do not apply to the Low CPU or NVMe SSD cluster classes. [docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/) 19. Atlas normalizes any IPv4 `/0` CIDR (for example `10.0.0.0/0`) to `0.0.0.0/0` before it evaluates policies. The docs do not mention IPv6 or `::/0`. [docs](https://www.mongodb.com/docs/atlas/atlas-resource-policies/) 20. Private-endpoint conditions need individual [source]
- 33. A community write-up by Samuel Molling (Foojay, 2025-08-13) dates the feature to "April 2025", which is the GA date, not the February preview. It stresses that Atlas "does not automatically fix or block existing resources." https://foojay.io/today/enforcing-governance-in-mongodb-atlas-with-resource-policies/ [source]
- - https://aws.amazon.com/about-aws/whats-new/2023/05/cedar-open-source-language-access-control - https://arxiv.org/abs/2403.04651 - https://www.mongodb.com/docs/atlas/release-notes/changelog/ - https://www.mongodb.com/company/blog/product-release-announcements/simplify-security-at-scale-resource-policies-mongodb-atlas - https://www.mongodb.com/community/forums/t/atlas-resource-policies-now-available-in-public-preview/312228 - https://www.mongodb.com/community/forums/t/now-in-public-preview-two-more-atlas-resource-policies-to-manage-cluster-sizes-and-maintenance-windows/314568 - https://www.mon [source]
- **Out of scope.** These items are separate frontier items: Atlas RBAC roles in general, other Atlas IAM features, Cedar as a general language beyond the semantics that Atlas relies on, and comparable guardrail systems such as AWS SCPs and Azure Policy. [source]
- - F1. 2025-02-10: public preview with three policies: cloud provider, region, and wildcard IP. — https://www.mongodb.com/blog/post/simplify-security-at-scale-resource-policies-mongodb-atlas - F2. 2025-04-14: general availability (GA), which added seven policies: cluster size, IP access list, VPC peering, private endpoint, minimum TLS, cipher suites, and maintenance windows. — https://www.mongodb.com/company/blog/7-new-resource-policies-strengthen-atlas-security - F3. 2026-01-13: MongoDB published examples for topology, shard count, disk size, and tier. — https://www.mongodb.com/company/blog/in [source]
- The likely method for all of these is `:validate` and `nonCompliantResources` probes against a test organization, plus the Atlas OpenAPI spec. [source]
- The overlap across reports is high: about a third of raw claims were duplicates, and the docs page, the AWS post, and the Cedar authorization page are cited by all four reports. That overlap is evidence that desk sources are close to exhausted. [source]
- **Official MongoDB docs and API reference** - https://www.mongodb.com/docs/atlas/atlas-resource-policies/ - https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorgresourcepolicy - https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-validateorgresourcepolicies - https://www.mongodb.com/docs/atlas/cli/v1.57/command/atlas-api-resourcepolicies/ - https://www.mongodb.com/docs/atlas/cli/current/command/atlas-api-resourcepolicies/ - https://www.mongodb.com/docs/atlas/cli/current/command/atlas-api-resourcePolicies-validateResourcePolicies/ - https: [source]
- **Independent practitioner source and tooling** - https://foojay.io/today/enforcing-governance-in-mongodb-atlas-with-resource-policies/ (S. Molling, 2025-08-13) - https://raw.githubusercontent.com/mongodb/terraform-provider-mongodbatlas/master/docs/resources/resource_policy.md - https://github.com/mongodb/terraform-provider-mongodbatlas/blob/master/CHANGELOG.md [source]
- **Limits on independence:** mongodb.com is the only primary source for Atlas-specific behaviour. The AWS post was written jointly with MongoDB staff. The only fully independent sources are foojay.io and the Cedar primary sources. No report found an independent critique of the feature. Every disagreement above comes from comparing sources with each other, or with Cedar's documented semantics. [source]
- Passes run: 4 (docs → AWS/foojay/Terraform → Cedar semantics → MongoDB blogs). The final pass added edge-case claims 13, 18 and 21, so the concept is not saturated. Verdict: BUDGET_EXHAUSTED (edge-cases brief only). [source]
- Run: frontier-2026-09-25 · Skill: /rabbithole (history pass) · Written: 2026-09-25 Parent context: MongoDB Atlas IAM and RBAC [source]
- Met. The report draws on at least 3 independent hosts: mongodb.com (docs, blog, forum), aws.amazon.com, arxiv.org, cncf.io, github.com (Terraform changelog), and foojay.io (independent community author). The disconfirming source was Foojay, which disagrees on the introduction date and softens the enforcement semantics. Limits: Firecrawl and Bash were denied in this session, so WebFetch's summarizer returned every quote. I did not diff raw page text. The ACM DL page for the Cedar paper's OOPSLA venue returned 403, so I omitted the venue. [source]
Related concepts
- Atlas — is a part of Atlas Resource Policies Cedar
- Cedar — is a part of Atlas Resource Policies Cedar
- Policies — is a part of Atlas Resource Policies Cedar
- Resource — is a part of Atlas Resource Policies Cedar
Children
- Atlas nonCompliantResources endpoint (frontier)
- Cedar forbid-only policy patterns for Atlas (frontier)
- Atlas Terraform mongodbatlas_resource_policy (frontier)
Frontier under this node: Atlas Terraform mongodbatlas_resource_policy, Atlas nonCompliantResources endpoint, Cedar forbid-only policy patterns for Atlas