Skip to content

Operating Model

Data Platform uses a same-account model for each active environment. The EKS cluster, service IAM roles, Glue catalog, Lake Formation settings, and lakehouse S3 bucket for an environment live in the same <env>-dataops account.

flowchart LR
  Engineer[Engineer SSO profile] --> Terraform[Terraform root]
  CI[GitHub Actions OIDC] --> Provisioner[env-dataops-data-platform-provisioner]
  Terraform --> Provisioner
  Provisioner --> AWS[AWS resources]
  Pod[Workload pod] --> IRSA[Service IRSA role]
  IRSA --> LF[Lake Formation and Glue]
  LF --> S3[Iceberg S3 data]
  Polaris[Polaris] --> Glue[Glue catalog]
  Kyuubi[Kyuubi Spark] --> Polaris
  Kyuubi --> Glue

Principles

  • Deployments use environment-owned provisioner roles.
  • Workloads use service-specific IRSA roles.
  • Lake Formation grants are made to the consuming principal, not to the human or CI identity that deployed the resource.
  • Prod deployments go through protected CI/CD. Local prod write deployment is intentionally not the normal path.
  • Cross-environment reads use Glue, Lake Formation, S3, Kyuubi, and Polaris configuration. They do not require services in one environment to connect to another environment’s Polaris RDS.

Checked Against

  • docs/data-platform-auth-and-data-flow.html.
  • implementations/2026-05-21-dl-419-prod-dataops-runtime-progress.md.
  • implementations/2026-05-22-dl-419-dev-catalog-interactive-write-exception-progress.md.
  • implementations/2026-05-26-dl-388-terraform-cutover-progress.md.