注意:

深入了解基于标记的 Oracle Cloud Infrastructure Identity and Access Management 策略

简介

Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 策略是稳健、安全的云环境的基石。它们提供强大、灵活的机制来控制对 OCI 资源的访问,确保只有授权用户和服务才能对指定资源执行特定操作。

OCI IAM 策略的核心是以用户可读的语法编写的一组声明性语句,指示可以访问什么并在哪些条件下访问。通过这些策略,组织可以实施最小权限原则,仅向用户和服务授予执行其任务所需的权限,而不再授予其他权限。这样可以最大限度地降低安全风险,同时保持运营效率。

OCI IAM 策略在 OCI 层次结构的各个级别应用,包括区间、租户和特定资源,从而高度适应复杂的组织结构。通过 OCI 的策略继承和区间化,管理员可以根据特定安全性和运营要求建立细粒度控制。有关 OCI 策略的详细信息,请参阅策略入门

在本教程中,我们将深入探讨策略优化的重要性,探索优化策略的最佳实践以实现最佳结果,并重点介绍可以充分利用策略优化的方案。

目标

先决条件

揭秘策略组件和语法

要有效地优化 OCI IAM 策略,了解其结构和关键组件至关重要。OCI 中的策略通过指定谁(主要)、对什么(资源)和什么(范围)来定义权限。下面我们对此进行细分:

OCI IAM 策略的关键组件

奖金提示:了解 OCI IAM 策略中的集合交集概念

只有当两组值之间存在重叠时,OCI IAM 策略中的 set-intersect 才用于授予访问权限。这样可确保根据组成员资格、资源标记或其他属性动态授予权限,而不是对策略中的特定用户或组进行硬编码。

大规模的 OCI IAM 策略模型

OCI IAM 策略是保护 OCI 工作负载的基本要素之一。能够为客户扩展和支持大量负载至关重要。因此,我们创建了一个策略模型,该模型需要在 OCI 的策略限制内使用少量策略,适用于任何规模的工作负载。以下是采用可扩展策略模型的一些原因。有关更多信息,请参见IAM With Identity Domains Limits

优化 OCI IAM 策略是维护安全、可扩展、高效的云环境,同时保持在 OCI 策略限制内的关键任务。这就是为什么这个过程至关重要:

标记在策略管理中的作用

标记是 OCI 中的一项强大功能,它通过对资源进行细粒度控制来显著增强策略管理。标记是元数据标签,表示为可以附加到资源的键 - 值对。它们可帮助大规模组织、管理和实施访问控制,尤其是在拥有多个团队和项目的复杂云环境中。有关更多信息,请参阅标记概览

标记如何增强策略管理

  1. 简化资源标识:标记提供了一种基于项目、环境、所有者或部门等属性对资源进行分类的统一方法。这简化了将策略应用于特定资源子集的过程。

    示例:使用 Project: ProjectX 标记资源可启用目标访问策略。

    Allow group Developers to manage instances in tenancy where tag.Project = 'ProjectX'
    
  2. 启用动态策略实施:基于标记的策略适应不断变化的资源属性。例如,如果新实例使用 Environment: Production 进行标记,它将自动继承为生产环境定义的策略。

    策略示例:

    Allow group QA to inspect instances in tenancy where tag.Environment = 'Test'
    
  3. 简化多项目和多团队监管:标记通过将资源与特定团队或项目关联来帮助隔离访问。这降低了跨多个组管理权限的复杂性。

  4. 简化自动化:标记可以推动自动化的工作流,以实现资源创建、监视和生命周期管理。例如,成本跟踪脚本可以检索标记有 CostCenter 的所有资源:市场营销以生成详细的费用报表。

  5. 改进成本管理和报告:使用标记可以对特定项目、部门或环境进行细粒度成本归因。这有助于组织更有效地跟踪支出和优化预算。

标记监管:控制标记管理

要保持策略管理的一致性、可靠性和安全性,应严格控制标记创建和修改。监管可确保标记正确应用并符合组织标准。将标记管理限制在一组特定的个人或组中是组织云环境中保持控制、一致性和安全性的关键要素。

基于标记的 OCI IAM 策略,适用于实际使用场景

现在,在上面学到的所有内容中,让我们根据实际使用场景中的用户原则和实例原则来优化 OCI IAM 策略。但在我们这样做之前,每个客户都需要一些共同的政策,无论其用例如何。

