你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Front Door 保护对 Azure Red Hat OpenShift 的访问

本文介绍如何使用 Azure Front Door Premium 保护对 Azure Red Hat OpenShift 的访问。

先决条件

需要以下先决条件:

  • 你有一个现有的 Azure Red Hat OpenShift 群集。 按照此指南创建专用 Azure Red Hat OpenShift 群集。

  • 已为该群集配置了专用入口可见性。

  • 使用自定义域名,例如:

    example.com

注意

初始状态未配置 DNS。 没有任何应用程序会从 Azure Red Hat OpenShift 群集向外公开。

本部分介绍如何创建 Azure 专用链接服务。 Azure 专用链接服务是对你自己的服务(由 Azure 专用链接提供支持)的引用。

可为 Azure 标准负载均衡器后面运行的服务启用专用链接访问,使该服务的使用者能够从其自己的 VNet 以私密方式访问该服务。 你的客户可在其 VNet 中创建专用终结点,然后将此终结点映射到此服务。

有关 Azure 专用链接服务及其使用方式的详细信息,请参阅 Azure 专用链接服务

创建 AzurePrivateLinkSubnet。 此子网包含一个网络掩码,用于允许该子网对 Azure 群集的控制平面和工作器节点可见。 不要将这个新子网委托给任何服务或配置任何服务终结点。

例如,如果虚拟网络为 10.10.0.0/16,并且:

  • 现有 Azure Red Hat OpenShift 控制平面子网 = 10.10.0.0/24
  • 现有 Azure Red Hat OpenShift 辅助角色子网 = 10.10.1.0/24
  • 新的 AzurePrivateLinkSubnet = 10.10.2.0/24

Azure 专用链接服务中创建一个新的专用链接,如以下步骤所述:

  1. 在“基本信息”选项卡上,配置以下选项:

    • 项目详细信息
      • 选择 Azure 订阅。
      • 选择已部署了 Azure Red Hat OpenShift 群集的资源组。
    • 实例详细信息
      • 输入 Azure 专用链接服务的名称,如以下示例所示:example-com-private-link
      • 为你的专用链接选择一个区域
  2. 在“出站设置”选项卡上:

    • 将“负载均衡器”设置为要启用外部访问的群集的“-internal”负载均衡器。 这些选项已填充在下拉列表中。

    • 将“负载均衡器前端 IP 地址”设置为 Azure Red Hat OpenShift 入口控制器的 IP 地址,该地址通常以“.254”结尾。 如果不确定,请使用以下命令。

      az aro show -n <cluster-name> -g <resource-group> -o tsv --query ingressProfiles[].ip
      
    • “源 NAT 子网”应该是你创建的 AzurePrivateLinkSubnet

    • 不应在“出站设置”中更改任何项

  3. 在“访问安全性”选项卡上,无需进行任何更改。

    • 在“谁可以请求访问你的服务?”提示下,选择“具有你的别名的任何人”
    • 不要添加任何订阅供自动审批。
  4. 在“标记”选项卡上,选择“查看 + 创建”。

  5. 选择“创建”以创建 Azure 专用链接服务,然后等待该过程完成。

  6. 部署完成后,选择“后续步骤”下的“转到资源组”

在Azure 门户中,输入已部署的 Azure 专用链接服务。 保留已为 Azure 专用链接服务生成的“别名”。 稍后将用到它。

在 Azure DNS 中注册域

本部分介绍如何在 Azure DNS 中注册域。

  1. 为 example.com 创建一个全局 Azure DNS 区域。

  2. 为 apps.example.com 创建一个全局 Azure DNS 区域。

  3. 记下在 Azure DNS 中为 apps.example.com 提供的四个名称服务器。

  4. 在 example.com 区域中新建一个指向 apps 的 NS 记录集,并指定在创建 apps 区域时已提供的四个名称服务器

创建新的 Azure Front Door Premium 服务

若要创建新的 Azure Front Door Premium 服务,请执行以下操作:

  1. Microsoft Azure 比较产品/服务上选择“Azure Front Door”,然后选择“继续创建 Front Door”

  2. 在“订阅”>“资源组”中的“创建 Front Door 配置文件”页面上,选择 Azure Red Hat OpenShift 群集部署到的资源组以存放 Azure Front Door Premium 资源。

  3. 适当地命名你的 Azure Front Door Premium 服务。 例如,在“名称”字段中,输入以下名称:

    example-com-frontdoor

  4. 选择“高级”层。 “高级”层是支持 Azure 专用链接的唯一选择。

  5. 对于“终结点名称”,选择适合 Azure Front Door 的终结点名称。

    对于部署的每个应用程序,都将在 Azure DNS 中创建一个 CNAME 以指向此主机名。 因此,必须选择与应用程序无关的名称。 为了安全起见,该名称不应暗示已部署的应用程序或架构,例如 example01

    你选择的名称将追加到 .z01.azurefd.net 域之前。

  6. 对于“源类型”,请选择“自定义”

  7. 对于“源主机名”,请输入以下占位符:

    changeme.com

    稍后将删除此占位符。

    在此阶段,请勿启用 Azure 专用链接服务、缓存或 Web 应用程序防火墙 (WAF) 策略。

  8. 选择“查看 + 创建”以创建 Azure Front Door Premium 资源,然后等待该过程完成。

