解耦 PDP 和 PEP,以支持 Oracle Cloud 上的零信任架构

为了帮助降低持续威胁的风险,零信任架构应该使用单独的策略决策点 (PDP) 控制层,并在数据层上实施策略实施点 (Policy Enforcement Point,PEP)。您可以使用 Oracle Cloud 服务支持零信任架构,并在 Oracle Cloud 上增强对 PDP 和 PEP 实施的访问控制。

Oracle Cloud Infrastructure (OCI) 提供一系列引人注目的安全功能来保护关键任务工作负载和敏感数据。Oracle Cloud 实施了零信任安全模型,该模型由美国国家标准与技术研究院 (National Institute of Standards and Technology,NIST) 建立的零信任架构提供信息。通过此模型,您可以实施严格的安全态势,要求每个尝试访问系统、网络和数据的用户进行验证。

您可以集成 OCI Identity and Access ManagementOCI API Gateway ,实现 PDP 和 PEP 之间的分离。

身份和访问管理 (IAM)

Oracle Cloud 提供了一个名为 OCI Identity and Access Management 的企业级身份即服务 (IDaaS) 平台。OCI Identity and Access Management 使用身份域来预配云身份、用户和安全应用。您可以将 OCI 身份和访问管理与身份域作为 PDP,通过定义细粒度策略来允许或拒绝对各种云资源或服务的访问。

身份平台既是云服务的前门,也是面向企业用户和消费者的独立身份即服务 (IDaaS) 平台。此平台为在 Oracle Cloud、第三方云和内部部署数据中心运行的应用和服务提供关键身份管理功能。OCI Identity and Access Management 为 Oracle Cloud 以及 Oracle 和非 Oracle 应用(无论是 SaaS、云托管还是本地部署)提供身份验证、单点登录 (SSO) 和身份生命周期管理。IAM 还允许您控制一组用户具有哪些类型的访问以及哪些特定的云资源。

API 网关

Oracle Cloud 采用安全优先的设计方法构建服务。通过此方法,您可以创建仅允许授权用户或应用访问整个企业数据的数据访问策略,例如 OCI API 网关

通过 OCI API 网关服务,您可以为多个后端创建受监管的 HTTP/S 接口 (API),包括 OCI 负载平衡OCI 函数OCI 计算实例,以及通过 VPN 或 OCI FastConnect 连接到 Oracle Cloud 的内部部署应用。OCI API 网关提供策略实施功能,例如限制 HTTP/S 端点的速率、通过身份提供商进行身份验证以及访问云和内部部署中的多个 RESTful 服务。

OCI API 网关可确保对调用方进行验证,以便无法匿名调用连接到网关的后端。OCI API 网关还可以检查授权,并允许您将 HTTP 和 HTTP/S URL 添加到后端服务,以便通过策略实施来授予这些服务前端访问。为后端服务指定的 HTTP/S URL 可以是以下 URL 之一:

  • Oracle Cloud 服务的 URL(例如 OCI 函数OCI 对象存储
  • 您自己的专用或内部网络中通过 VPN 或 OCI FastConnect 连接到 OCI 的服务的 URL

体系结构

此架构设计描述了 OCI Identity and Access ManagementOCI API Gateway 之间的集成。在此体系结构中, OCI API Gateway 通过实施策略来充当 PEP, OCI Identity and Access Management 通过授权令牌并为授权用户授予访问权限来充当 PDP。此集成利用 JWT 或 JSON Web 令牌(也称为访问令牌)。JWT 是一个开放的行业标准,允许您与其他 IAM 系统集成。

下图说明了此参考体系结构。

下面介绍了零信任 -pdp-pep-oci.png
插图 0-trust-pdp-pep-oci.png 的说明

零信任 pdp-pep-oci-oracle.zip

以下步骤说明了 OCI API GatewayOCI Identity and Access Management 的架构授权流程:
  1. 生成访问标记

    最终用户的客户端应用程序使用 IAM API 从 OCI Identity and Access Management (PDP) 生成 JWT 访问令牌。

  2. 使用访问标记进行调用 (JWT)

    JWT 访问令牌作为每个 API 调用 HTTP 请求标头的一部分发送到 OCI API Gateway 。(可选)标记可以包含专门为资源定义的范围。

  3. 使用 IAM 进行策略验证和 JWT 验证

    OCI API 网关 (PEP) 调用 IAM 授权 API 并传递从客户端收到的访问令牌。

  4. 策略决策

    OCI Identity and Access Management 服务 (PDP) 评估令牌并返回允许或拒绝的决定。

  5. 授予对后端的访问权限

    OCI API 网关 (PEP) 根据 IAM 策略决策的结果,授予或拒绝访问后端服务(例如在 Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE)、 OCI FunctionsOCI Object Storage 中运行的微服务或由在 VM 中运行的应用程序公开的服务端点)。

  6. 响应 (200 OK / 403 Forbidden)

    OCI API Gateway (PEP) 将状态 200 OK (allow) 或 403 Forbidden (deny) 返回给调用方。

您可以使用 OCI 控制台或 GUI 和 REST 调用来配置此集成的实施。