为用户主体扩展 OCI IAM 策略

OCI IAM 策略模型:在此策略模型中,目标是编写少量更易于管理的策略,这些策略由数据(在本例中为标记)提供信息,也称为基于属性的访问控制。我们将分配给目标资源或目标资源区间的标记称为权限标记,以进行访问控制。

权限标记:为租户中的每个动词(操作)+ 资源类型组合定义权限标记。它们定义需要分配给目标资源的一组用户的唯一权限。该列表不是一次设置和完成的。从少量权限标记开始。在策略模型上获取句柄后,可以添加更多权限标记。在本教程中,我们将创建 permission tag namespace (权限标记名称空间)作为 mgmt 。此外,我们将创建一个标记名称空间(我们将调用此 infosec ),其中包含一个名为 gname 的标记键。

  1. 对于具有四种资源类型的以下区间结构以及为这些资源分配管理和使用权限,我们将创建权限标记。

    权限标记

  2. 对于需要分配给目标的每个权限(大多数情况下为区间),请创建一个组。我们将权限标记分配给资源(使用区间默认标记)和资源区间。标记值是对目标资源具有给定权限的组。

    权限标记组

  3. 定义权限标记后,我们可以编写策略。最终结果是,在租户中定义的每个权限标记仅需要一个策略。给定权限的相同策略将在整个租户中运行。

    权限标记策略

  4. 在我们引入更多工作负载时,如果要管理更多的资源类型,则可能需要为这些权限标记添加更多权限标记和策略。否则,只需为具有应具有访问权限的用户组的新工作量分配现有权限标记。我们不必为新负载编写任何新策略。

此方法将在此处讨论的所有示例中保持一致,作为定义 OCI IAM 组和策略的基础。

示例 1:每个应用程序的区间

步骤 1:全面了解客户的业务概览

CompanyA 是一家不断增长的技术公司,为客户开发和部署多个云原生应用。每个应用都符合特定的客户群,并具有严格的安全性和合规性要求。为了确保隔离、可扩展性和高效的访问控制,CompanyA 使用结构化隔间方法组织其 OCI 资源。

步骤 2:为工作量设计区间结构

如前所述,CompanyA 采用 OCI IAM 策略模型来扩展其 OCI IAM 策略。他们为应用创建了单独的区间,以保持资源隔离。

用例 1

注:只有管理员才能管理 mgmtinfosec 标记名称空间。

步骤 3:设计 Verb+Resource 类型的以下权限标记组合

在 OCI 中创建组。

  1. 使用具有创建组的权限的管理账户登录到 OCI IAM 域。

    OCI 主目录

  2. 转到 Identity and Security(身份和安全),然后单击 Identity(身份)下的 Domains(域)

    域

  3. 选择您的区间,然后单击要为其创建组的域。

    选择域

  4. 单击

    组

  5. 根据权限标记定义。(可选)将您的用户添加到这些组中。

    创建组

注:您必须为权限和目标的唯一组合创建组。如果同一功能组用户 (NetworkAdmin) 需要有权跨所有目标管理网络,则只需一个组即可跨所有目标管理访问。

