Skip to content

Access Control Policy

Status: Active. Last updated April 12, 2026. Purpose: SOC 2 evidence for CC6.1 (Logical Access), CC6.2 (Credentials), CC6.3 (Access Removal)


Principle of Least Privilege

Every account, user, and service credential is granted the minimum access necessary for its function. No shared credentials. No persistent admin sessions.


Atlas Admin Access

PersonAtlas RoleMFADate GrantedGranted By
Taha AbbasiOrganization OwnerYesApril 12, 2026Initial setup

MFA Requirement: All Atlas organization members must have MFA enabled. No exceptions.

Database Users

Bootstrap Admin (Active)

UserRoleScopePurposeCreated
atlas-admin-tahaatlasAdminCluster-wideInitial setup, schema creation, data loadingApril 12, 2026

Scoped Service Users (Pending Creation)

These users will be created in Atlas UI now that Phase 1 collections exist. Each is scoped to the minimum required permissions.

UserAccess LevelCollectionsPurpose
app-readRead-onlyplan_years, plans, regions, zip_countyAPI server queries
app-writeRead-writeAll Phase 1 collectionsData ingestion scripts
audit-writeInsert-onlyaudit_logAPI audit trail

Important: app-read cannot read audit_log. audit-write can only insert, never read or delete.

Network Access

TypeValuePurposeAddedExpiry
IP Allowlist0.0.0.0/0Development (temporary)April 12, 2026Remove before production

Production plan: Replace 0.0.0.0/0 with VPC peering to AWS ECS. No public network access in production.


Credential Management

Storage

EnvironmentMethodLocation
DevelopmentEnvironment variable.env.local (gitignored)
ProductionSecrets managerAWS Secrets Manager (future)

Never committed to source control. .env.example contains placeholders only.

Rotation Schedule

Credential TypeRotation FrequencyResponsible
Atlas admin passwordQuarterlyTaha Abbasi
app-read passwordQuarterlyTaha Abbasi
app-write passwordQuarterlyTaha Abbasi
audit-write passwordQuarterlyTaha Abbasi
CMS API keyAnnual (or on compromise)Taha Abbasi

Rotation Process

  1. Generate new credential in Atlas UI / service provider
  2. Update .env.local (development) and Secrets Manager (production)
  3. Verify application connectivity with new credential
  4. Invalidate old credential
  5. Document rotation date in this file

Access Grant Process (Onboarding)

  1. New team member requests access with specific justification
  2. Owner reviews and determines minimum necessary role
  3. Account created with scoped permissions
  4. MFA enrolled and verified before access is granted
  5. Access documented in this file
  6. Git commit records the change

Access Revocation Process (Offboarding)

  1. Remove user from Atlas organization immediately
  2. Remove user from all service accounts (GitHub, Vercel, etc.)
  3. Rotate any credentials the person had direct access to
  4. Remove their IP from Atlas network allowlist
  5. Update this document
  6. Git commit records the revocation

SOC 2 Control Mapping

ControlEvidence
CC6.1 (Logical Access)Role definitions, user-to-permission mapping, least privilege principle
CC6.2 (Credentials)Credential storage policy, rotation schedule, no shared credentials
CC6.3 (Access Removal)Offboarding process with immediate revocation + credential rotation
CC6.6 (System Boundaries)Network access policy, VPC peering plan

Change Log

DateChangeBy
April 12, 2026Initial Atlas setup, bootstrap admin createdTaha Abbasi
April 12, 2026Development IP allowlist set to 0.0.0.0/0 (temporary)Taha Abbasi
April 12, 2026Phase 1 collections + indexes createdTaha Abbasi

AskFlorence Internal Documentation. Not for public distribution.