Azure Front Door Premium 的初始配置

若要配置 Azure Front Door Premium,请执行以下操作:

  1. 在 Azure 门户中,输入已部署的 Azure Front Door Premium 服务。

  2. 在“终结点管理器”窗口中,通过选择“编辑终结点”来修改终结点。

  3. 删除已创建为 default-route 的默认路由

  4. 关闭“Endpoint Manager”窗口。

  5. 在“源组”窗口中,删除名为 default-origin-group 的默认源组。

在 Azure Red Hat OpenShift 中公开应用程序路由

Azure Red Hat OpenShift 必须配置为将 Azure Front Door 要对外公开的同一主机名 (*.apps.example.com) 提供给应用程序。 在我们的示例中,我们将使用以下主机名公开 Reservations 应用程序:

reservations.apps.example.com

此外,在 Azure Red Hat OpenShift 中创建一个公开该主机名的安全路由。

配置 Azure DNS

若要配置 Azure DNS,请执行以下操作:

  1. 输入之前创建的公共 apps DNS 区域。

  2. 创建名为 reservation 的新 CNAME 记录集。 此 CNAME 记录集是我们的示例 Azure Front Door 终结点的别名:

    example01.z01.azurefd.net

配置 Azure Front Door Premium

以下步骤说明如何配置 Azure Front Door Premium。

  1. 在 Azure 门户中,输入之前创建的 Azure Front Door Premium 服务:

    example-com-frontdoor

在“域”窗口中:

  1. 由于所有 DNS 服务器都托管在 Azure 上,因此请将“DNS 管理”保留设置为“Azure 托管 DNS”

  2. 选择示例域:

    apps.example.com

  3. 选择示例中的 CNAME:

    reservations.apps.example.com

  4. 对“HTTPS”和“最低 TLS 版本”使用默认值。

  5. 选择添加

  6. 当“验证状态”更改为“挂起”时,选择“挂起”

  7. 若要验证 DNS 区域的所有权,请对“DNS 记录状态”选择“添加”

  8. 选择关闭

  9. 继续选择“刷新”,直到域的“验证状态”更改为“已批准”并且“终结点关联”更改为“未关联”

在“源组”窗口中:

  1. 选择添加

  2. 为“源组”指定一个适当的名称,例如“Reservations-App”

  3. 选择“添加源”

  4. 输入源的名称,如“ARO-Cluster-1”

  5. 选择“自定义”作为“源类型”

  6. 输入在 Azure Red Hat OpenShift 群集中公开的完全限定域名 (FQDN) 主机名,例如:

    reservations.apps.example.com

  7. 启用“专用链接”服务。

  8. 输入从 Azure 专用链接服务获取的“别名”

  9. 选择“添加”以返回到“源组创建”窗口。

  10. 选择“添加”以添加源组并返回到 Azure 门户。

若要批准 example-com-private-link(即之前创建的“Azure 专用链接”服务),请完成以下步骤。

  1. 在“专用终结点连接”选项卡上,选中描述为“从 AFD 执行”的资源现存的复选框。

  2. 选择“批准”,然后选择“是”以验证批准。

完成 Azure Front Door Premium 配置

以下步骤说明如何完成 Azure Front Door Premium 的配置。

  1. 在 Azure 门户中,输入之前创建的 Azure Front Door Premium 服务:

    example-com-frontdoor

  2. 在“终结点管理器”窗口中,选择“编辑终结点”来修改终结点。

  3. 在“路由”下选择“+添加”

  4. 为路由指定适当的名称,如“Reservations-App-Route-Config”

  5. 在“域”下的“已验证的可用域”下,选择完全限定的域名,例如:

    reservations.apps.example.com

  6. 若要重定向 HTTP 流量以使用 HTTPS,请将“重定向”复选框保持选中状态。

  7. 在“源组”下,选择之前创建的源组 Reservations-App

  8. 如果需要,可以启用缓存。

  9. 选择“添加”以创建路由。 配置路由后,Endpoint Manager 会使用为此应用程序创建的其他元素填充“域”和“源组”窗格。

由于 Azure Front Door 是一项全球服务,因此部署应用程序最多可能需要 30 分钟。 在此期间,可以选择为应用程序创建 WAF。 当应用程序上线时,可以使用本示例中使用的 URL 访问它:

https://reservations.apps.example.com

后续步骤

使用 Azure 门户在 Azure Front Door 上创建 Azure Web 应用程序防火墙: