アプリケーションのイングレスからアプリへの TLS を有効にする

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象:❌ Basic ✔️ Standard ✔️ Enterprise

Note

この機能は Basic プランでは使用できません。

この記事では、Azure Spring Apps でのセキュリティで保護された通信について説明します。 またこの記事では、イングレスからアプリへの SSL/TLS を有効にして、イングレス コントローラーから HTTPS をサポートするアプリケーションへのトラフィックをセキュリティで保護する方法についても説明します。

次の図は、Azure Spring Apps でのセキュリティで保護された通信全体のサポートを示しています。

Diagram that shows the secured TLS flow in Azure Spring Apps.

Azure Spring Apps 内のセキュリティで保護された通信モデル

このセクションでは、上の概要図に示したセキュリティで保護された通信モデルについて説明します。

  1. クライアントから Azure Spring Apps 内のアプリケーションへのクライアント要求がイングレス コントローラーに到着します。 要求は HTTP または HTTPS のいずれかです。 イングレス コントローラーによって返される TLS 証明書が、Microsoft Azure TLS 発行元 CA によって発行されます。

    アプリが既存のカスタム ドメインにマップされていて、HTTPS のみとして構成されている場合、イングレス コントローラーへの要求は HTTPS のみにできます。 イングレス コントローラーによって返される TLS 証明書は、そのカスタム ドメインの SSL バインド証明書です。 カスタム ドメインのサーバー側 SSL/TLS 検証は、イングレス コントローラーで行われます。

  2. イングレス コントローラーと Azure Spring Apps 内のアプリケーション間のセキュリティで保護された通信は、イングレスからアプリへの TLS によって制御されます。 ポータルや CLI でも通信を制御できます。これについては、この記事の後半で説明します。 イングレスからアプリへの TLS が無効になっている場合、イングレス コントローラーと Azure Spring Apps 内のアプリ間の通信は HTTP になります。 イングレスからアプリへの TLS が有効になっている場合、通信は HTTPS になります。この通信は、クライアントとイングレス コントローラー間の通信には関係しません。 イングレスからアプリへの TLS によって通信が暗号化されるため、イングレス コントローラーはアプリから返された証明書を確認しません。

  3. アプリと Azure Spring Apps サービス間の通信は常に HTTPS であり、Azure Spring Apps によって処理されます。 このようなサービスには、構成サーバー、サービス レジストリ、Eureka サーバーが含まれます。

  4. アプリケーション間の通信を管理します。 また、Azure Spring Apps の機能を利用して、アプリケーションの信頼ストアに証明書を読み込むこともできます。 詳しくは、アプリケーションでの TLS/SSL 証明書の使用に関するページを参照してください。

  5. アプリケーションと外部サービス間の通信を管理します。 開発の作業量を削減するために、Azure Spring Apps を使用してパブリック証明書を管理し、それらをアプリケーションの信頼ストアに読み込むことができます。 詳しくは、アプリケーションでの TLS/SSL 証明書の使用に関するページを参照してください。

アプリケーションのイングレスからアプリへの TLS を有効にする

次のセクションでは、イングレスからアプリへの SSL/TLS を有効にして、イングレス コントローラーから HTTPS をサポートするアプリケーションへのトラフィックをセキュリティで保護する方法について説明します。

前提条件

既存のアプリでイングレスからアプリへの TLS を有効にする

アプリのイングレスからアプリへの TLS を有効または無効にするには、az spring app update --enable-ingress-to-app-tls コマンドを使用します。

az spring app update --enable-ingress-to-app-tls -n app_name -s service_name -g resource_group_name
az spring app update --enable-ingress-to-app-tls false -n app_name -s service_name -g resource_group_name

カスタム ドメインのバインド時にイングレスからアプリへの TLS を有効にする

アプリのイングレスからアプリへの TLS を有効または無効にするには、az spring app custom-domain update --enable-ingress-to-app-tls または az spring app custom-domain bind --enable-ingress-to-app-tls コマンドを使用します。

az spring app custom-domain update --enable-ingress-to-app-tls -n app_name -s service_name -g resource_group_name
az spring app custom-domain bind --enable-ingress-to-app-tls -n app_name -s service_name -g resource_group_name

Azure portal を使用してイングレスからアプリへの TLS を有効にする

Azure portal でイングレスからアプリへの TLS を有効にするには、最初にアプリを作成し、その後でこの機能を有効にします。

  1. ポータルを使って通常の方法でアプリを作成します。 ポータルでアプリに移動します。
  2. 左側のナビゲーション ペインで、[設定] グループまで下へスクロールします。
  3. [Ingress-to-app TLS] (イングレスからアプリへの TLS) を選択します。
  4. [Ingress-to-app TLS] (イングレスからアプリへの TLS)[はい] に切り替えます。

Screenshot of the Azure portal that shows the app Ingress-to-app TLS page.

イングレスからアプリへの TLS の状態を確認する

az spring app show コマンドを使用して、enableEndToEndTls の値を確認します。

az spring app show -n app_name -s service_name -g resource_group_name

次のステップ

Config Server とサービス レジストリにアクセスする