使用 OCI 功能自动执行 DNS 专用区域条目

在某些情况下,客户想要为 VCN 定制 DNS 设置,而不使用 oraclevcn.com 的其他域来连接 VCN 主机。Oracle Cloud Infrastructure (OCI) DNS 服务中的 DNS 专用区域功能允许用户扩展内置 VCN DNS 解析器的功能,以便用户可以为 VCN 中的资源使用定制域名。此体系结构扩展了博客文章使用案例 - OCI VCN 定制 DNS (可从此参考体系结构的其他位置的“浏览更多”部分访问)中描述的解决方案,方法是使用 OCI 事件和函数自动执行 DNS 区域条目管理。

体系结构

此体系结构介绍了如何使用 OCI 函数和事件自动使用 DNS 条目填充专用区域,从而减少手动更新和潜在错误的需求。然后,您可以使用事件在区间级别捕获新的实例创建请求,然后触发 Add DNS record 函数以收集实例元数据,将 DNS 记录添加到专用 DNS 区域,最后通过更新实例自由形式的标记来确认记录插入。实例终止后,事件将触发 Remove DNS record 函数删除关联的 DNS 记录。

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


后面是 dns_private_zones.png 的说明
插图 dns_private_zones.png 的说明

dns-private-zones-oracle.zip

此体系结构包含以下组件:
  • 区域

    Oracle Cloud Infrastructure 区域是一个局部地理区域,包含一个或多个数据中心(称为可用性域)。区域独立于其他区域,广阔的距离可以将其分开(跨国家甚至大陆)。

  • 区间

    区间是 Oracle Cloud Infrastructure 租户中的跨区域逻辑分区。使用区间在 Oracle Cloud 中组织资源、控制对资源的访问以及设置使用限额。要控制对给定区间中资源的访问,您可以定义策略来指定哪些人可以访问资源以及他们可以执行的操作。

  • 可用性域

    可用性域是区域中的独立独立数据中心。每个可用性域中的物理资源与提供容错能力的其他可用性域中的资源隔离。可用性域不共享基础设施(例如电源或冷却设备)或内部可用性域网络。因此,一个可用性域出现故障不会影响区域中的其他可用性域。

  • 虚拟云网络 (VCN) 和子网

    VCN 是您在 Oracle Cloud Infrastructure 区域中设置的可定制软件定义网络。与传统数据中心网络一样,VCN 允许您完全控制您的网络环境。一个 VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后对其进行更改。您可以将 VCN 细分为多个子网,这些子网可以限定到区域或可用性域。每个子网包含一系列不与 VCN 中的其他子网重叠的连续地址。创建后可以更改子网的大小。子网可以是公共子网,也可以是专用子网。安全列表 对于每个子网,您可以创建安全规则来指定必须允许进出子网的流量源、目标和类型。

  • NAT 网关

    NAT 网关允许 VCN 中的专用资源访问互联网上的主机,同时不会向传入的互联网连接公开这些资源。

  • 服务网关

    通过服务网关,可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量会通过 Oracle 网络网状结构网络传输,并且从不通过互联网传输。

  • 专用 DNS 区域

    通过专用 DNS,您可以使用自己的专用 DNS 域名并完全管理关联的区域和记录,以便为在虚拟云网络 (Virtual Cloud Network,VCN) 之间以及内部部署或其他专用网络运行的应用提供主机名解析。

  • Oracle Cloud Infrastructure Events

    通过 OCI 事件,您可以基于租户中资源的状态更改来创建自动化。发出事件可以在规则的帮助下进行筛选,然后作为其他 OCI 服务(通知、流处理、函数)中的操作的一部分进行处理。

  • Oracle Functions

    借助 Oracle Functions,开发人员可以利用完全托管的多租户、高度可扩展的按需函数即服务平台在云中编写和执行代码,而无需管理底层基础设施。在此体系结构中,函数为 Add DNS recordRemove DNS record

  • VCN DNS 解析程序

    通过 VCN DNS 解析程序,VCN 连接的实例可以解析同一 VCN 中其他实例的主机名(可以分配主机名)。您可以通过将专用区域连接到 VCN 专用视图来扩展 VCN DNS 解析器的默认功能。

建议

使用 OCI 功能自动执行 DNS 专用区域条目时,请将以下建议用作起点。您的要求可能不同于此处所述的体系结构。
  • VCN

    创建 VCN 时,根据计划附加到 VCN 中的子网中的资源数,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。

    选择与您打算设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、您的内部部署数据中心或其他云提供商中)不重叠的 CIDR 块。

    创建 VCN 后,您可以更改、添加和删除其 CIDR 块。

    设计子网时,请考虑您的流量流和安全要求。将特定层或角色中的所有资源连接到可充当安全边界的同一子网。

    使用区域子网。

  • 安全性

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

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

  • 云卫士

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

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

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

  • 安全区域

    安全区域在 OCI 区间中强制执行安全状况,并防止可能削弱客户安全状况的操作。您可以将安全区域策略应用于各种云基础设施类型(网络、计算、存储、数据库等),以确保云资源保持安全并防止出现安全错误配置。

  • 网络安全组 (NSG)

    您可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG,而不是安全列表,因为 NSG 可以将 VCN 的子网架构与应用的安全要求分开。您可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG,而不是安全列表,因为 NSG 可以将 VCN 的子网架构与应用的安全要求分开。

  • 负载平衡器带宽

    创建负载平衡器时,您可以选择提供固定带宽的预定义配置,或者指定在其中设置带宽范围的定制(灵活)配置,并允许服务根据流量模式自动扩展带宽。无论使用哪种方法,都可以在创建负载平衡器后随时更改配置。

考虑事项

预配基础结构时,请注意以下事项:

  • 部署

    部署体系结构的用户必须具有管理权限。

  • DNS 区域

    配置的 DNS 区域必须与所选子网在同一区间中。

部署

此参考体系结构的 Terraform 代码可作为 Oracle Cloud Infrastructure Resource Manager 中的示例堆栈提供。您还可以从 GitHub 下载代码,并对其进行定制以满足特定的要求。

  • 使用 Oracle Cloud Infrastructure Resource Manager 中的示例堆栈进行部署:
    1. 单击 部署到 Oracle Cloud

      如果您尚未登录,请输入租户和用户凭据。

    2. 选择要部署堆栈的区域。
    3. 按照屏幕上的提示和说明创建堆栈。
    4. 创建堆栈后,单击 Terraform 操作,然后选择计划
    5. 等待作业完成,然后查看计划。

      要进行任何更改,请返回到“堆栈详细信息”页,单击编辑堆栈,然后进行所需的更改。然后,再次运行计划操作。

    6. 如果不需要进一步更改,请返回到“堆栈详细信息”页,单击 Terraform 操作,然后选择应用
  • 使用 GitHub 中的 Terraform 代码进行部署:
    1. 转到 GitHub
    2. 将系统信息库克隆或下载到本地计算机。
    3. 按照 README 文档中的说明进行操作。

浏览更多

详细了解 OCI 中的 DNS 专用区域,请参阅以下资源:

查看以下附加资源:

确认

作者: Andrei Ilas