注意:

在 Oracle Cloud Infrastructure 中配置专用服务访问 (PSA),以便从 VCN 安全访问 Oracle 服务

简介

Oracle Cloud Infrastructure (OCI) 引入了专用服务访问 (Private Service Access,PSA),这是一种新的网络结构,可直接在虚拟云网络 (Virtual Cloud Network,VCN) 内提供与 OCI 服务(包括 API、对象存储和 Yum 系统信息库)的专用 IP 连接。借助 PSA,工作负载可以安全地访问 OCI 服务,而无需通过公共互联网,同时继续使用熟悉的 FQDN。

到目前为止,客户有两个主要的专用连接选项。通过服务网关 (SGW),可以从专用 VCN 访问 Oracle 服务网络 (OSN),但它依赖于公共 IP 寻址并支持各种访问,即不进行任何访问。另一方面,许多服务引入了专用端点来提供更隔离的访问,但这些服务必须按服务进行配置,从而大规模创建复杂性。

PSA 通过结合两全其美的方法来弥合这些方法:

在本教程中,您将学习如何在 VCN 中配置 PSA,通过测试对 OCI 服务 API(例如对象存储、Oracle Yum、ZPR API 等)的访问来验证专用连接,并确认流量保持在专用 IP 上,而不是使用公共互联网。最后,您将了解 PSA 与服务网关和专用端点的对比情况,以及如何将其作为安全现代 OCI 网络策略的一部分。

为什么本教程是必不可少的?

在 OCI 中,与 Oracle 服务的专用连接一直是可能的,但这些选项具有权衡优势。服务网关为客户提供了访问 Oracle 服务网络的简单方法,但是它仍然依赖于公共 IP,并且只允许广泛访问。特定于服务的专用端点提供了更强的隔离,但需要您单独部署和管理它们,从而在扩展时增加运营开销。

Private Service Access (PSA) 提供统一的 VCN 本机解决方案来访问 OCI Service API,从而填补这一空白。它可以确保流量保持在专用 IP 上,强制实施每服务访问控制,并保留您的应用已使用的相同 FQDN。

本教程非常重要,因为它介绍了如何端到端配置 PSA,验证工作负载是否连接到 OCI 服务 API 而无需接触公共互联网,以及如何理解 PSA 与现有方法的比较。完成此操作后,您将获得在您自己的 OCI 环境中自信地采用 PSA 的基础。

体系结构

此架构显示客户端虚拟机 (VM),称为 PSA 实例,在没有 Internet 访问(通过 IGW 或 NAT GW)且没有通过服务网关连接到 OCI 服务的专用子网中运行。VM 使用专用服务访问 (Private Service Access,PSA) 来访问 OCI 公共服务。在测试期间,公共子网中的跳转服务器用于通过 ssh 连接到 PSA 实例。

创建 PSA 端点时,该服务会通过将目标 OCI 公共服务的全限定域名 (FQDN) 添加到专用视图并将其映射到 PSA 服务的专用 IP 地址来自动更新 VCN 的专用 DNS 解析器。同样,删除 PSA 端点时,也会删除这些 FQDN。示例包括 yum.eu-madrid-1.oci.oraclecloud.com、network-load-balancer-api.eu-madrid-1.oci.oraclecloud.com 等。

体系结构

目标

在本教程结束时,您将:

Prerequisites

任务 1:部署网络组件(VCN、子网和 VM)

1.- 使用您选择的 IPv4 CIDR 或遵循建议的体系结构,在租户中部署至少有两个子网(公共和专用子网)的虚拟云网络 (VCN)。有关详细信息,请参见以下主题:

2.- 部署两个 linux VM(Jump Server in public,PSA instance in private),每个子网一个。有关详细信息,请参见以下主题:

任务 2:测试跳转服务器 VM 以访问 PSA 实例

我们将使用 Linux Jump Server VM 作为访问点,以访问托管在专用子网(PSA 实例)中的 VM。如您所知,专用子网中的 VM 只能通过其专用 IP 访问,并且没有 Internet 连接。要启用访问,必须将 PSA 实例的 SSH 私有密钥上载到跳转服务器。从那里,可以启动到 PSA 实例的 SSH 连接。我们建议使用 SFTP 安全地上载密钥。

上载通过 SFTP 跳转服务器的私钥后,将 ssh 放入跳转服务器并:

ssh -i private_PSA_instance_ssh.prv 10.200.20.X ( your vm PSA instace ip)

注意:如果使用在 OCI 中生成的 SSH 私有密钥时遇到兼容性问题,您可以使用 PuTTYgen(适用于 Windows)或 OpenSSL(适用于 Linux/macOS)等工具将其转换为所需的格式。这些工具允许您转换格式之间的密钥,以便它可以与 SSH 客户端无缝使用。

