2. OCI租户与域(Identity Domain)规划

在OCI中,租户(Tenancy)是计费、配额和资源归属的最高边界,而域(Identity Domain)是身份与访问管理的边界。很多初学者会把两者混为一谈,实际上它们解决的是不同层面的问题:租户回答“资源属于谁、由谁付费”,域回答“谁可以登录、以什么身份访问哪些资源”。理解默认域与自定义域的区别、域的生命周期,以及域与租户、区间(Compartment)的关系,是设计多域身份隔离方案的基础。

默认域与自定义域的区别

当你创建一个新的OCI租户时,系统会自动创建一个默认域(Default Domain)。默认域与租户同名,承载租户内的初始身份体系,包括默认的管理员用户、初始管理员组以及基础的登录策略。它的特点是“开箱即用、与租户强绑定”,适合快速起步,但在身份规模扩大、需要多套独立身份体系时就会显得不够灵活。

自定义域(Custom Domain)是租户管理员在默认域之外按需创建的域。每个自定义域拥有独立的用户、组、应用、登录策略和密码策略,域之间默认互不可见。自定义域可以绑定独立的域名(例如 dev.example.com、prod.example.com),也可以使用OCI分配的默认域名。它更适合按环境、按业务线或按外部合作方划分身份边界。

对比维度默认域自定义域
创建方式租户创建时自动生成管理员手动创建
数量限制每个租户仅一个可创建多个(受配额限制)
域名与租户同名可自定义或使用OCI分配域名
身份隔离与租户内其他域隔离域间默认隔离,可独立管理
典型用途租户初始管理、基础身份多环境、多业务线、外部合作方
删除影响不可删除可删除,但需先清理域内资源

需要特别注意的是,默认域虽然“默认”,但并不意味着它只能用于测试。生产环境中,很多租户会把默认域作为核心管理域,把自定义域用于开发、测试或外部用户。关键在于:域一旦创建,其身份数据不会自动跨域共享,用户需要在目标域中单独创建或通过联合身份(如SAML、OIDC)接入。

域的生命周期管理

域的生命周期可以概括为“创建—配置—使用—停用—删除”五个阶段。每个阶段都有需要关注的操作和判断依据。

  • 创建:在OCI控制台的“身份与安全 → 域”中创建自定义域,指定域名、显示名称和描述。创建后域处于“激活”状态,但此时还没有用户和组。
  • 配置:设置登录策略(如会话超时、密码复杂度、多因素认证MFA)、创建用户和组、配置应用(如企业应用、OAuth客户端)。这一步决定了域的安全基线。
  • 使用:用户通过域专属的登录URL登录,管理员通过域内的组和策略分配对租户资源的访问权限。域与租户资源的关联通过策略(Policy)实现。
  • 停用:当域不再需要时,可以先停用域,阻止新登录,但保留数据以便审计或恢复。停用是可逆操作。
  • 删除:删除域是不可逆操作。删除前必须确保域内没有依赖资源,例如没有用户、组、应用或策略引用该域。删除后,域内的身份数据将无法恢复。

注意:默认域不可删除。如果误删自定义域,只能重新创建并重新配置,历史身份数据无法找回。因此,删除前建议先导出用户和组清单,或通过API备份关键配置。

域与租户、区间的关系

理解这三者的关系,可以用“三层边界”来记忆:

  • 租户:最高层,是资源、计费和配额的容器。一个租户可以包含多个域和多个区间。
  • 域:身份层,负责“谁可以登录”。域不直接拥有资源,而是通过组和策略获得对租户内资源的访问权。
  • 区间:资源层,是租户内资源的逻辑分组,用于隔离网络、计算、存储等资源。区间本身不包含身份,身份来自域。

它们之间的授权关系是:域中的用户 → 加入域中的组 → 组通过策略获得对租户内某个区间或资源的权限。例如,策略语句 Allow group ProdAdmins to manage all-resources in compartment Prod 表示:ProdAdmins组(来自某个域)中的用户,可以对Prod区间内的所有资源进行管理。这里的关键是,策略中的组必须明确来自哪个域,否则OCI无法解析身份来源。

OCI 租户 · 域 · 区间 三层边界关系 租户 Tenancy(计费 / 配额 / 资源归属) 域 Identity Domain(身份边界) 默认域 Default Domain 租户创建时自动生成 · 不可删除 自定义域 Custom Domain 按环境 / 业务线 / 合作方划分 自定义域(可扩展多个) 域间默认身份隔离 区间 Compartment(资源边界) Prod 区间 生产资源 · 严格策略 Dev 区间 开发资源 · 宽松策略 Shared 区间 共享网络 / 公共资源 策略授权 策略授权 策略授权 授权链路:域用户 → 域内组 → 策略(Allow group ... in compartment ...)→ 区间资源

多域场景下的身份隔离策略

当租户内存在多个域时,身份隔离是核心设计目标。常见的隔离策略有以下几种:

  1. 按环境隔离:生产域、测试域、开发域各自独立。生产域启用MFA和严格密码策略,开发域可放宽。用户在不同域中拥有不同账号,避免开发人员误操作生产资源。
  2. 按业务线隔离:不同业务线使用不同域,各自管理用户和组。跨业务线的资源访问通过策略显式授权,避免默认可见。
  3. 按内外隔离:内部员工使用默认域或内部自定义域,外部合作方使用独立的外部域。外部域只授予特定应用或区间的有限权限,且可独立停用而不影响内部用户。
  4. 联合身份接入:对于已有企业身份提供商(IdP)的场景,可以将自定义域配置为SAML或OIDC联合,让用户使用企业账号登录,同时在OCI侧保持域级隔离。

实践建议:在多域场景中,策略语句必须明确指定域。例如 Allow group 'DevDomain'/'Developers' to manage all-resources in compartment Dev。如果省略域前缀,OCI可能无法正确解析组来源,导致授权失败。建议在策略命名和组命名中统一加入域标识,便于审计和排障。

最后,域与租户、区间的关系可以总结为:租户是资源容器,域是身份容器,区间是资源分组。域不直接拥有资源,而是通过组和策略与区间建立授权关系。规划时,先确定需要几个域、每个域服务哪些人群,再设计区间划分和策略映射,最后配置域的生命周期管理流程。这样,身份隔离和资源隔离才能协同工作,既保证安全,又便于运维。