以下是这些标记的权限标记和 OCI IAM 组。按照以上步骤为定义的每个权限标记创建组。

  1. 根区间:根区间用作顶层管理层。在哪里,我们的管理员组将被标记为权限标记。以下标记包括:

    • 管理员:管理整体租户管理的 manageall 权限。
    • UseAdministrators:useall 权限,用于跨租户访问资源。
    • 审计者:对资源具有只读访问权限的 readall 权限,可用于跨租户监视。
  2. 每个应用程序区间模型:CompanyA 有多个基于云的应用程序。我们将为每个应用程序创建一个单独的父区间。让我们来了解一下此模型如何作为父区间应用于应用程序 1 (App1)应用程序 2 (App2)

    • 应用 1 (App1):在 OCI 上托管的面向客户的应用。

      • 网络区间:所有网络相关资源的区间,例如 VCN、子网等。现在,让我们创建权限标记及其相应的 OCI IAM 组。
        • App1NetworkAdmin:用于管理 App1 网络资源的工程师的 managenetwork 资源权限标记。
        • App1NetworkUser:需要有限访问 App1 网络配置的开发人员的 usenetwork 资源权限标记。
        • App1NetworkReader:用于验证网络设置 App1 的审计者的 readnetwork 资源权限标记。
      • 计算区间:适用于计算实例的区间。现在,让我们创建权限标记及其相应的 OCI IAM 组。
        • App1ComputeAdmin:面向系统管理员的 managecompute 资源权限标记,用于为 App1 后端预配和扩展计算实例。
        • App1ComputeUser:面向部署和测试 App1 后端服务的开发人员的 usecompute 资源权限标记。
        • App1ComputeReader:审计者的 readcompute 资源权限标记,用于监视 App1 的计算资源使用情况。
      • 数据区间:与数据库和存储相关的资源的区间。现在,让我们创建权限标记及其相应的 OCI IAM 组。
        • App1DataAdmin:面向管理 Oracle Autonomous Databases 和 OCI Object Storage for App1 的数据库管理员的 managedb 资源权限标记。
        • App1DataUser:usedb 资源权限标记,供数据科学家访问数据集以进行与 App1 相关的分析。
        • App1DataReader:审计者查看 App1 数据库配置的 readdb 资源权限标记。
    • 应用 2 (App2):适用于 CompanyA 运营的内部企业资源计划 (ERP) 系统。

      注:在此处,我们还将遵循相同的区间结构方法,并在父 App2 区间下创建网络区间计算区间数据区间。为了避免冗余,我们将记下 App2 的权限标记和 OCI IAM 组。

      • 网络区间:

        • App2NetworkAdmin:managenetwork 资源权限标记。
        • App2NetworkUser:usenetwork 资源权限标记。
        • App2NetworkReader:readnetwork 资源权限标记。
      • 计算区间:

        • App2ComputeAdmin:managecompute 资源权限标记。
        • App2ComputeUser:usecompute 资源权限标记。
        • App2ComputeReader:readcompute 资源权限标记。
      • 数据区间:

        • App2DataAdmin:managedb 资源权限标记。
        • App2DataUser:usedb 资源权限标记。
        • App2DataReader:readdb 资源权限标记。

注:将权限标记应用于目标(目标可以是资源或区间),以指示哪个组在目标上对 App1App2 具有该特定权限。

步骤 4:为这些权限标记编写 OCI IAM 策略

我们将使用此处讨论的相同方法为 CompanyA 创建策略:更少一些 - 为组扩展 OCI IAM 策略。为此,请使用一个名为 gname 的标记键创建一个标记名称空间(我们将调用此 infosec )。

  1. 使用具有创建策略权限的管理账户登录到 OCI IAM 域。

    OCI 主目录

  2. 转到 Identity and Security(身份和安全),然后单击 Identity(身份)下的 Policies(策略)

    策略

  3. 选择根区间,然后单击创建策略

    创建策略

  4. 在策略中输入名称说明,然后添加策略语句。单击创建

    • 所有资源策略:

      Allow any-user to manage all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.manageall)
      Allow any-user to use all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useall)
      Allow any-user to read all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readall)
      

      策略语句

      注:按照相同的过程定义以下所有提到的策略并添加其各自的策略语句。

    • Cloudguard 策略:

      Allow any-user to manage cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managecspm)
      Allow any-user to use cloud-guard-family in tenancy where
      sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usecspm)
      Allow any-user to read cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readcspm)
      
    • 网络策略:

      Allow any-user to manage virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managenetwork)
      Allow any-user to use virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useetwork)
      Allow any-user to read virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readnetwork)
      
    • 计算策略:

      Allow any-user to manage instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managecompute)
      Allow any-user to use instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usecompute)
      Allow any-user to read instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readcompute)
      
    • 数据库策略:

      Allow any-user to manage database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managedb)
      Allow any-user to use database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usedb)
      Allow any-user to read database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readdb)
      

示例 2:每个客户/租户的区间

步骤 1:全面了解客户的业务概览

CompanyB 解决方案是一家先进的独立软件供应商 (Independent Software Vendor,ISV),它在云基础设施、数据管理和分析方面提供基于租户的 SaaS 应用。CompanyB 为各行各业的多个客户提供无缝、安全且可扩展的解决方案。他们的成功取决于将 OCI 与精心设计的区间结构结合使用,以高效管理资源,同时满足安全性和合规性要求。