请参阅本文档以了解 puttyGen:PuttyGen

任务 3:将 OCI cli 安装到 PSA 实例中

现在您已登录 PSA 实例,您需要安装 OCI CLI

有关安装 OCI CLI 的信息,请参阅此文档: OCI CLI 安装

请注意,托管在专用子网中的此 PSA VM 将临时需要 Internet 访问。我们建议向您的 VCN 添加 NAT 网关并创建指向它的 0.0.0.0/0 路由。

有关配置和使用 NAT 网关: OCI NAT Gateway ,请参阅本文档。

安装后,从专用子网中删除 NAT 网关非常重要。目标是从没有公共访问(入站或出站)的严格专用子网测试 Oracle 服务。

任务 4:添加要测试的 PSA 服务

在此任务中,我们将添加一系列 PSA 服务,以便稍后通过 OCI CLI API 从专用 PSA 实例进行测试。

1.- 转到 OCI 控制台:网络 VCN
网络 PSA 配置 1

2.- 单击“Virtual Cloud Networks(虚拟云网络)”,然后选择 PSA 专用实例所在的 VCN。
网络 PSA 配置 2

3.- 在 VCN 中,选择“Private Service Access(专用服务访问)”。
网络 PSA 配置 3

4.- 按“创建 PSA 端点”按钮。
网络 PSA 配置 4

5.- 在“Create PSA(创建 PSA)”菜单中,您需要为 PSA 服务选择一个名称、创建 PSA 服务的区间、要创建的 PSA 类型、创建端点的子网区间和子网。此外,您可以选择自动分配专用 IP 或手动 IP。最后一个选择是关于安全。强烈建议分配 ZPR 安全属性或 NSG 以允许向该端点传输通信。
网络 PSA 配置文件 5
网络 PSA 配置 6
网络 PSA 配置 7

创建 PSA 后,PSA 将显示在以下列表中:
网络 PSA 配置 8

系统会从创建 PSA 的子网为其分配专用 IP 地址。可以自动分配或手动从子网中选择此专用 IP,并在控制台中将其显示为“IPv4 地址”。PSA 还为专用服务具有关联的 FQDN(域名),在控制台中显示为 'IPv4 FQDN',该 FQDN 映射到同一专用 IP。

任务 5:测试 PSA 端点

现在,我们需要测试 PSA 端点。在本示例中,我们将测试 YUM 服务器和 Zero Trust Packer Routing Control Plane API。

1.- 首先,通过 SSH 连接到跳转服务器。

2.- 从跳转服务器,SSH 到专用 PSA 实例。

注:此实例没有 Internet 访问权限,并且未连接到服务网关或 NAT 网关。”

[opc@jumpserver ~]\$ ssh -i private_OCI_v2_ssh.prv 10.200.20.67

[opc@privateinstace-psa-test ~]\$

作为预检查,我们将测试 IPv4 FQDN 是否实际指向其专用 IP

dig +short yum.eu-madrid-1.oci.oraclecloud.com 
10.200.20.172

如果您看到的是公共 IP 而不是专用 IP,则会出现问题。有关 IPv4 的更多信息,请参见 IPv4

现在,让我们调用 yum update

yum 更新

Yum 服务正在通过其 PSA 专用端点‘ yum.eu-madrid-1.oci.oraclecloud.com ’,网址为 10.200.20.172 !!

现在 ZPR 一:

dig +short zpr.eu-madrid-1.oci.oraclecloud.com
10.200.20.128

现在,让我们列出给定租户中的 ZPR 策略数

oci zpr zpr-policy list  --compartment-id ocid1.tenancy.oc1..aaaaaaaabh2affulc4dt4tqs7lbojyhqi6hzXXXXXX  --region eu-madrid-1

zpr 列表测试

小结

在本教程中,您了解了专用服务访问 (Private Service Access,PSA) 如何使专用子网中的工作负载能够安全地访问 Oracle Cloud Infrastructure 公共服务,而无需 Internet 或服务网关连接。我们介绍了 PSA 端点的配置、VCN 专用 DNS 在将服务 FQDN 映射到专用 IP 中的角色,以及如何通过跳转服务器访问专用实例。

PSA 十分重要,因为它可以让您更好地控制和灵活地通过专用端点公开哪些服务。您可以定义可访问哪些 OCI 公共服务,从而在访问控制方面提高架构的安全性和粒度,而不是开放广泛的访问。

通过完成设置和验证步骤,您可以了解 PSA 如何提供简单而强大的方法来增强安全性,同时将流量完全保留在 VCN 中。借助这些基础,您现在可以将 PSA 集成到更复杂的场景中。

确认

更多学习资源

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

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