アプリケーションのイングレスからアプリへの TLS を有効にする
Note
Basic、Standard、Enterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象:❌ Basic ✔️ Standard ✔️ Enterprise
Note
この機能は Basic プランでは使用できません。
この記事では、Azure Spring Apps でのセキュリティで保護された通信について説明します。 またこの記事では、イングレスからアプリへの SSL/TLS を有効にして、イングレス コントローラーから HTTPS をサポートするアプリケーションへのトラフィックをセキュリティで保護する方法についても説明します。
次の図は、Azure Spring Apps でのセキュリティで保護された通信全体のサポートを示しています。
Azure Spring Apps 内のセキュリティで保護された通信モデル
このセクションでは、上の概要図に示したセキュリティで保護された通信モデルについて説明します。
クライアントから Azure Spring Apps 内のアプリケーションへのクライアント要求がイングレス コントローラーに到着します。 要求は HTTP または HTTPS のいずれかです。 イングレス コントローラーによって返される TLS 証明書が、Microsoft Azure TLS 発行元 CA によって発行されます。
アプリが既存のカスタム ドメインにマップされていて、HTTPS のみとして構成されている場合、イングレス コントローラーへの要求は HTTPS のみにできます。 イングレス コントローラーによって返される TLS 証明書は、そのカスタム ドメインの SSL バインド証明書です。 カスタム ドメインのサーバー側 SSL/TLS 検証は、イングレス コントローラーで行われます。
イングレス コントローラーと Azure Spring Apps 内のアプリケーション間のセキュリティで保護された通信は、イングレスからアプリへの TLS によって制御されます。 ポータルや CLI でも通信を制御できます。これについては、この記事の後半で説明します。 イングレスからアプリへの TLS が無効になっている場合、イングレス コントローラーと Azure Spring Apps 内のアプリ間の通信は HTTP になります。 イングレスからアプリへの TLS が有効になっている場合、通信は HTTPS になります。この通信は、クライアントとイングレス コントローラー間の通信には関係しません。 イングレスからアプリへの TLS によって通信が暗号化されるため、イングレス コントローラーはアプリから返された証明書を確認しません。
アプリと Azure Spring Apps サービス間の通信は常に HTTPS であり、Azure Spring Apps によって処理されます。 このようなサービスには、構成サーバー、サービス レジストリ、Eureka サーバーが含まれます。
アプリケーション間の通信を管理します。 また、Azure Spring Apps の機能を利用して、アプリケーションの信頼ストアに証明書を読み込むこともできます。 詳しくは、アプリケーションでの TLS/SSL 証明書の使用に関するページを参照してください。
アプリケーションと外部サービス間の通信を管理します。 開発の作業量を削減するために、Azure Spring Apps を使用してパブリック証明書を管理し、それらをアプリケーションの信頼ストアに読み込むことができます。 詳しくは、アプリケーションでの TLS/SSL 証明書の使用に関するページを参照してください。
アプリケーションのイングレスからアプリへの TLS を有効にする
次のセクションでは、イングレスからアプリへの SSL/TLS を有効にして、イングレス コントローラーから HTTPS をサポートするアプリケーションへのトラフィックをセキュリティで保護する方法について説明します。
前提条件
- デプロイ済みの Azure Spring Apps インスタンス。 Azure CLI を使用したデプロイに関するクイックスタートに従って作業を開始してください。
- イングレスからアプリへの TLS についてよく理解していない場合は、エンドツーエンド TLS のサンプルに関するページを参照してください。
- 必要な証明書を安全に Spring Boot アプリに読み込むには、spring-cloud-azure-starter-keyvault-certificates を使います。
既存のアプリでイングレスからアプリへの 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 を有効にするには、最初にアプリを作成し、その後でこの機能を有効にします。
- ポータルを使って通常の方法でアプリを作成します。 ポータルでアプリに移動します。
- 左側のナビゲーション ペインで、[設定] グループまで下へスクロールします。
- [Ingress-to-app TLS] (イングレスからアプリへの TLS) を選択します。
- [Ingress-to-app TLS] (イングレスからアプリへの TLS) を [はい] に切り替えます。
イングレスからアプリへの TLS の状態を確認する
az spring app show
コマンドを使用して、enableEndToEndTls
の値を確認します。
az spring app show -n app_name -s service_name -g resource_group_name