使用 Thales CipherTrust Manager 和 OCI API Gateway 设置 OCI Hold Your Own Key
简介
本教程提供了使用 Oracle Cloud Infrastructure (OCI) API Gateway 选项设置“Hold Your Own Key (HYOK) with Thales CipherTrust Manager (CTM)”的分步说明。
通过 HYOK,您可以在 Oracle 基础设施外部托管加密密钥,从而保留对加密密钥的完全所有权和控制权,同时允许 Oracle 服务安全地使用加密密钥。在此设置中,OCI API Gateway 在 Oracle Cloud Infrastructure External Key Management Service (OCI External KMS) 与 Thales CipherTrust Manager 实例之间起着安全、可管理且可扩展的桥梁作用。
为什么要使用 OCI API Gateway?
通过在 OCI External KMS 和 Thales CipherTrust Manager 之间插入 OCI API Gateway,您可以获得:
- 安全访问控制:网关使用机密客户端身份证明通过 OAuth2 强制验证,确保只有可信请求才能访问密钥管理器。
- TLS 终止和证书管理:轻松管理 SSL/TLS 证书,在 OCI 和 Thales CipherTrust Manager 之间实现安全加密通信。
- 网络隔离: OCI API Gateway 抽象地直接访问您的 Thales CipherTrust Manager,从而实现受控的暴露通道专用端点和严格的安全策略。
- 可审计性和可观察性:通过集成的 API 调用日志记录和监视来了解关键使用情况和访问尝试。
- 可扩展性和灵活性:将 OCI External KMS 集成逻辑与 Thales CipherTrust Manager 后端分离,从而更轻松地交换组件、应用更新或添加中间件(如果需要)。
在本教程的 rest 中,您将配置所有必需的基础设施组件,包括网络、DNS、证书管理、身份联盟,最后使用外部密钥与 OCI Vault 和 OCI 对象存储集成。
本教程基于教程中建立的 technical foundation: Set Up Two Thales CipherTrust Cloud Key Manager Appliances in OCI,Create a Cluster between them,and Configure One as a Certificate Authority 。
如果要使用不带 OCI API Gateway 选项的 Thales CipherTrust Manager 实施 Hold Your Own Key (HYOK) ,请遵循以下教程:使用不带 API Gateway 的 CipherTrust Manager 设置 OCI Hold Your Own Key (HYOK) 。
注意:在本教程中,术语 Thales CipherTrust Cloud Key Manager (CCKM) 和 Thales CipherTrust Manager (CTM) 可以互换使用。两者均指同一产品。
目标
- 任务 1:查看云网络体系结构。
- 任务 2:为所有位置配置 OCI 域名服务 (DNS)。
- 任务 3:为 OCI API Gateway 创建证书。
- 任务 4:上载带 CA 包的签名 OCI API Gateway 证书。
- 任务 5:确保允许专用端点从防火墙/安全列表/网络安全组角度与 OCI API 网关通信。
- 任务 6:创建 OCI API 网关。
- 任务 7:使用 FQDN 详细信息创建 API 部署。
- 任务 8:创建机密资源应用程序和关联的机密客户端应用程序(应用程序集成),并在 OCI 中收集客户端和密钥。
- 任务 9:从 OCI 收集身份域 URL。
- 任务 10:在 Thales CipherTrust Manager 中创建身份提供者。
- 任务 11:在 Thales CipherTrust Manager 中添加 Oracle 租户。
- 任务 12:为 OCI External Key Manager 服务创建专用端点。
- 任务 13:在 Thales CipherTrust Manager 中添加外部 Vault。
- 任务 14:创建 OCI External Key Management Service Vault。
- 任务 15:在 Thales CipherTrust Manager 中添加外部密钥。
- 任务 16:在 OCI 中创建关键引用。
- 任务 17:使用客户管理的密钥创建 OCI Object Storage 存储桶。
- 任务 18:在 Thales CipherTrust Manager 和 OCI 中块和解锁 Oracle 密钥并测试对象存储存储桶可访问性。
下图说明了本教程中所有步骤的组件和配置设置。
任务 1:查看云网络体系结构
在我们深入了解使用 Thales CipherTrust Manager 配置 Hold Your Own Key (HYOK) 的技术步骤之前,必须了解此设置所在的云网络体系结构。
在此场景中,使用了三个 OCI 区域:
- 两个 OCI 区域模拟本地数据中心。这些区域通过 VPN 隧道连接到 OCI,代表混合环境。
- 第三个 OCI 区域表示主 OCI 环境,遵循中心辐射型虚拟云网络 (VCN) 架构。在此设计中:
- hub VCN 托管共享网络服务,例如防火墙。
- 多个请求 VCN 连接到中心并托管各种工作负载。
使用远程对等连接 (Remote Peering Connections,RPC) 在两个模拟的内部部署数据中心之间建立连接。但是,对于本教程,VPN 设置、RPC 配置和中心辐射型 VCN 体系结构详细信息被视为超出范围,不会被覆盖。
-
要设置到模拟数据中心的 OCI 的 VPN 连接,请参见 Set up an Oracle Cloud Infrastructure Site-to-Site VPN with Static Routing Between two OCI Regions 。
-
要在 OCI 区域之间设置 RPC 连接,请参阅在两个租户及其动态路由网关之间设置 RPC 连接。
-
要设置 OCI Hub 和分支 VNC 网络架构,请参阅在 Hub VCN 中使用 pfSense 防火墙路由 Hub 和 Spoke VCN 。
本教程的重点是使用部署在阿姆斯特丹 (AMS) 区域中的 Thales CipherTrust Manager 设置 HYOK,该区域是模拟的内部部署数据中心之一。将从此 Thales CipherTrust Manager 实例执行所有密钥管理操作。
通过外部密钥管理器专用,OCI 可以与外部 Thales CipherTrust Manager 安全通信,并将部署在主 OCI 区域中的一个分支 VCN 中。这可确保 OCI 服务与外部密钥管理器之间的安全直接通信路径,而不会向公共互联网公开流量。
此架构通过在明确定义的安全网络边界内隔离密钥管理,为 OCI 中的敏感工作负载提供强大的安全性和合规性状况。
下图显示了完整的体系结构。
任务 2:为所有位置配置 OCI DNS
为了确保 OCI、API 网关和 Thales CipherTrust 管理器之间正确通信,您必须使用 OCI 控制台中的专用 DNS 区域为所有相关组件配置 DNS 解析。
下图说明了此任务中的组件和配置设置。
在本教程中已为 AMS 和 ASH 配置 OCI DNS,请参见 Set Up Two Thales CipherTrust Cloud Key Manager Appliances in OCI,Create a Cluster between them,and Configure One as a Certificate Authority 。使用相同的教程在 FRA 的 Hub VCN 中配置 DNS。
-
FRA 中中心 VCN 的专用视图应如下所示:
我们有两个选项来启用来自辐条企业 A VCN 的 DNS 解析,为辐条企业 A 配置单独的专用视图,或将中心 VCN 的专用视图与辐条企业 A 关联。
在此设置中,我们将通过将中心专用视图与分支 A VCN 关联来使用后一种方法。
-
登录 OCI 控制台,导航到虚拟云网络,然后选择 Spoke A VCN 。
-
单击 DNS 解析程序。
-
向下滚动。
-
单击 Manage private views (管理专用视图)。
-
选择 Hub VCN 专用视图并单击保存更改。
-
请注意, Hub VCN 专用视图现在与分支 A VCN 关联。如果未看到更改,请刷新浏览器。
正确的 DNS 设置是 OCI 与 Thales CipherTrust Manager 之间的相互 TLS、OAuth 验证和可靠连接的关键基础。
在继续进行证书配置之前,请仔细检查您的 DNS 区域关联和名称解析。
任务 3:为 OCI API 网关创建证书
要在 OCI 与 Thales CipherTrust Manager 之间启用安全 TLS 通信,OCI API 网关必须提供可信的 SSL 证书。在此设置中,将通过以下方式创建证书:首先在 CTM1 证书颁发机构 (Certificate Authority,CA) 上生成证书签名请求 (Certificate Signing Request,CSR) ,然后使用该 CA 对证书进行签名。
签名证书后,该证书将上载到 OCI 并附加到 OCI API Gateway,从而为内部系统信任的加密流量提供服务。下图说明了为 OCI API Gateway 创建签名证书的步骤。
仅在 AMS CTM 上执行这些步骤。
-
登录到 Thales CipherTrust Manager AMS 控制台,导航到 CA 并单击 CSR 生成器。
-
输入以下信息,然后单击 Generate CSR and download Private Key 。
- 选择 Generic CSR 。
- 通用名称 (CN):输入 Thales CipherTrust Manager 的 FQDN。例如,
oci-api-gw.oci-thales.lab
。- 显示名称:输入名称。例如,
OCI API Gateway
。 - 演算法:选择 RSA 。
- 大小:选择 2048 。
- 显示名称:输入名称。例如,
- 主题替代名称 (SAN):此处也包括 FQDN。例如,
oci-api-gw.oci-thales.lab
。
-
请注意,私钥将自动下载。
-
单击 Download CSR(下载 CSR)以下载并保存生成的
.csr
文件。 -
确保 CSR 和私钥存储在文件夹中。
-
重命名 CSR 和私钥。
-
导航到 CA ,单击本地并选择 CA。
-
单击 Upload CSR 。
-
在上传外部生成的 CSR 中,输入以下信息。
- 显示名称:输入 OCI API Gateway 的 FQDN。例如,
oci-api-gw.oci-thales.lab
。 - 在 CSR 字段中复制生成的 CSR 的内容。
- 证书用途:选择服务器。
- 单击 Issue Certificate 。
- 显示名称:输入 OCI API Gateway 的 FQDN。例如,
-
单击签名证书条目末尾的三个点,然后单击下载以下载 OCI API Gateway 的签名证书。
-
确保签名证书存储在相同的 CSR 和私钥文件夹中。
-
重命名签名证书。
除了对单个 Thales CipherTrust Manager 证书进行签名之外, CA 根证书是信任链的重要组成部分。此根证书为 Thales CipherTrust 管理器作为证书颁发机构 (CA) 颁发的所有证书建立信任的基础。
-
导航到 CA ,然后单击本地。单击 CTM AMS CA 末尾的三个点,然后单击 Download(下载)以下载 CTM AMS CA 的根 CA 证书。
-
将下载的根证书存储在同一文件夹中。
-
重命名根证书。
此证书稍后将附加到 OCI API Gateway 部署,以便 OCI 使用在您的环境中颁发和可信的证书通过 HTTPS 安全地与 Thales CipherTrust Manager 通信。
任务 4:使用 CA 包上载已签名的 OCI API 网关证书
使用 CTM1 Certificate Authority (CA) 生成并签名 OCI API Gateway 证书后,下一个任务是在 OCI 中上载此证书以与 OCI API Gateway 部署关联。
这可确保与 OCI API Gateway 的任何通信(例如来自 OCI External KMS 的请求)都通过使用内部证书颁发机构的可信加密 TLS 连接进行。
让我们先从上传根 CA 证书开始。
-
转到 OCI 控制台,导航到身份和安全,然后单击 CA 包。
-
单击 Create CA Bundle 。
-
在创建 CA 包中,输入以下信息。
- 输入名称。例如,
thales-ca
。 - 选择一个 PEM 文件。
- 输入名称。例如,
-
选择 AMS CTM1 CA 的 Root CA Certificate ,然后单击 Open 。
-
请注意 AMS CTM1 CA 的 Root CA Certificate 的内容,然后单击 Create 。
-
请注意,已创建 CA 包。
现在,让我们上载 OCI API Gateway 的签名证书。
-
转到 OCI 控制台,导航到身份和安全,然后单击证书。
-
单击创建证书。
-
在基本信息中,输入以下信息。
- 选择证书类型作为已导入。
- 输入证书名称。例如
8-oci-api-gw.oci-thales.lab
。 - 单击下一步。
-
单击下一步。
-
单击上载文件并上载 OCI API 网关的签名证书文件。
-
单击 Upload File(上载文件)并在 AMS 中上载 CTM1 的根证书文件。
-
单击上载文件并上载签名 OCI API 网关的对应私有密钥文件。
-
单击下一步。
-
单击下一步。
-
查看概要部分,然后单击创建证书。
-
查看概要,然后单击查看证书详细信息。
-
请注意,证书处于活动状态。
注:如果证书上载失败,可能是由于生成 CSR 时使用的算法所致。OCI 未接受使用 ECDSA 算法的证书。为了解决此问题,我们使用 RSA 算法重新生成了 CSR,该算法已成功运行。
上载后,此证书将可用于附加到您的 API Gateway 部署,以便它向 OCI 服务(例如 OCI External KMS)提供可信的身份。此任务对于在 Oracle 和您的外部密钥管理器之间启用基于证书的安全信任至关重要。
任务 5:确保允许专用端点从防火墙/安全列表/网络安全组与 OCI API 网关通信
在部署 OCI API Gateway 或测试 OCI 与 Thales CipherTrust Manager 之间的集成之前,务必确保在 OCI External KMS 和 OCI API Gateway 使用的专用端点之间建立网络连接。
注:
OCI 中不允许自动允许同一子网内的流量。即使专用端点和 OCI API 网关位于同一子网中,您仍必须在安全列表或网络安全组中明确允许它们之间的通信。
例如,要允许同一子网中资源之间的 HTTPS 流量,必须创建一个地址规则,以允许来自该子网的 CIDR 块的 TCP 端口 443 上的流量。
-
转到 OCI 控制台,导航到网络,然后单击虚拟云网络。
-
单击 Spoke A VCN 。
-
向下滚动。
-
单击分支 A VCN 的专用子网。这是 OCI External KMS 的专用端点所在的 VCN,也是 OCI API Gateway 的 IP 地址。
-
向下滚动。
-
单击附加到子网的默认安全列表。
-
单击添加入站规则。
-
要配置入站规则 1 ,请输入以下信息,然后单击添加入站规则。
- 源类型:选择 CIDR 。
- 源 CIDR:输入
172.16.1.0/24
。 - IP Protocol:选择 All Protocols 。
-
请注意,入站安全列表规则已添加到安全列表。
注:如果 OCI API 网关在部署期间无法通过其 FQDN 访问 Thales CipherTrust 管理器,则它可能无法变为活动状态。因此,确保专用端点与 OCI API Gateway 之间的清晰、安全的网络路径是成功 HYOK 集成的关键先决条件。
任务 6:创建 OCI API 网关
上载签名 TLS 证书后,下一个任务是创建 OCI API 网关,该网关将用作 OCI 与 Thales CipherTrust 管理器通信的安全入口点。
此 OCI API 网关稍后将配置为使用其全限定域名 (FQDN) 将请求路由到 CTM,并使用上载的 TLS 证书强制实施安全通信。
下图说明了此任务中的组件和配置设置。
-
转到 OCI 控制台,导航到 Developer Services ,然后单击 Gateways 。
-
单击创建网关。
-
在创建网关中,输入以下信息。
- 输入名称。例如,
API-GW
。 - 类型:选择专用。
- VCN:选择可从其访问 Thales CipherTrust 管理器的 VCN。
- 子网:选择具有 Thales CipherTrust Manager 访问权限的专用子网。
- 输入名称。例如,
-
选择我们之前上载的证书 (
8-oci-api-gw.oci-thales.lab
),然后单击创建网关。 -
请注意,已创建 OCI API 网关。
注:如果 OCI API Gateway 部署无法通过配置的后端 URL 访问 Thales CipherTrust Manager,则该部署可能会失败。要避免这种情况,请确保:
- 在 OCI API Gateway 的专用子网和 Thales CipherTrust Manager 之间正确配置了路由。
- 安全列表或网络安全组 (Network Security Groups,NSG) 允许从 API 网关子网到 CTM 的 HTTPS(TCP 端口 443)流量。
- Thales CipherTrust 管理器的 FQDN 通过配置的 Private DNS 正确解析。
部署期间无法访问的后端将导致运行状况检查失败,从而导致部署错误或处于非活动状态。
此 OCI API Gateway 稍后将用于部署,以公开 OCI External KMS 可以调用的端点。该网关充当 OCI 与 Thales CipherTrust Manager 之间的安全、经过验证的代理,可实施 TLS 和身份验证。
任务 7:使用 FQDN 详细信息创建 API 部署
现在,OCI API 网关已创建并且证书已就位,下一个任务是创建 API 部署。这具体定义了网关的路由行为,以及如何使用 OCI External KMS 内部 FQDN 将来自 OCI External KMS 的传入请求转发给 Thales CipherTrust Manager。
部署桥接 OCI 和 Thales CipherTrust Manager,可处理基于路径的路由以及入站请求的 TLS 终止。
下图说明了此任务中的组件和配置设置。
-
转到 OCI 控制台,导航到开发人员服务,然后单击网关。
-
单击 API 网关。
-
单击创建部署。
-
在创建部署中,输入以下信息。
- 选择从头开始。
- 输入名称。例如,
API-GW-DEPLOYMENT
。 - Path Prefix(路径前缀):输入
/api/v1/cckm/oci/ekm/v1
。 - 单击下一步。
-
Authentication(验证):选择 No Authentication(不验证)。
-
单击下一步。
-
在路由 1 部分中,输入以下信息,然后单击下一步。
- 路径:输入
/{path*}
。 - 方法:选择
GET
、POST
。 - 后端类型:选择后端类型作为 HTTP 并将 URL 指定为
https://**<your-ctm-fqdn>**/api/v1/cckm/oci/ekm/v1/${request.path[path]}
。
- 路径:输入
-
单击创建。
-
请注意,已创建 API 部署。单击它。
-
请注意,API 部署处于 ACTIVE 状态。
部署处于活动状态后,OCI API Gateway 可以将经过验证的请求从 OCI 安全地转发到 Thales CipherTrust 管理器。此处的 FQDN 配置至关重要,请确保它与 Thales CipherTrust Manager 证书中的 Common Name (CN) 或 SAN 匹配,并通过 DNS 正确解析。
此部署将充当 OCI External KMS 调用与 Thales CipherTrust Manager 中托管的外部密钥交互的关键端点。
任务 8:创建机密资源应用程序,关联机密客户端应用程序(应用程序集成)并在 OCI 中收集客户端和密钥
要启用 HYOK 与 Thales CipherTrust Manager 的集成,必须在 OCI 和外部密钥管理器之间建立信任。
这是通过在 OCI Identity and Access Management (OCI IAM) 中注册两个关键组件来实现的:机密资源应用程序和机密客户端应用程序。这些功能对于验证和授权 OCI 与 Thales CipherTrust Manager 之间的通信至关重要。
通过此设置,Thales CipherTrust Manager 可以通过 OCI IAM 到 OAuth 2.0 进行验证。机密客户机代表外部密钥管理器执行操作,而机密资源定义了访问和信任配置的范围。如果没有这些组件,OCI 无法验证外部密钥源或安全地与外部密钥源通信。
下图说明了此步骤中的组件和配置设置。
-
登录到 OCI 控制台,导航到身份和安全,然后单击域。
-
单击要用于验证的域。
-
单击集成应用程序和添加应用程序。
-
选择机密应用程序,然后单击启动工作流。
-
输入应用程序名称 (
Resource_App
),然后单击下一步。 -
在 Resource Server configuration(资源服务器配置)部分中,输入以下信息。
- 选中 Configure this application as a resource server now(立即将此应用程序配置为资源服务器)。
- 在主要受众中,输入
https://172.16.1.103/
(API 网关的 IP 地址)。
-
在添加范围中,输入以下信息。
- 选择添加范围。
- 单击添加。
- 在范围中,输入
oci_ekms
。 - 单击添加。
-
请注意添加的范围
oci_ekms
并向下滚动。 -
在客户机配置部分中,输入以下信息。
- 选择立即将此应用程序配置为客户端。
- 选择客户端身份证明。
- 单击下一步。
-
单击 Skip and do later 以跳过创建 Web 层策略,然后单击 Finish(完成)。
-
转到集成应用程序页。
- 请注意,已创建
Resource_App
集成应用程序。 - 选择
Resource_App
集成应用程序。 - 单击 Actions 下拉菜单。
- 单击激活。
- 请注意,已创建
-
单击 Activate application(激活应用程序)。
-
单击
Resource_App
集成应用程序。 -
向下滚动。
-
复制客户端 ID 并将其存储在记事本上。单击显示密钥以显示客户端密钥。
-
单击复制以复制客户端密钥,并将其存储在记事本上。单击关闭。
-
单击添加应用程序。
-
选择机密应用程序,然后单击启动工作流。
-
输入应用程序名称 (
Client_App
) 并单击下一步。 -
在资源服务器配置中,选择跳过以备后用。
-
在客户机配置中,输入以下信息。
- 选择立即将此应用程序配置为客户端。
- 选择客户端身份证明。
- 向下滚动。
-
在添加范围中,输入以下信息。
- 选择添加资源。
- 选择添加范围。
- 在范围中,输入
Resource_App
。 - 单击添加。
-
记下添加的资源
Resource_App
并单击下一步。 -
单击 Skip and do later 以跳过创建 Web 层策略,然后单击 Finish(完成)。
-
转到集成应用程序页。
- 请注意,已创建
Client_App
集成应用程序。 - 选择
Client_App
集成应用程序。 - 单击 Actions 下拉菜单。
- 单击激活。
- 请注意,已创建
-
单击 Activate application(激活应用程序)。
-
单击
Client_App
集成应用程序。 -
向下滚动。
-
复制客户端 ID 并将其存储在记事本上。单击显示密钥以显示客户端密钥。
-
单击复制以复制客户端密钥,并将其存储在记事本上。单击关闭。
注:
- 您已收集了
Resource_App
和Client_App
客户端 ID 和客户端密钥。- 请勿混合这两者,并在适当的位置配置它们。
任务 9:从 OCI 收集身份域 URL
要在 OCI 与 Thales CipherTrust Manager 之间启用基于 OAuth 的通信,需要在 Thales CipherTrust Manager 中配置身份提供者期间提供身份域 URL 。
-
转到 OCI 控制台,导航到身份和安全,然后单击域。
-
选择在其中创建机密应用程序的身份域。
-
在域详细信息页中,单击复制以复制域 URL ,并将其存储在记事本上。
任务 10:在 Thales CipherTrust Manager 中创建身份提供者
在此任务中,您将在 Thales CipherTrust 管理器中配置身份提供者。此设置允许 Thales CipherTrust Manager 使用在任务 3 中创建的 OAuth 2.0 身份证明通过 OCI 进行验证。
下图说明了此任务中的组件和配置设置。
-
在 Thales CipherTrust Manager 中,转到 AMS 中的 CTM1,然后单击 Products(产品)和 Cloud Key Manager(云密钥管理器)。
-
单击 KMS 容器和 Oracle Vault ,选择外部 Vault ,然后单击添加身份提供者。
-
在添加身份提供者中,输入以下信息,然后单击添加。
- 输入名称 (
OCI
)。 - 选择 OpenID 配置 URL 作为 Provider Verifier 。
- 输入 OpenID Configuration URL ,即在任务 3 中复制的域 URL。
- 将以下后缀添加到 URL:
.well-known/openid-configuration
。因此,完整的 OpenID 配置 URL 将为:https://idcs-<xxx>.identity.oraclecloud.com:443/.well-known/openid-configuration
。
- 将以下后缀添加到 URL:
- 选择 jwks Protected URL 。
- 输入
Resource_App
集成应用程序的 Client ID(客户端 ID)和 Client Secret(客户端密钥)。
- 输入名称 (
-
请注意,已创建身份提供者。
任务 11:在 Thales CipherTrust Manager 中添加 OCI 租户
在 Thales CipherTrust Manager 中配置身份提供者后,下一个任务是注册 OCI 租户。这允许 Thales CipherTrust Manager 使用以前配置的 OAuth 身份证明代表您的 OCI 环境管理外部 Vault 和密钥。
下图说明了此任务中的组件和配置设置。
-
首先,我们必须从 OCI 获取租户的名称和 OCID。单击右上角的 profile ,然后单击 Tenancy 。
-
复制租户的名称和租户的 OCID 并将其存储在记事本中。
-
转到 Thales Cloud Key Manager 控制台。
- 单击 KMS 容器。
- 单击 Oracle Vault 。
- 单击租户。
- 单击添加租户。
-
在添加租户中,输入以下信息。
- 选择 Oracle Tenancy (no connection) 作为方法。
- 输入从 OCI 收集的租户的名称。
- 输入从 OCI 收集的租户 OCID 。
- 单击添加。
-
请注意,OCI 租户已添加到 Thales CipherTrust Manager。
任务 12:在 OCI 中为外部密钥管理器服务创建专用端点
要安全地将 OCI 连接到 Thales CipherTrust Manager,而不向公共互联网公开流量,必须为 OCI 外部密钥管理服务创建专用端点。
这可确保 OCI 与 Thales CipherTrust Manager 之间的所有通信都通过受控的专用网络路径进行。
请确保满足以下先决条件:
- Thales CipherTrust Manager 必须通过专用网络设置从 OCI 访问。例如,通过 VPN。
- 确保子网具有路由和安全规则,允许流量进入 Thales CipherTrust Manager 实例。
下图说明了此任务中的组件和配置设置。
-
在 OCI 控制台中,导航到身份和安全,然后单击专用端点。
-
转到专用端点,然后单击创建专用端点。
-
在创建专用端点中,输入以下信息。
- 输入专用端点名称 (
Private-Endpoint-For-Vault
)。 - 选择此专用端点需要位于的 VCN 和子网。
- 在 Private IP address of the External Key Manager(外部密钥管理器的专用 IP 地址)中输入
172.16.1.103
API Gateway 的 IP 地址。 - 输入 Port 作为
443
。 - 上载 External Key Management CA bundle ,然后单击 Browse(浏览)。
- 输入专用端点名称 (
-
我们选择了本教程中创建的完整链证书:在 OCI 中设置两个 Thales CipherTrust Cloud Key Manager 设备、在它们之间创建集群以及将一个配置为证书颁发机构,但您也可以仅选择 CA 根证书。单击打开。
-
确保已选择 Thales CipherTrust 管理器的证书、根 CA 或完整链证书。单击创建。
-
请注意,将创建专用端点。现在,单击专用端点。
-
请注意,已配置专用端点的 IP 地址。
任务 13:在 Thales CipherTrust Manager 中添加外部 Vault
实施 OCI 租户和专用端点后,下一个任务是在 Thales CipherTrust Manager 中添加 External Vault 。Thales CipherTrust Manager 中的外部 Vault 是一个逻辑容器,它映射到 OCI 中的外部密钥管理 Vault,使 Thales CipherTrust Manager 能够管理用于 HYOK 加密的密钥。
下图说明了此任务中的组件和配置设置。
-
转到 Thales Cloud 密钥管理器控制台。
- 单击 KMS 容器。
- 单击 Oracle Vault 。
- 选择外部 Vault 。
- 单击添加外部 Vault 。
-
在添加外部 Vault 中,输入以下信息。
- 输入名称 (
OCI
)。 - 选择 Oracle Tenancy (no connection) 作为方法。
- 选择在任务 5 中创建的租户。
- 选择在任务 4 中创建的身份提供者 Issuer 。
- 向下滚动。
- 输入
Client_App
集成应用程序的客户端 ID 。 - 在 Endpoint URL Hostname(端点 URL 主机名)中输入
172.16.1.103
,即 API 网关的 IP 地址。 - 输入 Port 作为
443
。 - 单击添加。
- 输入名称 (
-
请注意,已配置外部 Vault。复制外部 Vault URL 并将其存储在记事本上。
配置后,此 Vault 将成为用于存储 OCI 服务将引用的外部密钥的目标位置。它可以桥接您的 OCI 环境和 CipherTrust 管理的密钥,从而全面控制 HYOK 模型中的加密操作。
任务 14:创建 OCI External Key Management Service Vault
在 Thales CipherTrust Manager 中定义了外部 Vault 后,下一个任务是在 OCI 控制台中创建对应的外部密钥管理 Vault 。
此 OCI Vault 将链接到您的 Thales CipherTrust Manager,OCI 服务将使用外部密钥执行加密和解密操作。
下图说明了此任务中的组件和配置设置。
-
从任务 9 检索域 URL ,您将需要在 OCI 中配置外部密钥 Vault。
-
在 OCI 控制台中,转至身份和安全,然后单击外部密钥管理。
-
单击创建 Vault 。
-
在创建 Vault 中,输入以下信息。
- 输入名称 (
OCI_EKMS_Vault
)。 - 输入 IDCS 账户名称 URL ,即从任务 7 复制的域 URL。因此,完整的 URL 将为:
https://idcs-<xxx>.identity.oraclecloud.com:443/
。 - 输入
Client_App
集成应用程序的 Client ID(客户端 ID)和 Client Application Secret(客户端应用程序密钥)。 - 向下滚动。
- 选择在任务 6 中创建的专用端点。
- 输入在 CTM1 上创建外部 Vault 时从任务 7 复制的外部 Vault URL。
- 单击创建 Vault 。
- 输入名称 (
-
请注意,已创建 Vault。现在,单击 Vault。
-
查看 Vault Details 。
OCI 现在将使用指定的专用端点连接到 Thales CipherTrust Manager。此 Vault 处于活动状态后,它将成为 OCI 与 CCKM 管理的外部密钥进行交互的界面,支持 HYOK 支持 OCI 对象存储、OCI 块存储卷等 OCI 服务。稍后,我们将使用 OCI Object Storage 执行一些测试。
任务 15:在 Thales CipherTrust Manager 中添加外部关键字
通过在 Thales CipherTrust Manager 中设置外部 Vault 并链接到 OCI,下一个任务是创建或导入 OCI 将用于启用 HYOK 的服务的外部加密密钥。
这些密钥安全地驻留在 Thales CipherTrust Manager 中,由 OCI 通过外部密钥管理界面引用。根据您的组织要求,您可以直接在 Thales CipherTrust Manager 中生成新密钥或导入现有密钥。
下图说明了此任务中的组件和配置设置。
-
转到 Thales Cloud Key Manager 控制台。
- 单击云密钥。
- 单击 Oracle 。
- 单击 Add Key 。
-
在添加 Oracle 密钥中,输入以下信息。
- 选择 Oracle External (HYOK) 。
- 选择在任务 8 中创建的 Thales CipherTrust Manager Vault 。
- 选择 Source(源)为 CipherTrust(本地)。
- 单击下一步。
-
在源关键字中,输入以下信息。
- 选择源密钥材料以成为创建新密钥。
- 输入密钥 Name (
CM_Key
)。 - 单击下一步。
-
在 Configure Oracle Key 中,输入以下信息。
- 输入 Oracle 密钥名称 (
CM_Key
)。 - 单击下一步。
- 输入 Oracle 密钥名称 (
-
单击 Add Key 。
-
单击关闭。
-
记下创建的密钥。
添加密钥后,OCI 将通过外部密钥管理 Vault 提供该密钥。但是,要允许 OCI 服务使用该密钥,您必须在 OCI 控制台中创建密钥参考,我们将在下一个任务中介绍该参考。
注:
- 这些密钥永远不会离开 Thales CipherTrust 管理器。
- OCI 仅向外部密钥管理器发送加密/解密请求,确保始终对密钥材料保持完全控制。
任务 16:在 OCI 中创建密钥引用
外部密钥创建或导入 Thales CipherTrust 管理器后,下一个任务是在 OCI 控制台中创建密钥引用。密钥引用用作指针,允许 OCI 服务通过外部密钥管理 Vault 访问和使用存储在 Thales CipherTrust Manager 中的外部密钥。
下图说明了此任务中的组件和配置设置。
-
转到 Thales Cloud Key Manager 控制台。
- 单击云密钥。
- 单击 Oracle 。
- 单击在任务 15 中创建的密钥。
-
请注意,密钥将具有外部密钥 ID ,请复制此 ID。
-
返回到在任务 9 中创建的 OCI 中的 Vault,然后单击 Vault。
-
向下滚动。
-
单击创建密钥引用。
-
在创建密钥引用中,输入以下信息。
- 输入名称 (
OCI_Key_Reference
)。 - 输入复制的 External Key ID(外部密钥 ID) (Thales CipherTrust Manager) 密钥。
- 单击创建密钥引用。
- 输入名称 (
-
请注意,密钥引用已创建。
OCI 现在会将此密钥引用与 Thales CipherTrust Manager 中管理的外部密钥关联。这使得 OCI Object Storage、OCI Block Volumes 等 OCI 服务能够通过专用端点将加密请求发送到外部密钥。相比之下,关键材料本身完全由您控制。
我们将通过将密钥引用附加到 OCI 对象存储桶来立即测试密钥引用,以验证集成是否按预期工作。
任务 17:使用客户管理的密钥创建 OCI 对象存储桶
您可以使用 OCI 中引用的外部密钥加密资源。在此任务中,我们将创建一个 OCI Object Storage 存储桶,该存储桶使用通过外部密钥管理 Vault 在 Thales CipherTrust Manager 上托管的外部客户管理的密钥。
此设置可确保存储桶中存储的所有对象使用您完全控制的密钥进行加密,从而满足严格的合规性、主权或内部策略要求。
下图说明了此任务中的组件和配置设置。
-
转到 OCI 控制台,导航到存储并单击存储桶。
-
单击创建存储桶。
-
在创建存储桶中,输入以下信息。
- 输入名称 (
OCI_EKMS_Test_Bucket
)。 - 向下滚动。
- 在 Encryption(加密)中,选择 Encrypt using customer-managed keys(使用客户管理的钥匙进行加密)。
- 在 Vault 中,选择在任务 8 中创建的 External Key Management Vault 。
- 在关键字中,选择在任务 16 中创建的关键字参考。
- 单击创建。
- 输入名称 (
-
请注意,已创建存储桶。单击存储桶。
-
您可以向下滚动以上载文件或将其留空。
-
导航到 OCI 控制台的主屏幕或任何其他页面。
创建存储桶后,存储在其中的所有数据都将使用 Thales CipherTrust Manager 管理的外部密钥进行加密。这可确保 OCI 依赖您的关键基础设施进行访问和控制,从而实现完整的“自持密钥”(HYOK) 功能。
假设外部密钥变得不可用(例如,在 Thales CipherTrust Manager 中禁用或阻止)。在这种情况下,将拒绝对存储桶及其内容的访问,从而为您的数据安全状况提供强大的控制点。这是我们将在下一个任务中测试的内容。
任务 18:在 Thales CipherTrust Manager 和 OCI 中块和解锁 Oracle 密钥并测试 OCI 对象存储存储桶可访问性
"Hold Your Own Key"(自持密钥)(HYOK) 模式的主要优势之一是能够对加密密钥保持完全的运行控制,包括随时阻止或取消阻止加密密钥。本节演示如何使用 Thales CipherTrust Manager 通过阻止或取消阻止外部密钥来控制对 Oracle 托管的对象存储桶的访问。
阻止密钥可以有效地限制对使用该密钥加密的任何 OCI 资源的访问,而不会删除密钥或数据。取消阻止将恢复访问。
-
转到 Thales Cloud Key Manager 控制台。
- 单击云密钥。
- 单击 Oracle 。
- 单击 Key(密钥)末尾的三个点。
- 选择块。
-
选择块。
-
请注意,密钥现在在 Thales CipherTrust 管理器中处于已锁定状态。
-
转到 OCI 控制台,导航到 Storage(存储),然后单击 Buckets(时段)。
-
单击在任务 17 中创建的存储桶。
-
请注意,现在发生错误,无法访问存储桶中上载的任何文件。
现在,让我们再次解锁 Thales CipherTrust Manager 中的密钥。
下图说明了此任务中的组件和配置设置。
-
转到 Thales Cloud Key Manager 控制台。
- 单击云密钥。
- 单击 Oracle 。
- 单击 key 末尾的三个点。
- 选择 Unblock 。
-
选择 Unblock 。
-
请注意,密钥现在已在 Thales CipherTrust 管理器中取消阻止。
-
导航回时段详细信息页,或者刷新浏览器(如果仍位于该页)。
-
请注意,解锁时无法重新访问 OCI Object Storage 存储桶。
此功能为紧急响应、法规合规性和数据主权实施提供了强大的机制,可确保您完全控制在 OCI 中访问数据的时间和方式。
后续步骤
学完本教程后,您就可以使用带有 OCI API Gateway 集成选项的 Thales CipherTrust Manager 成功设置了 OCI Hold Your Own Key 解决方案。
您具有:
- 设计并验证了支持的网络体系结构。
- 使用安全的 DNS 和 TLS 设置部署和配置 OCI API Gateway。
- 使用机密应用和身份提供商在 OCI 和 Thales CipherTrust Manager 之间建立互信。
- 将 Thales CipherTrust 管理器管理的外部密钥与 OCI Vault 集成,并通过密钥拦截和解锁来测试访问控制。
在此设置中使用 OCI API Gateway 提供了一个安全、可扩展的集成点,可实施身份验证、增强可观察性,并在受控界面后抽象密钥管理器,确保合规性、控制力和灵活性。
此架构可确保加密密钥从未在 OCI 中存储或管理,但仍可在需要时用于安全操作,从而满足严格的数据主权、合规性和监管要求。
现在,您已具备在 OCI 中实现外部密钥管理的生产就绪蓝图,该蓝图具有对加密资产的完全所有权、可见性和控制权。
相关链接
确认
- 作者 — Iwan Hoogendoorn(云网络黑带)
更多学习资源
通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Set up an OCI Hold Your Own Key using Thales CipherTrust Manager with OCI API Gateway
G38195-03
Copyright ©2025, Oracle and/or its affiliates.