步骤 2:为工作量设计区间结构

CompanyB 隔离了客户的负载,并创建了专用子区间。此外,它们还具有网络区间、共享存储和数据库区间。即使是 CompanyB 也遵循 OCI IAM 策略模型来扩展其 OCI IAM 策略。

用例 2

步骤 3:设计 Verb+Resource 组合类型的以下权限标记

要创建组,请参见示例 1 步骤 3。您必须为下面定义的所有权限标记创建组。

  1. 根区间—集中监管:根组件充当中央层,用于监管 OCI 租户中的所有资源和活动。在哪里,我们的管理员组将被标记为权限标记。以下标记包括:

    • 管理员:管理整体租户管理的 manageall 权限。
    • UseAdministrators:useall 权限,用于跨租户访问资源。
    • 审计者:对资源具有只读访问权限的 readall 权限,可用于跨租户监视。
  2. 网络区间—运营干线:网络区间支持 CompanyB 的云网络基础设施,从而在所有资源之间实现连接。这包括虚拟云网络 (Virtual Cloud Network,VCN)、子网、网关和负载平衡器。让我们为其定义权限标记和相应的 OCI IAM 组。

    • NetworkAdmin:用于管理 CompanyB 网络资源的工程师的 managenetwork 资源权限标记。
    • NetworkUser:需要有限访问 CompanyB 网络配置的开发人员的 usenetwork 资源权限标记。
    • NetworkReader:用于验证网络设置 CompanyB 的审计者的 readnetwork 资源权限标记。
  3. 租户区间—适用于不同客户负载的隔离区:租户区间的结构是为了隔离每个客户端(租户)的资源和工作负载。这可确保 CompanyB 提供安全、私有的服务,同时保持运营效率。

    • 租户 1 区间:租户 1 表示使用 CompanyB 进行应用程序开发和日志记录服务的主要企业客户端。以下是权限标记和相应的 OCI IAM 组:

      • t1devadmin对于租户 1 的开发团队,manageappdev 资源权限具有管理权限,可用于配置和部署定制应用程序。
      • t1devuseruseappdev 资源权限,用于监视和调整应用程序资源。租户 1 的开发人员将这些资源用于日常开发和测试。
      • t1logsadmint1devusermanagelogsuselogs 资源对日志记录和监视角色的权限可确保管理员配置日志记录服务,而开发人员则可访问日志来调试和优化应用程序。
      • t1devadmint1devuser租户 1 的 managecspmusecspm 资源权限,因为它们还侧重于安全状况,并且能够监视和补救安全风险。
    • Tenant 2 and Tenant 3 Compartments: The structure for Tenant 2 and Tenant 3 mirrors that of Tenant 1, with roles like t2devadmin, t2devuser, t3devadmin, t3devuser, t2logsadmin and t3logsadmin ensuring that each tenant operates in a fully isolated environment.此方法使 CompanyB 能够保持一致的监管,同时满足特定的租户需求。

    • 共享区间—适用于所有租户的集中式资源:共享区间包括多个租户利用的数据库和对象存储等资源,但在逻辑上隔离以保证隐私和安全。

      • 数据库区间:
        • dbadminCompanyB 数据库管理员的 managedb 资源权限用于处理所有租户使用的共享数据库,包括预配、缩放和打补丁。
        • dbuser特定于租户的用户的 usedb 资源权限访问各自的数据库方案或服务。
        • dbreader审计者的 readdb 资源权限具有只读访问权限,以确保数据库配置符合安全策略。
      • 存储区间: OCI 对象存储集中管理,每个租户都有专用存储桶:
        • osadmin负责管理共享对象存储资源的 manageobject 资源权限。
        • osuseruseobject 特定于租户的存储资源权限(例如 t1osurt2osurt3osur)可确保租户仅访问各自的存储桶。
        • osreader合规性团队的 readobject 资源权限会查看存储配置和使用模式。

步骤 4:为这些权限标记编写 OCI IAM 策略

要创建策略,请参见示例 1 步骤 4。您必须创建以下策略。

示例 3:大型企业区间结构

步骤 1:全面了解客户的业务概览

CompanyC Solutions 是一家专注于创新软件解决方案的跨国组织,它决定将其关键任务工作负载迁移到 OCI。该公司在金融和医疗保健等高度监管的行业开展业务,其中安全性、合规性和可扩展性至关重要。

