将 Oracle API Access Control 与 Oracle Exadata Database Service on Cloud@Customer 和 Oracle Exadata Database Service on Dedicated Infrastructure 结合使用

简介

Oracle API Access Control 支持客户管理对 Oracle Exadata Database Service on Dedicated Infrastructure 和 Oracle Exadata Database Service on Cloud@Customer 公开的 REST API 的访问。通过将特定 API 指定为特权 API,客户可以确保调用这些 API 需要事先获得其租户中授权组的批准。

Oracle API Access Control 还利用 Oracle Cloud Infrastructure (OCI) 技术来实施特定工作流,从而帮助审计集成。

人员请求访问权限以执行特权操作,审批人将审核并批准操作,此后 OCI 控制层将特殊审批资源转换为已批准状态。这允许请求者将 API 发送到目标资源并执行所需任务。

主要优点:

目标

为 Oracle Exadata Database Service on Cloud@Customer 配置和运行 Oracle API 访问控制服务。类似的说明也适用于 Oracle Exadata Database Service on Dedicated Infrastructure。

Prerequisites

任务 1:在 OCI 租户中设置用户和组

Oracle API Access Control 的第一步是在 OCI 租户中设置用户和组。第二步是让这些用户和组配置控制和管理请求。

  1. 登录 OCI 控制台,导航到默认身份域中的身份和安全

  2. 创建用户和组已配置名为 ExaCC Approver 的用户,并且此用户是 ExaCC-API-Approver-grp 组的成员。

    图片 1:用户组

任务 2:为 Oracle API 访问控制配置 OCI IAM 策略

在此任务中,配置 OCI IAM 策略以允许 Oracle API Access Control 服务运行,并让 ExaCC-API-Approver-grp 组管理服务。此示例中提供的策略语句允许服务运行。OCI IAM 策略语法提供细粒度的控制,允许进一步分离职责。

适用于 Oracle API Access Control 的 OCI IAM 策略示例:

allow group <admin_group/approver_group/managers> to manage privileged-api-family in tenancy
allow any-user TO use database-family IN tenancy where ALL { request.principal.type in ('pactlprivilegedapirequest', 'pactlprivilegedapicontrol') }
allow any-user TO use ons-topics IN tenancy where ALL { request.principal.type in ('pactlprivilegedapirequest', 'pactlprivilegedapicontrol') }
allow group <admin_group/approver_group/managers> to use database-family in tenancy
allow group <admin_group/approver_group/access_request_group> to read domains in tenancy
allow group <admin_group/approver_group/access_request_group> to inspect compartments in tenancy
allow group <admin_group/approver_group/access_request_group> to use ons-topics in tenancy

图 2:策略

您的审批人组需要能够使用数据库系列,但不需要对其进行管理。此外,审批组必须能够读取域、检查区间以及将 OCI 通知主题用于通知。

有关 OCI IAM 策略的更多信息,请参见 About Resource-Types and Delegate Access Control Policy

任务 3:控制资源

借助 Oracle API Access Control 及其策略,以 Oracle API Access Control 用户身份登录,控制资源。

  1. 转到 OCI 控制台,导航到 Oracle DatabaseAPI Access Control ,然后单击创建授权 API 控制

    图像 3:CreateAPI 控制

  2. 选择区间 (ExaCC) 并创建新控件。

  3. 为您的控制输入名称说明

  4. 选择资源类型:为此教程选择 Exadata 基础结构

    • 面向 OCI 或 Oracle Multicloud 中的 Oracle Exadata Database Service on Dedicated Infrastructure 的 Exadata Cloud Infrastructure
    • 面向 Oracle Exadata Database Service on Cloud@Customer 的 Exadata Infrastructure

    图像 4:CreateAPI 控制

  5. 选择 Exadata 基础结构区间:Exadata 基础结构位于单独的区间 (eccw-infrastructure)。

  6. 选择 Exadata 基础结构:要控制的基础结构为 eccw-infrastructure

  7. 选择要为基础结构控制的 API

    例如:

    • 您可以保护基础结构的删除。
    • 对于虚拟机 (Virtual Machine,VM) 集群,您可以保护更新、删除、添加/删除 VM 以及更改区间。
    • 对于 VM 集群更新,可以将各种属性选择为特权属性,例如更改 CPU 核心计数(影响自动缩放软件)或 SSH 公钥
    • 您还可以控制:
      • 数据库主目录 API ,例如删除。
      • 虚拟机 API ,例如更新和创建控制台连接。
      • VM 集群网络 API ,包括调整大小、更新和删除。
      • 容器数据库 API ,包括删除、透明数据加密密钥管理密钥轮换、更新和升级。
      • 可插入数据库 API ,包括启动/停止、刷新、更新和删除可插入数据库等操作。在此示例中,我们希望对更改 CPU 核心计数 (7a) 和删除 CDB (7b) 应用控制。

    注:在创建初始控制之后,可以修改分配的控制,但修改也需要 Oracle API Access Control 审批流程。

  8. 审批信息中,选择使用 IAM 策略以获取审批信息。在具有身份域的租户中操作时,这是必需的。

  9. (可选)您可以要求对特别敏感的系统进行第二次审批,需要两个单独的身份来批准访问请求。

  10. 选择通知主题:您需要为访问请求通知选择 OCI 通知主题,然后单击创建。创建控件后,需要几分钟才能联机。

    以下映像显示了如何创建 OCI 通知主题、如何创建和配置订阅。

    图片 5:主题

    图像 6:订阅

