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
Note
初期状態では DNS は構成されていません。 Azure Red Hat OpenShift クラスターから外部に公開されるアプリケーションはありません。
Azure Private Link サービスを作成する
このセクションでは、Azure Private Link サービスを作成する方法について説明します。 Azure Private Link サービスは、Azure Private Link を使用する独自のサービスに対する参照です。
Azure Standard Load Balancer の背後で実行されている自分のサービスで Private Link アクセスを有効にすると、自分のサービスのコンシューマーがそのサービスに対して独自の VNet からプライベートにアクセスできるようになります。 顧客は、自分の VNet 内にプライベート エンドポイントを作成し、それをこのサービスにマッピングすることができます。
Azure Private Link サービスとその使用方法について詳しくは、Azure Private Link サービスに関するページをご覧ください。
AzurePrivateLinkSubnet を作成します。 このサブネットには、Azure クラスターのコントロール プレーンとワーカー ノードに対するサブネットの可視性を許可するネットマスクが含まれています。 この新しいサブネットをサービスに委任したり、サービス エンドポイントを構成したりしないでください。
たとえば、仮想ネットワークが 10.10.0.0/16 の場合、次のようになります。
- 既存の Azure Red Hat OpenShift コントロール プレーン サブネット = 10.10.0.0/24
- 既存の Azure Red Hat OpenShift worker サブネット = 10.10.1.0/24
- 新しい AzurePrivateLinkSubnet = 10.10.2.0/24
次の手順で説明するように、Azure Private Link サービスで新しいプライベート リンクを作成します。
[基本] タブで次のオプションを構成します。
- プロジェクトの詳細
- Azure サブスクリプションを選択します。
- Azure Red Hat OpenShift クラスターがデプロイされたリソース グループを選びます。
- インスタンスの詳細
- 次の例のように、Azure Private Link サービスの [名前] を入力します: example-com-private-link。
- Private Link の [リージョン] を選びます。
- プロジェクトの詳細
[送信設定] タブで:
[ロード バランサー] を、外部アクセスを有効にしているクラスターの -internal ロード バランサーに設定します。 ドロップダウン リストに選択肢が設定されます。
[ロード バランサーのフロントエンド IP アドレス] を、Azure Red Hat OpenShift イングレス コントローラーの IP アドレスに設定します。通常は .254 で終わります。 わからない場合は、次のコマンドを使います。
az aro show -n <cluster-name> -g <resource-group> -o tsv --query ingressProfiles[].ip
[ソース NAT サブネット] は、作成した AzurePrivateLinkSubnet にする必要があります。
[送信設定] で変更する必要がある項目はありません。
[アクセス セキュリティ] タブでは、何も変更する必要はありません。
- [サービスへのアクセスを要求できるのは誰ですか?] というプロンプトで、[お客様のエイリアスを持つすべてのユーザー] を選びます。
- 自動承認にサブスクリプションを追加しないでください。
[タグ] タブで、[確認および作成] を選びます。
[作成] を選んで Azure Private Link サービスを作成し、プロセスが完了するのを待ちます。
デプロイが完了したら、[次の手順] で [リソース グループに移動] を選びます。
Azure portal で、デプロイされた Azure Private Link サービスを入力します。 Azure Private Link サービスに対して生成された [エイリアス] を維持します。 後でそれを使います。
ドメインを Azure DNS に登録する
このセクションでは、ドメインを Azure DNS に登録する方法を説明します。
example.com 用のグローバル Azure DNS ゾーンを作成します。
apps.example.com 用のグローバル Azure DNS ゾーンを作成します。
Azure DNS に存在する apps.example.com の 4 つのネーム サーバーを記録しておきます。
example.com ゾーンに app を指す新しい NS レコード セットを作成し、apps ゾーンの作成時に示された 4 つのネーム サーバーを指定します。
新しい Azure Front Door Premium サービスを作成する
新しい Azure Front Door Premium サービスを作成するには:
[Microsoft Azure オファリングの比較] で [Azure Front Door] を選び、[Front Door の作成を続ける] を選びます。
[サブスクリプション]>[リソース グループ] の [Front Door プロファイルの作成] ページで、Azure Red Hat OpenShift クラスターがデプロイされたリソース グループを選んで Azure Front Door Premium リソースを格納します。
自分の Azure Front Door Premium サービスに適切な名前を付けます。 たとえば、[名前] フィールドに次の名前を入力します。
example-com-frontdoor
[Premium] レベルを選びます。 Azure Private Link をサポートするレベルは Premium だけです。
[エンドポイント名] で、Azure Front Door の適切なエンドポイント名を選びます。
デプロイされているアプリケーションごとに、このホスト名を指す CNAME が Azure DNS に作成されます。 そのため、アプリケーションに依存しない名前を選ぶことが重要です。 セキュリティのため、デプロイしたアプリケーションやアーキテクチャが名前からわからないようにする必要があります (例: example01)。
選んだ名前は、.z01.azurefd.net ドメインの前に付加されます。
[配信元の種類] では、[カスタム] を選びます。
[配信元のホスト名] には、次のプレースホルダーを入力します。
changeme.com
このプレースホルダーは後で削除されます。
この段階では、Azure Private Link サービス、キャッシュ、または Web Application Firewall (WAF) ポリシーを有効にしないでください。
[確認および作成] を選んで Azure Front Door Premium リソースを作成し、プロセスが完了するのを待ちます。
Azure Front Door Premium の初期構成
Azure Front Door Premium を構成するには:
Azure portal で、デプロイされた Azure Front Door Premium サービスに移動します。
[エンドポイント マネージャー] ウィンドウで、[エンドポイントの編集] を選んでエンドポイントを変更します。
default-route として作成された既定のルートを削除します。
[エンドポイント マネージャー] ウィンドウを閉じます。
[配信元グループ] ウィンドウで、default-origin-group という名前が設定された既定の配信元グループを削除します。
Azure Red Hat OpenShift でのアプリケーション ルートの公開
Azure Red Hat OpenShift は、Azure Front Door が外部に公開するのと同じホスト名 (*.apps.example.com) でアプリケーションを提供するように構成する必要があります。 この例では、次のホスト名を使用して予約アプリケーションを公開します。
reservations.apps.example.com
また、ホスト名を公開する、セキュリティで保護されたルートを Azure Red Hat OpenShift で作成します。
Azure DNS を構成する
Azure DNS を構成するには:
前に作成したパブリック apps DNS ゾーンを入力します。
reservation という名前の新しい CNAME レコード セットを作成します。 この CNAME レコード セットは、例の Azure Front Door エンドポイントのエイリアスです。
example01.z01.azurefd.net
Azure Front Door Premium を構成する
次の手順では、Azure Front Door Premium を構成する方法について説明します。
Azure portal で、前に作成した Azure Front Door Premium サービスに移動します。
example-com-frontdoor
[ドメイン] ウィンドウで:
すべての DNS サーバーは Azure でホストされているので、[DNS の管理] は [Azure managed DNS]\(Azure マネージド DNS\) のままにします。
例のドメインを選びます。
apps.example.com
例の CNAME を選びます。
reservations.apps.example.com
[HTTPS] と [TLS の最小バージョン] は既定値を使います。
[追加] を選択します。
[検証の状態] が [保留中] に変わったら、[保留中] を選びます。
DNS ゾーンの所有権を認証するには、[DNS レコードの状態] で [追加] を選びます。
[閉じる] を選択します。
ドメインの [検証の状態] が [承認済み] に変わり、[エンドポイントの関連付け] が [関連付けなし] に変わるまで、[更新] を選択し続けます。
[配信元グループ] ウィンドウで:
[追加] を選択します。
[配信元グループ] に、Reservations-App などの適切な名前を付けます。
[Add an origin]\(配信元の追加\) を選びます。
ARO-Cluster-1 など、配信元の名前を入力します。
[配信元の種類] として [カスタム] を選択します。
次のように、Azure Red Hat OpenShift クラスターで公開された完全修飾ドメイン名 (FQDN) のホスト名を入力します。
reservations.apps.example.com
[プライベート リンク] サービスを有効にします。
Azure Private Link サービスから取得した [エイリアス] を入力します。
[追加] を選択して、配信元のグループの作成ウィンドウに戻ります。
[追加] を選択して、配信元のグループを追加し、Azure portal に戻ります。
Azure Private Link で承認を付与する
前に作成した Azure Private Link サービスである example-com-private-link に承認を付与するには、次の手順を実行します。
[プライベート エンドポイントの接続] タブで、[do from AFD]\(AFD から行う\) と説明されているリソースから、表示されるようになったチェック ボックスをオンにします。
[承認] を選んでから、[はい] を選んで承認を確認します。
Azure Front Door Premium の構成を完了する
次の手順では、Azure Front Door Premium の構成を完了する方法について説明します。
Azure portal で、前に作成した Azure Front Door Premium サービスに移動します。
example-com-frontdoor
[エンドポイント マネージャー] ウィンドウで、[エンドポイントの編集] を選択してエンドポイントを変更します。
[ルート] の下にある [+ 追加] を選択します。
ルートに適切な名前 (Reservations-App-Route-Config など) を付けます。
[ドメイン] の [使用可能な検証済みドメイン] で、完全修飾ドメイン名を選びます。次に例を示します。
reservations.apps.example.com
HTTPS を使用するように HTTP トラフィックをリダイレクトするには、[リダイレクト] チェックボックスをオンのままにします。
[配信元グループ] で、前に作成した配信元グループ Reservations-App を選びます。
必要に応じて、キャッシュを有効にすることができます。
[追加] を選択して、ルートを作成します。 ルートが構成されると、エンドポイント マネージャーによって、[ドメイン] および [配信元グループ] ペインに、このアプリケーション用に作成された他の要素が設定されます。
Azure Front Door はグローバル サービスなので、アプリケーションのデプロイには最大で 30 分かかることがあります。 この間に、アプリケーション用の WAF を作成できます。 アプリケーションがライブ状態になると、この例で使った URL を使用してアクセスできます。
https://reservations.apps.example.com
次のステップ
Azure portal を使って Azure Front Door に Azure Web Application Firewall を作成します。