步骤 2:为工作量设计区间结构

现在,让我们了解 CompanyC 的区间结构,该结构遵循 OCI IAM 策略模型来扩展其 OCI IAM 策略。

用例 3

步骤 3:设计 Verb+Resource 类型的以下权限标记组合

要创建组,请参见示例 1 步骤 3。必须为以下所有权限标记创建组。

  1. 根区间—集中监管:根组件充当中央层,用于监管 OCI 租户中的所有资源和活动。在哪里,我们的管理员组将被标记为权限标记。以下标记包括:

    • 管理员:管理整体租户管理的 manageall 权限。
    • UseAdministrators:useall 权限,用于跨租户访问资源。
    • 审计者:对资源具有只读访问权限的 readall 权限,可用于跨租户监视。
  2. PROD 区间:用于托管直接影响业务运营和最终用户的关键任务生产工作负载的区间。每个应用都具有专用的子区间来进行资源隔离和优化管理。让我们为其定义权限标记和相应的 OCI IAM 组。

    • NetworkAdmin:用于管理 CompanyC 的网络资源的工程师的 managenetwork 资源权限标记。
    • NetworkReader:用于验证网络设置 CompanyC 的审计者的 readnetwork 资源权限标记。
    • ComputeAdmin:managecompute 资源权限标记,供系统管理员为 CompanyC 预配和扩展计算实例。
    • ComputeReader:审计者的 readcompute 资源权限标记,用于监视 CompanyC 的计算资源使用情况。
    • StorageReader:存储管理团队管理存储配置的 manageobject 资源权限。
    • StorageReader:合规性团队的 readobject 资源权限会查看存储配置和使用模式。
    • SecurityAdmin:managecspm区间产品的资源权限,因为它们还侧重于安全状况,能够监视和补救安全风险。

    现在,我们将继续为特定于应用的子区间定义权限标记和相应的 OCI IAM 组。为了节省时间,我们已合并为所有 3 个不同的应用程序区间定义了权限。

    • 应用程序区间:
      • PRApp1NetAdmin、PRApp2NetAdmin 和 PRApp3NetAdmin:使用 managenetwork 资源权限标记管理 OCI IAM 组,以便工程师分别管理 App1App2App3 的网络资源。
      • PRApp1NetUser、PRApp2NetUser 和 PRApp3NetUser:使用 usenetwork 资源权限标记管理 OCI IAM 组,以便工程师分别管理 App1App2App3 的网络资源。
      • PRApp1ComputeAdmin、PRApp2ComputeAdmin 和 PRApp3ComputeAdmin:使用 managecompute 资源权限标记管理 OCI IAM 组,以便工程师分别为 App1App2App3 管理 OCI 计算实例。
      • PRApp1ComputeUser、PRApp2ComputeUser 和 PRApp3ComputeUser:使用 OCI Compute 实例分别为 App1App2App3 的工程师管理具有 usecompute 资源权限标记的 OCI IAM 组。
      • PRApp1StorageAdmin、PRApp2StorageAdmin 和 PRApp3StorageAdmin:使用 manageobject 资源权限标记管理 OCI IAM 组,以便工程师分别为 App1App2App3 管理 OCI 对象存储。
      • PRApp1StorageUser、PRApp2StorageUser 和 PRApp3StorageUser:使用 OCI Object Storage 分别为 App1App2App3 的工程师管理具有 useobject 资源权限标记的 OCI IAM 组。
  3. NPROD 区间:专用于暂存开发质量保证环境。此区间的结构与 PROD 类似,以确保一致性。让我们为其定义权限标记和相应的 OCI IAM 组。

    • NetworkAdmin:用于管理 CompanyC 网络资源的工程师的 managenetwork 资源权限标记。
    • NetworkReader:用于验证网络设置 CompanyC 的审计者的 readnetwork 资源权限标记。
    • ComputeAdmin:managecompute 资源权限标记,供系统管理员为 CompanyC 预配和扩展 OCI 计算实例。
    • ComputeReader:用于监视 CompanyC 的 OCI 计算资源使用情况的审计者的 readcompute 资源权限标记。
    • StorageReader:存储管理团队管理存储配置的 manageobject 资源权限。
    • StorageReader:合规性团队的 readStorage 资源权限会查看存储配置和使用模式。
    • SecurityAdmin:managecspm区间 NPROD 的资源权限,因为它们还侧重于安全状况,并且能够监视和补救安全风险。

    同样,现在我们将继续为特定于应用的子区间定义权限标记和相应的 OCI IAM 组。

    • 应用程序区间:
      • NPApp1NetAdmin、NPApp2NetAdmin 和 NPApp3NetAdmin:使用 managenetwork 资源权限标记管理 OCI IAM 组,以便工程师分别管理 App1App2App3 的网络资源。
      • NPApp1NetUser、NPApp2NetUser 和 NPApp3NetUser:使用 usenetwork 资源权限标记管理 OCI IAM 组,以便工程师分别管理 App1App2App3 的网络资源。
      • NPApp1ComputeAdmin、NPApp2ComputeAdmin 和 NPApp3ComputeAdmin:使用 managecompute 资源权限标记管理 OCI IAM 组,以便工程师分别为 App1App2App3 管理 OCI 计算实例。
      • NPApp1ComputeUser、NPApp2ComputeUser 和 NPApp3ComputeUser:使用 OCI Compute 实例分别为 App1App2App3 的工程师管理具有 usecompute 资源权限标记的 OCI IAM 组。
      • NPApp1StorageAdmin、NPApp2StorageAdmin 和 NPApp3StorageAdmin:使用 manageobject 资源权限标记管理 OCI IAM 组,以便工程师分别为 App1App2App3 管理 OCI 对象存储。
      • NPApp1StorageUser、NPApp2StorageUser 和 NPApp3StorageUser:使用 OCI Object Storage 分别为 App1App2App3 的工程师管理具有 useobject 资源权限标记的 OCI IAM 组。
  4. 共享区间:共享区间托管用于监视的资源,例如日志记录和 Cloud Guard OCI 服务。它还具有多个租户使用的加密和解密密钥,同时确保逻辑隔离以维护隐私和安全。您的应用程序中需要访问这些服务的所有管理员都将添加到为这些服务创建的 OCI IAM 组中。让我们为其定义权限标记和相应的 OCI IAM 组。

    • Oracle Cloud Guard 区间:

      • cspmAdmin具有 managecspm 资源权限标记的管理员管理 OCI IAM 组,用于管理 Oracle Cloud Guard 的 PRODNon PROD 区间。
      • cspmUser具有 usecspm 资源权限标记的 OCI IAM 组,适用于工程师使用/监视 Oracle Cloud Guard 的 PRODNon PROD 区间。
      • cspmReader对于为 PRODNon PROD 区间读取 Oracle Cloud Guard 的工程师,具有 readcspm 资源权限标记的 OCI IAM 组。
    • OCI 日志记录区间:

      • logsAdmin具有 managelogs 资源权限标记的管理员管理 OCI IAM 组,用于管理 PRODNon PROD 区间的 OCI 日志记录。
      • logsUser具有 uselogs 资源权限标记的 OCI IAM 组,适用于使用/监视 PRODNon PROD 区间的 OCI 日志记录工程师。
      • logsReader对于为 PRODNon PROD 区间读取 OCI Logging 的工程师,具有 readlogs 资源权限标记的 OCI IAM 组。
    • 密钥区间:

      • kmsAdmin具有 managekeys 资源权限标记的管理员管理 OCI IAM 组,用于管理 PRODNon PROD 区间的密钥储存库。
      • kmsUser具有 usekeys 资源权限标记的 OCI IAM 组,适用于使用/监视 PRODNon PROD 区间的密钥储存库的工程师。
      • kmsReader对于为 PRODNon PROD 区间读取密钥储存库的工程师,具有 readkeys 资源权限标记的 OCI IAM 组。
  5. 游乐场区间:用于实验、开发和测试的灵活且隔离的环境。此区间与生产或合规性限制无关,因此非常适合创新。在此处,对于子区间,我们只有一个 OCI IAM 管理员组,并为测试要求所需的所有 OCI 资源提供管理权限。

    • 开发区间:

      • DevAdmin使用 managenetworkmanagecomputemanageobjectmanagekeysmanagelogs 资源权限管理开发管理员的 OCI IAM 组,以测试开发区间中的新实施。
    • 测试区间:

      • TestAdmin使用 managenetworkmanagecomputemanageobjectmanagekeysmanagelogs 资源权限为开发管理员管理 OCI IAM 组,以测试测试区间中的新实施。
    • 性能测试区间:

      • PerfTestAdmin使用 managenetworkmanagecomputemanageobjectmanagekeysmanagelogs 资源权限为开发管理员管理 OCI IAM 组,以测试性能测试区间中的新实施。