注: OCI 审计记录链接到资源所在的区间。因此,在 ExaCC 区间中创建此 Oracle API 访问控制时,将在该区间中找到与 API 控制的生命周期管理相关的审计记录。对 eccw-infrastructure 区间中的 Exadata 基础结构的更新会将其审计记录显示在 eccw-infrastructure 区间中。

任务 4:演示 API 控制实施

要演示 API 如何控制系统,请执行以下步骤:

  1. infra-db-admin-user 用户身份登录到 OCI 控制台。

  2. 选择 Oracle Database Service on Cloud at Customer

  3. 选择您的虚拟机集群Exadata 基础结构

  4. 您将看到 eccw-cl3 VM 集群,并启用了 Oracle API Access Control。

  5. 如果您尝试直接从菜单更改每个 VM 的 ECPU 计数,该操作将被拒绝,因为当前资源不允许该操作。

    图像 7:缩放 ECPU

  6. 同样,如果尝试终止数据库,则不允许执行该操作。

  7. 从 OCI 控制台验证审计记录。

    1. 导航到 Observability and Management

    2. 选择日志记录,然后单击审计

    3. 选择 ExaCC 区间。

    4. 审计 PUTPOST 等操作或状态更改。

    eccw-infrastructure 区间中,您将看到 Not Found (404) 错误,指示 Oracle API Access Control 检查的审批未通过请求。

    图 8:缩放 ECPU 审计

任务 5:创建和批准访问请求

  1. 转到 OCI 控制台,导航到 Oracle Database ,然后单击 API 访问控制

  2. 单击 Create Privileged Access Request(创建授权访问请求),在其中可以创建更新 CPU 核心计数的请求。

    1. 区间:选择 ExaCC 区间

    2. 票证编号:添加对票证的引用(这是自由格式文本)。

    3. 资源类型:资源类型是 VM 集群。

    4. 选择特权操作:更新 VM 集群 cpuCoreCount 的请求。如果需要,您可以为单个访问窗口添加更多操作。

      图像 9:创建访问请求

    5. 您可以为计划内维护请求将来日期的访问权限,也可以立即请求访问权限。

    6. 选择通知主题:选择要通知的主题并单击创建

      图像 10:创建访问请求

    在创建访问请求的区间中,您将看到该请求处于已启动状态。

    图像 11:创建访问请求

    如果您尝试自己批准它,您将收到一个错误,指示其他用户必须批准它。

  3. ExaCC Approver 审批人用户身份访问系统。您可以在区间中查看访问请求。

    图 12:请求审批

    将向 ExaCC-API-Approver-grp 的成员发送电子邮件通知。

    图 13:电子邮件通知

  4. 您可以访问提出的请求。

    图 14:请求审批

  5. 检查请求是针对 UpdateVmCluster cpuCoreCount 的,并立即批准请求或选择将来的时间。

    图 15:请求审批

    图 16:请求审批

  6. 访问请求获得批准后,返回到 VM 集群资源并更新每个 VM 的 ECPU 计数。现在,系统将允许更改每个 VM 的 ECPU 计数

任务 6:审核批准的工序

从审计的角度来看。

  1. 转到 OCI 控制台,导航到可观测性和管理,然后选择审计

  2. 导航到配置了 Oracle API Access Control 访问请求的区间。请参见 POSTPUTs

  3. 您将看到 infra-db-admin-user 用户创建了 Oracle API Access Control 访问请求。

    图 17:等待审批的审计

  4. 当您尝试自己批准错误请求时,您将看到错误请求 (400)

    图 18:自我批准

    图 19:自我批准

  5. 您将看到 ExaCC Approver 已批准访问请求。

    图像 20:审核已批准

同样,查看 eccw-infrastructure 区间时,您将观察审批后发生的 VM 集群的更新。您可以看到更新 VM 集群开始API 访问控制检查已批准,指示将转发 API。

任务 7:撤消 Oracle API 访问控制请求

提交 Oracle API 访问控制请求的人员或审批人可以撤消该请求。撤消请求后,将禁止执行该操作的任何尝试。

eccw-infrastructure 区间中的审计角度来看,您可以观察 PUTPOST 方法。您将看到审批后允许的 VM 集群更新,以及由于访问请求未获批准而发生的 VM 集群更新失败。查看访问请求本身的生命周期管理时,您可以查看请求何时打开、 400 错误(用于自我审批)以及其他用户的成功审批。

图像 21:撤销

图像 22:撤销

任务 8:编辑或删除控件

任务 9:完成控制删除的最终审核

从控制删除的审核角度。

图 25:最终审核

确认

更多学习资源

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

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