--- title: Atlassian — Tenant Context and Isolation in Cloud Platform source_type: company-tech-blog url: https://www.atlassian.com/engineering/cloud-architecture-and-guidelines archive_url: status: raw confidence: medium tags: [ca-multi-tenancy, atlassian, tenant-context, shard] related_projects: [ca-skeleton-operational-contract] related_branches: [feature-tenant-context-policy, feature-repository-access-permission-contract] created: 2026-05-22 last_reviewed: 2026-05-27 --- # Atlassian Cloud — Tenant Context / Isolation > Layer: `raw/company-tech-blogs/` — Atlassian Engineering 의 Cloud Architecture and Operational Guidelines. 수십만 tenant 를 운영하는 대표 hybrid (Bridge) 사례; shard 단위 isolation + tenant context (cloudId) 전파 패턴. > **출처 주의**: company-tech-blog 이므로 본 자료의 권장 사항을 "공식 best practice" 로 일반화 금지. ca-tmpl 미래 hybrid 확장의 사례 reference 로만 사용. > 검증된 요약은 `/ingest` 후 `wiki/concepts/`에 별도 작성. ## Parent / 활용 branch (필수) | Branch | 이 자료가 정당화하는 결정 | |---|---| | [[raw/branch-notes/feature-tenant-context-policy]] | Topic 6 Multi-tenancy 대안 6 (hybrid Deployment Stamps / shard) 의 대규모 사례 baseline. tenant context (cloudId/tenantId) 전파 = ca-tmpl 의 SecurityContext → repository 사상과 동일. | | [[raw/branch-notes/feature-repository-access-permission-contract]] | "Cross-tenant access is explicitly forbidden at the storage layer; tenant context is mandatory in every query" 원칙이 CROSS_TENANT_ADMIN capability 의 명시적 escape hatch 설계 정당화. | | [[raw/project-notes/ca-skeleton-operational-contract]] | §18 Control Plane Contract (Tenant Context Policy) 의 hybrid 확장 사례 reference. | ## 컨텍스트 / 왜 저장했는지 Atlassian Cloud (Jira, Confluence) 는 수십만 tenant 를 운영하는 대표 사례. **shard 단위 isolation + tenant_id 전파** 패턴은 ca-tmpl 미래 확장 (hybrid) 에 가장 가까운 실제 운영 사례. ## 출처 / Source - 원본 URL: https://www.atlassian.com/engineering/cloud-architecture-and-guidelines - 관련 글: "How we manage data residency on AWS", "Tenant context propagation" - 아카이브 URL: (미수집) - 저자 / 조직: Atlassian Engineering - 발행일: rolling docs (페이지 자체에 명시 없음) - 마지막 확인일: 2026-05-27 - **재검증 결과 (2026-05-27)**: 원본 URL (`https://www.atlassian.com/engineering/cloud-architecture-and-guidelines`) WebFetch 결과 **HTTP 404 Not Found** — 페이지가 이동/삭제됨. Atlassian engineering blog index (`atlassian.com/blog/atlassian-engineering`) 와 developer docs (`developer.atlassian.com/cloud/jira/platform/multi-tenancy/`) 도 redirect 또는 404. archive.org snapshot 도 WebFetch 차단. 2026-05-25 작성 당시 인용된 4개 quote 모두 verbatim 재확인 불가; claim strength `company-case-study` + `needs-confirmation` 유지. wiki 추출 또는 외부 인용 전 다른 출처 corroboration 필수. ## 핵심 인용 / Key quotes (verbatim, 2026-05-22 작성 시 인용) > needs-confirmation [§Shard assignment — 2026-05-25 capture, 2026-05-27 원본 URL 404] "Each Atlassian Cloud tenant is assigned to a shard — a unit of deployment that hosts many tenants but is operated as a single unit." > needs-confirmation [§Tenant context propagation — 2026-05-25 capture, 2026-05-27 원본 URL 404] "We propagate a tenant context (cloudId/tenantId) through every service call so that downstream services can enforce tenant-scoped data access." > needs-confirmation [§Data residency / realm — 2026-05-25 capture, 2026-05-27 원본 URL 404] "Data residency is implemented by placing all of a tenant's data in a specific realm (region), with metadata routing requests to the correct realm." > needs-confirmation [§Storage layer enforcement — 2026-05-25 capture, 2026-05-27 원본 URL 404] "Cross-tenant access is explicitly forbidden at the storage layer; tenant context is mandatory in every query." ## Claims Extracted / 추출된 주장 | Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove | |---|---|---|---|---|---| | ATL-MT-C1 | Atlassian Cloud 의 각 tenant 는 shard (many tenant 를 호스팅하지만 single unit 로 운영되는 deployment 단위) 에 할당 | needs-confirmation [§Shard assignment] "Each Atlassian Cloud tenant is assigned to a shard — a unit of deployment that hosts many tenants but is operated as a single unit." | `company-case-study` + `needs-confirmation` | Atlassian Jira / Confluence Cloud 운영 사례 | shard 크기 / tenant 배분 알고리즘 / rebalancing 메커니즘은 본 인용에 없음 | | ATL-MT-C2 | Tenant context (cloudId/tenantId) 가 모든 service call 을 통해 전파되어 downstream service 가 tenant-scoped data access 를 enforce | needs-confirmation [§Tenant context propagation] "We propagate a tenant context (cloudId/tenantId) through every service call so that downstream services can enforce tenant-scoped data access." | `company-case-study` + `needs-confirmation` | Atlassian internal RPC / microservices 운영 | propagation 의 구체 transport (HTTP header / gRPC metadata / message header) 는 본 인용에 없음 | | ATL-MT-C3 | Data residency 는 tenant 의 모든 data 를 특정 realm (region) 에 배치 + metadata routing 으로 구현 | needs-confirmation [§Data residency / realm] "Data residency is implemented by placing all of a tenant's data in a specific realm (region), with metadata routing requests to the correct realm." | `company-case-study` + `needs-confirmation` | Atlassian Cloud 의 GDPR / 데이터 주권 요구 시나리오 | realm 간 tenant 이동 / 복제 / 장애 시 failover 정책은 본 인용에 없음 | | ATL-MT-C4 | Cross-tenant access 는 storage layer 에서 명시적으로 금지; tenant context 는 모든 query 에 mandatory | needs-confirmation [§Storage layer enforcement] "Cross-tenant access is explicitly forbidden at the storage layer; tenant context is mandatory in every query." | `company-case-study` + `needs-confirmation` | Atlassian 의 internal multi-tenancy enforcement | 정확한 enforcement 메커니즘 (RLS / ORM filter / static analysis) 은 본 인용에 없음 | ## Usage Boundaries / 적용 경계 - **이 자료가 직접 증명하는 것**: - `ATL-MT-C1` ~ `C4`: Atlassian 의 shard + tenant context propagation + storage layer enforcement 운영 사례 (단, 인용 verbatim 재확인 실패) - **이 자료가 증명하지 않는 것**: - shard 모델이 모든 SaaS 의 best practice 라는 일반화 (company-tech-blog → 사례, 표준 아님) - 한국 fintech / 금융권 규제에서 shard 가 충분한 isolation 으로 인정되는지 (Atlassian 은 글로벌 enterprise SaaS, 규제 컨텍스트 다름) - tenant context propagation 의 specific 구현 (HTTP header / JWT claim / Thread-local) 권장 - shard rebalancing / tenant migration 의 운영 절차 (블로그에 명시 없음) - **내 프로젝트에 적용하려면 추가 확인이 필요한 것**: - ca-tmpl 이 shard 모델로 확장될 trigger 조건 (tenant 수 / 단일 deployment 부하 / 규제) - "storage layer enforcement" 의 ca-tmpl 구현 방식 — Hibernate Filter + CROSS_TENANT_ADMIN capability 의 조합이 Atlassian 의 "mandatory in every query" 와 동등한 강도인지 - 본 raw 인용 verbatim 의 정확성은 페이지 사람 검증 또는 archive.org snapshot 으로 보강 - "company-tech-blog" 이므로 wiki 추출 시 AWS / Hibernate 공식 자료와 corroboration 필요 (공식 best practice 로 단정 금지) ## 메모 / Notes (내 프로젝트 해석) > 본 섹션은 자료 직접 인용 아님. ca-tmpl 결정 컨텍스트 해석. - isolation 수준 (shared/schema-per-tenant/db-per-tenant): - shard 안에서는 shared DB + tenant_id (pool에 가까움) - shard 자체가 deployment stamp 역할 → 실질적으로 **hybrid (Bridge)** - tenant resolution 방식: cloudId(=tenant_id)를 모든 internal RPC header/context로 전파. 외부 진입은 OAuth token 안의 tenant claim. - scale 한계: shard 추가로 horizontal scale. 단일 shard 크기는 운영적으로 cap. - 운영 복잡도: - shard rebalancing (tenant 이동) 매우 복잡 - 전체 fleet rollout이 shard별 canary로 진행됨 → 안전하지만 시간 소요 - security/compliance: realm으로 GDPR/data residency 해결. tenant context propagation 자체가 security boundary. - 비용: 단순 pool보다 비쌈. 전부 silo보다 훨씬 쌈. - 장점: - blast radius 제한 - tenant 단위 SLA 차등 가능 - data residency 자연 지원 - 단점: - 모든 서비스가 tenant context를 강제로 요구 → 초기 framework 투자 필요 - 회사 규모(수십~수백 명 인프라 팀) 없이는 운영 어려움 - ca-tmpl과의 차이: - ca-tmpl은 현재 단일 deployment + opt-in tenant_id. shard 개념 없음. - **tenant context propagation (header/JWT → SecurityContext → repository)** 자체는 ca-tmpl과 동일한 사상. ## Related / 관련 - 같은 주제 다른 raw: - [[raw/official-docs/multitenancy-aws-saas-tenant-isolation-whitepaper]] — AWS 의 Silo/Pool/Bridge 분류 (Atlassian shard ≈ Bridge) - [[raw/official-docs/multitenancy-hibernate-user-guide]] — Hibernate ORM 의 3 strategy - [[raw/official-docs/multitenancy-microservices-io-pattern]] — microservices.io database-per-service - [[raw/company-tech-blogs/multitenancy-stripe-citus-schema-per-tenant]] — schema-per-tenant 한계치 사례 - 인용하는 branch: - [[raw/branch-notes/feature-tenant-context-policy]] - [[raw/branch-notes/feature-repository-access-permission-contract]] - 인용하는 project: - [[raw/project-notes/ca-skeleton-operational-contract]] (§18) - 인용한 wiki 요약: (미작성)