步骤 4:为这些权限标记编写 OCI IAM 策略

要创建策略,请参见示例 1 步骤 4。您必须创建以下策略。

注:对于此类方案,每次启动新工作量时:

用于细粒度访问控制的基于标记的权限模型

到目前为止,我们已经讨论过为一组资源创建管理、用户或读取权限的所有示例。但是,大多数客户需要细粒度的访问控制才能遵循最少的权限模型。教程的重点是了解策略模型,这就是为什么我们谈论了一个简单的用例。但是,请允许我举出四个网络人员的示例,以及如何为这四个角色设计细粒度权限标记和 OCI IAM 策略。

我们将 networkownernetworkadminnetworkoperatornetworkuser 定义为网络区间上的四个标记。对于这些标记,我们将分配有权访问网络区间的组名。

为实例主用户扩展 OCI IAM 策略

示例 1:OCI 中的共享存储和密钥的多租户实例访问控制

步骤 1:全面了解客户的业务概览

XYZ Cloud Solutions 是一家 SaaS 提供商,提供托管在 OCI 上的文档管理系统 (DMS)。该平台为多个企业客户提供服务,每个客户都需要严格隔离数据,同时利用共享基础设施。

客户要求:

步骤 2:为工作量设计区间结构

现在,我们来了解 XYZ 云解决方案的区间结构。XYZ 云解决方案遵循 OCI IAM 策略模型来扩展 OCI IAM 策略。