该体系结构具有以下组成部分:

  • API 网关

    使用 OCI API 网关服务,您可以发布具有可从网络访问的专用端点的 API,并且可以根据需要向公共互联网公开这些端点。端点支持 API 验证、请求和响应转换、CORS、验证和授权以及请求限制。

  • 身份和访问管理 (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) 是 Oracle Cloud Infrastructure (OCI) 和 Oracle Cloud Applications 的访问控制层。通过 IAM API 和用户界面,您可以管理身份域和身份域中的资源。每个 OCI IAM 身份域表示一个独立的身份和访问管理解决方案或不同的用户群体。

    通过 IAM,您可以控制谁可以访问 OCI 中的资源以及他们可以对这些资源执行的操作。

  • 策略

    Oracle Cloud Infrastructure Identity and Access Management 策略指定谁可以访问哪些资源以及如何访问。在组和区间级别授予访问权限,这意味着您可以编写策略,为组提供特定区间内或租户的特定类型的访问权限。

  • 适用于 Kubernetes 的容器引擎

    Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) 是一个完全托管、可扩展的高可用性服务,您可以使用它将容器化应用部署到云中。您可以指定应用所需的计算资源,并且 Container Engine for Kubernetes 可在现有租户的 Oracle Cloud Infrastructure 上预配这些资源。Container Engine for Kubernetes 使用 Kubernetes 自动部署、扩展和管理跨主机集群的容器化应用。

  • 函数

    Oracle Cloud Infrastructure Functions 是一个完全托管、多租户、高度可扩展的按需函数即服务 (FaaS) 平台。它由 Fn Project 开源引擎提供支持。使用函数可以部署代码,并直接调用代码或触发代码以响应事件。Oracle Functions 使用 Oracle Cloud Infrastructure Registry 中托管的 Docker 容器。

  • 对象存储

    通过对象存储,可以快速访问任意内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全可靠地存储数据,然后直接从互联网或云平台检索数据。您可以无缝扩展存储,而不会出现性能或服务可靠性下降的情况。将标准存储用于“热”存储,以便您快速、立即和频繁地访问。将归档存储用于长时间保留的“冷”存储,很少或很少访问。

推荐

使用以下建议作为起点。您的要求可能不同于此处所述的体系结构。
  • 安全

    使用 Oracle Cloud Guard 主动监视和维护 Oracle Cloud Infrastructure (OCI) 中资源的安全性。Oracle Cloud Guard 使用可以定义的检测器配方来检查资源是否存在安全弱点,以及监视操作员和用户是否有风险活动。检测到配置错误或不安全活动时,Oracle Cloud Guard 会根据您可以定义的响应器配方建议更正操作并帮助采取这些操作。

    对于需要最高安全性的资源,Oracle 建议您使用安全区域。安全区域是与 Oracle 定义的基于优秀实践的安全策略配方关联的区间。例如,不能从公共互联网访问安全区域中的资源,并且必须使用客户管理的密钥对其进行加密。在安全区域中创建和更新资源时,OCI 会根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。

  • Cloud Guard

    克隆和定制 Oracle 提供的默认配方以创建定制检测器和响应器配方。通过这些配方,您可以指定哪种类型的安全违规生成警告以及允许对其执行哪些操作。例如,您可能希望检测可见性设置为公共的 OCI Object Storage 存储桶。

    在租户级别应用 Oracle Cloud Guard 以涵盖最广泛的范围并减轻维护多个配置的管理负担。

    您还可以使用托管列表功能将某些配置应用于检测器。

注意事项

在实施此引用体系结构时,请考虑以下事项:

  • 用户设置和访问控制

    在向客户授予对数据和后端服务的访问权限后,他们如何预配到 Oracle Cloud Infrastructure Identity and Access Management 中(对客户进行身份验证)?在撤消其访问权限时,如何取消预配它们?在关于如何和向谁提供货币化数据产品的更广泛讨论中,出现了这些考虑因素。

  • 性能

    Oracle Cloud Infrastructure API Gateway 通过与外部高速缓存服务器(例如 Redis 或 KeyDB 服务器)集成来支持响应缓存,这有助于避免在后端服务上产生不必要的负载。对于缓存的响应,通过从响应高速缓存中检索数据而不是将请求发送到后端服务来完成类似请求。这样可以减少后端服务的负载,从而提高性能并降低成本。

    OCI API 网关还根据验证令牌的生存时间 (TTL) 缓存验证令牌,从而减少身份提供者的负载并提高性能。

  • 安全

    Oracle Cloud Infrastructure (OCI) 服务使用 OCI Identity and Access Management 策略,例如允许 OCI API Gateway 调用函数。OCI API Gateway 还可以使用 OAuth 验证和授权来控制访问。通过 OCI Identity and Access Management 联合验证和授权, OCI API Gateway 能够针对各种服务和验证设置进行验证。

  • 高可用性

    请考虑根据您的部署要求和区域使用高可用性选项。这些选件包括在一个区域中多个可用性域之间分配资源,以及在可用性域中的容错域之间分配资源。对于在单个可用性域中部署的工作负载,容错域可提供出色的弹性。为了在应用层实现高可用性,请在不同的容错域中部署应用服务器,并使用负载平衡器在应用服务器上分配客户端流量。

确认

作者

  • Subba Bhamidipati