将 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 发送到目标资源并执行所需任务。
主要优点:
- 降低风险:尽可能减少任务关键型数据库服务的意外或恶意删除。
- 职责分离:确保 API 执行与审批不同,增强了安全性和问责制。
目标
为 Oracle Exadata Database Service on Cloud@Customer 配置和运行 Oracle API 访问控制服务。类似的说明也适用于 Oracle Exadata Database Service on Dedicated Infrastructure。
-
在 OCI 租户中设置用户和组。
-
为 Oracle API Access Control 配置 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 策略。
-
让资源得到控制。
-
演示 API 控制实施。
-
创建并批准访问请求。
-
审计已批准的操作。
-
撤消 Oracle API 访问控制请求。
-
编辑或删除控件。
-
完成控制删除的最终审核。
Prerequisites
-
使用 Oracle Exadata Database Service on Cloud@Customer 或 Oracle Exadata Database Service on Dedicated Infrastructure 访问 OCI 租户。
-
在租户中创建的具有授予 Oracle API 访问控制权限的策略的组中的用户(本教程中的
ExaCC Approver
用户)。 -
在租户中创建的另一个用户,位于具有授予常规基础结构和数据库管理权限的策略的组中(本教程中的
infra-db-admin-user
用户)。
任务 1:在 OCI 租户中设置用户和组
Oracle API Access Control 的第一步是在 OCI 租户中设置用户和组。第二步是让这些用户和组配置控制和管理请求。
-
登录 OCI 控制台,导航到默认身份域中的身份和安全。
-
创建用户和组已配置名为
ExaCC Approver
的用户,并且此用户是ExaCC-API-Approver-grp
组的成员。
任务 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
-
第一个策略行授予
ExaCC-API-Approver-grp
组管理privileged-api-family
的权限。这意味着他们可以创建控制,将它们应用于服务,并批准访问请求。 -
第二个策略行允许 Oracle API Access Control 软件与租户中的数据库服务进行交互。
-
第三个策略行允许 Oracle API Access Control 软件与租户中的 OCI 通知主题进行交互。这对于在访问请求更改其生命周期状态时通知员工至关重要。
您的审批人组需要能够使用数据库系列,但不需要对其进行管理。此外,审批组必须能够读取域、检查区间以及将 OCI 通知主题用于通知。
有关 OCI IAM 策略的更多信息,请参见 About Resource-Types and Delegate Access Control Policy 。
任务 3:控制资源
借助 Oracle API Access Control 及其策略,以 Oracle API Access Control 用户身份登录,控制资源。
-
转到 OCI 控制台,导航到 Oracle Database 和 API Access Control ,然后单击创建授权 API 控制。
-
选择区间 (
ExaCC
) 并创建新控件。 -
为您的控制输入名称和说明。
-
选择资源类型:为此教程选择 Exadata 基础结构。
- 面向 OCI 或 Oracle Multicloud 中的 Oracle Exadata Database Service on Dedicated Infrastructure 的 Exadata Cloud Infrastructure 。
- 面向 Oracle Exadata Database Service on Cloud@Customer 的 Exadata Infrastructure 。
-
选择 Exadata 基础结构区间:Exadata 基础结构位于单独的区间 (
eccw-infrastructure
)。 -
选择 Exadata 基础结构:要控制的基础结构为
eccw-infrastructure
。 -
选择要为基础结构控制的 API 。
例如:
- 您可以保护基础结构的删除。
- 对于虚拟机 (Virtual Machine,VM) 集群,您可以保护更新、删除、添加/删除 VM 以及更改区间。
- 对于 VM 集群更新,可以将各种属性选择为特权属性,例如更改 CPU 核心计数(影响自动缩放软件)或 SSH 公钥。
- 您还可以控制:
- 数据库主目录 API ,例如删除。
- 虚拟机 API ,例如更新和创建控制台连接。
- VM 集群网络 API ,包括调整大小、更新和删除。
- 容器数据库 API ,包括删除、透明数据加密密钥管理密钥轮换、更新和升级。
- 可插入数据库 API ,包括启动/停止、刷新、更新和删除可插入数据库等操作。在此示例中,我们希望对更改 CPU 核心计数 (7a) 和删除 CDB (7b) 应用控制。
注:在创建初始控制之后,可以修改分配的控制,但修改也需要 Oracle API Access Control 审批流程。
-
在审批信息中,选择使用 IAM 策略以获取审批信息。在具有身份域的租户中操作时,这是必需的。
-
(可选)您可以要求对特别敏感的系统进行第二次审批,需要两个单独的身份来批准访问请求。
-
选择通知主题:您需要为访问请求通知选择 OCI 通知主题,然后单击创建。创建控件后,需要几分钟才能联机。
以下映像显示了如何创建 OCI 通知主题、如何创建和配置订阅。
注: OCI 审计记录链接到资源所在的区间。因此,在
ExaCC
区间中创建此 Oracle API 访问控制时,将在该区间中找到与 API 控制的生命周期管理相关的审计记录。对eccw-infrastructure
区间中的 Exadata 基础结构的更新会将其审计记录显示在eccw-infrastructure
区间中。
任务 4:演示 API 控制实施
要演示 API 如何控制系统,请执行以下步骤:
-
以
infra-db-admin-user
用户身份登录到 OCI 控制台。 -
选择 Oracle Database Service on Cloud at Customer 。
-
选择您的虚拟机集群和 Exadata 基础结构。
-
您将看到
eccw-cl3
VM 集群,并启用了 Oracle API Access Control。 -
如果您尝试直接从菜单更改每个 VM 的 ECPU 计数,该操作将被拒绝,因为当前资源不允许该操作。
-
同样,如果尝试终止数据库,则不允许执行该操作。
-
从 OCI 控制台验证审计记录。
-
导航到 Observability and Management 。
-
选择日志记录,然后单击审计。
-
选择
ExaCC
区间。 -
审计 PUT 和 POST 等操作或状态更改。
在
eccw-infrastructure
区间中,您将看到 Not Found (404) 错误,指示 Oracle API Access Control 检查的审批未通过请求。 -
任务 5:创建和批准访问请求
-
转到 OCI 控制台,导航到 Oracle Database ,然后单击 API 访问控制。
-
单击 Create Privileged Access Request(创建授权访问请求),在其中可以创建更新 CPU 核心计数的请求。
-
区间:选择
ExaCC
区间。 -
票证编号:添加对票证的引用(这是自由格式文本)。
-
资源类型:资源类型是 VM 集群。
-
选择特权操作:更新 VM 集群
cpuCoreCount
的请求。如果需要,您可以为单个访问窗口添加更多操作。 -
您可以为计划内维护请求将来日期的访问权限,也可以立即请求访问权限。
-
选择通知主题:选择要通知的主题并单击创建。
在创建访问请求的区间中,您将看到该请求处于已启动状态。
如果您尝试自己批准它,您将收到一个错误,指示其他用户必须批准它。
-
-
以
ExaCC Approver
审批人用户身份访问系统。您可以在区间中查看访问请求。将向
ExaCC-API-Approver-grp
的成员发送电子邮件通知。 -
您可以访问提出的请求。
-
检查请求是针对
UpdateVmCluster cpuCoreCount
的,并立即批准请求或选择将来的时间。 -
访问请求获得批准后,返回到 VM 集群资源并更新每个 VM 的 ECPU 计数。现在,系统将允许更改每个 VM 的 ECPU 计数。
任务 6:审核批准的工序
从审计的角度来看。
-
转到 OCI 控制台,导航到可观测性和管理,然后选择审计。
-
导航到配置了 Oracle API Access Control 访问请求的区间。请参见 POST 和 PUTs 。
-
您将看到
infra-db-admin-user
用户创建了 Oracle API Access Control 访问请求。 -
当您尝试自己批准错误请求时,您将看到错误请求 (400) 。
-
您将看到
ExaCC Approver
已批准访问请求。
同样,查看 eccw-infrastructure
区间时,您将观察审批后发生的 VM 集群的更新。您可以看到更新 VM 集群开始和 API 访问控制检查已批准,指示将转发 API。
任务 7:撤消 Oracle API 访问控制请求
提交 Oracle API 访问控制请求的人员或审批人可以撤消该请求。撤消请求后,将禁止执行该操作的任何尝试。
从 eccw-infrastructure
区间中的审计角度来看,您可以观察 PUT 和 POST 方法。您将看到审批后允许的 VM 集群更新,以及由于访问请求未获批准而发生的 VM 集群更新失败。查看访问请求本身的生命周期管理时,您可以查看请求何时打开、 400 错误(用于自我审批)以及其他用户的成功审批。
任务 8:编辑或删除控件
-
如果您尝试删除控件,该软件将自动代表您创建 Oracle API Access Control 请求以将其删除。
-
如果您尝试批准您自己的操作以删除控件,则将应用相同的实施规则(它将被拒绝)。
-
如果其他用户(例如,有权批准访问请求的另一测试用户)批准访问请求,则他们可以删除或删除该资源。
任务 9:完成控制删除的最终审核
从控制删除的审核角度。
-
您可以看到
infra-db-admin-user
尝试删除特权 API 控件并收到 400 错误。 -
然后,您可以看到其他用户
ExaCC Approver
批准授权 API 访问请求,从而导致 200(成功)状态。 -
最后,
infra-db-admin-user
发出 delete 命令,您将看到删除成功且状态为 OK (202) 。
相关链接
确认
-
作者 — Filip Vercauteren(Exadata Cloud@Customer 黑带)
-
贡献者 — Matthieu Bordonne(EMEA 解决方案中心首席销售顾问)、Zsolt Szokol(Exadata Cloud@Customer Black Belt)、Jeffrey Wright(杰出产品经理)
更多学习资源
通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Use Oracle API Access Control with Oracle Exadata Database Service on Cloud@Customer and Oracle Exadata Database Service on Dedicated Infrastructure
G39129-01
Copyright ©2025, Oracle and/or its affiliates.