实例用例 1

步骤 3:创建 OCI IAM 组

为了确保在 OCI 多租户环境中进行安全且隔离的访问管理,将为以下项定义策略:

注:这些组和 OCI IAM 策略已按照常见 OCI IAM 策略部分中的说明创建。

步骤 4:为定义的组创建 OCI IAM 策略

租户资源访问策略:为了保持数据隔离,租户资源只能访问自己的密钥和对象存储。

Allow any-user to use object-family in compartment Storage where request.principal.compartment.tag.Enterprise.Tenant = target.resource.tag.Enterprise.Tenant
Allow any-user to use secret-family in compartment Tenants where request.principal.compartment.tag.Enterprise.Tenant = target.resource.tag.Enterprise.Tenant

如果租户实例原则也需要创建新对象的权限,则可以创建与租户名称同名的存储桶名称,并使用租户名称标记与存储桶名称进行比较。

Allow any-user to manage objects in compartment Storage where request.principal.compartment.tag.Enterprise.Tenant = target.bucket.name

示例 2:共享 OCI 存储模型中多服务数据访问的细粒度访问控制

步骤 1:全面了解客户的业务概览

XYZ Corp 是一家快速发展的企业,专门从事数字化转型解决方案。XYZ Corp 在多个地区开展业务,利用 OCI 托管关键应用、管理数据并确保团队之间的无缝协作。

客户要求:

步骤 2:为工作量设计区间结构

现在,我们来了解 XYZ Corp 的区间结构。XYZ Corp 采用 OCI IAM 策略模型来扩展其 OCI IAM 策略。

实例用例 2

步骤 3:创建 OCI IAM 组

为了确保在 OCI 多租户环境中进行安全且隔离的访问管理,将为以下项定义策略:

注:InfoSec 和 Terraform-Runner 组和 IAM 策略已按照常见 OCI IAM 策略部分中的上述说明创建。

步骤 4:为定义的组创建 OCI IAM 策略

租户资源访问策略:为了保持数据隔离,租户资源只能访问自己的密钥和对象存储。

Allow dynamic-group AdminInstances to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Admin’}

Allow dynamic-group SalesInstances to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Sales’}

Allow dynamic-group SupplyInstances to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Supply’}

Allow any-user to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Shared’}

Allow dynamic-group AdminInstances to use secret-family in compartment Tenants where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Admin’}

Allow dynamic-group SalesInstances to use secret-family in compartment Tenants where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Sales’}

Allow dynamic-group SupplyInstances to use secret-family in compartment Tenants where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Supply’}

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心