App Service Environment のカスタム構成設定

概要

App Service Environment は単一の顧客に分離されるため、App Service Environment にのみ適用できる特定の構成設定があります。 この記事では、App Service Environment で使用可能な、固有の各種カスタマイズについて説明します。

Note

この記事では、App Service Isolated v2 プランで使用される App Service Environment v3 の機能、利点、およびユースケースについて説明します。

App Service Environment がない場合は、App Service Environment v3 の作成方法に関するページを参照してください。

App Service Environment のカスタマイズは、新しい clusterSettings 属性の配列を使って保存できます。 この属性は、Azure Resource Manager の hostingEnvironments エンティティの "Properties" ディクショナリにあります。

次の簡略化された Resource Manager テンプレートのスニペットに、その clusterSettings 属性が示されています。

"resources": [
{
    "apiVersion": "2021-03-01",
    "type": "Microsoft.Web/hostingEnvironments",
    "name": ...,
    "location": ...,
    "properties": {
        "clusterSettings": [
            {
                "name": "nameOfCustomSetting",
                "value": "valueOfCustomSetting"
            }
        ],
        "internalLoadBalancingMode": ...,
        etc...
    }
}

Resource Manager テンプレートに clusterSettings 属性を含めて、App Service Environment を更新することができます。

Azure リソース エクスプローラーを使った App Service Environment の更新

App Service Environment は、 Azure リソース エクスプローラーを使って更新することもできます。

  1. リソース エクスプローラーで、App Service Environment のノードに移動します (subscriptions>{サブスクリプション名}>resourceGroups>{リソース グループ名}>providers>Microsoft.Web>hostingEnvironments の順に移動)。 次に、更新する App Service Environment をクリックします。
  2. 右側のペインで、上部のツールバーの [読み取り/書き込み] をクリックし、リソース エクスプローラーでの対話型の編集を許可します。
  3. 青色の [編集] ボタンをクリックし、Resource Manager テンプレートを編集可能にします。
  4. 右側のペインの一番下までスクロールします。 clusterSettings 属性は一番下にあります。ここで、値の入力または更新ができます。
  5. clusterSettings 属性に、必要な構成値の配列を入力します (またはコピーして貼り付けます)。
  6. 右側のペインの上部にある緑色の [PUT] ボタンをクリックし、App Service Environment に変更をコミットします。

ただし、変更を送信した場合、変更はすぐには反映されず、変更が完全に反映されるまでに最大 24 時間かかることがあります。 一部の設定には、特定の設定の構成の時間と影響に関する個別の詳細があります。

内部暗号化を有効にする

App Service Environment は、内部コンポーネントまたはシステム内の通信を表示できないブラック ボックス システムとして動作します。 より高いスループットを実現するために、内部コンポーネント間の暗号化は既定では有効になっていません。 監視またはアクセスの対象としてトラフィックにアクセスすることはできないため、システムの安全性は確保されています。 それにもかかわらず、データ パスを端から端まで完全に暗号化する必要があるコンプライアンス要件が存在する場合は、clusterSetting を使用して完全なデータ パスの暗号化を有効にする方法があります。

"clusterSettings": [
    {
        "name": "InternalEncryption",
        "value": "true"
    }
],

InternalEncryption を true に設定すると、App Service Environment のフロントエンドとワーカーとの間の内部ネットワーク トラフィックが暗号化され、ページ ファイルが暗号化されるほか、ワーカーのディスクも暗号化されます。 InternalEncryption clusterSetting を有効にすると、システムのパフォーマンスに影響する可能性があります。 InternalEncryption を有効にするように変更を加えると、変更が完全に反映されるまで App Service Environment が不安定な状態になります。 App Service Environment 上に存在するインスタンスの数によっては、変更の反映が完了するまで数時間かかる可能性があります。 App Service Environment の使用中は、それで InternalEncryption を有効にしないことを強くお勧めします。 アクティブに使用されている App Service Environment で InternalEncryption を有効にする必要がある場合は、操作が完了するまで、トラフィックをバックアップ環境に転送することを強くお勧めします。

TLS 1.0 と TLS 1.1 の無効化

TLS の設定をアプリごとに管理したい場合は、TLS 設定の適用に関するドキュメントに記載されたガイダンスが参考になります。

App Service Environment のすべてのアプリについて、TLS 1.0 と TLS 1.1 のインバウンド トラフィックをすべて無効にしたい場合は、次の clusterSettings エントリを設定してください。

"clusterSettings": [
    {
        "name": "DisableTls1.0",
        "value": "1"
    }
],

設定の名前は 1.0 になっていますが、これを構成すると、TLS 1.0 と TLS 1.1 の両方が無効化されます。

TLS 暗号スイートの順序変更

App Service Environment では、暗号スイートを既定値から変更できます。 既定の暗号セットは、マルチテナント サービスで使用されるものと同じセットです。 暗号スイートの変更は App Service デプロイ全体に影響します。これは、シングルテナント App Service Environment でのみ可能です。 App Service Environment には、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 と TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 の 2 つの暗号スイートが必要です。 最も強力で最小限の暗号スイートのセットを使用して App Service Environment を操作する場合は、必要な 2 つの暗号のみを使用します。 必要な暗号のみを使用するように App Service Environment を構成するには、次に示すように clusterSettings を変更します。

"clusterSettings": [
    {
        "name": "FrontEndSSLCipherSuiteOrder",
        "value": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
    }
],

警告

SChannel が認識できない間違った値を暗号スイートに設定すると、ご利用のサーバーに対するすべての TLS 通信が機能しなくなります。 この場合は、 clusterSettings から FrontEndSSLCipherSuiteOrder エントリを削除し、更新された Resource Manager テンプレートを送信して、既定の暗号スイート設定に戻す必要があります。 この機能は慎重に使用してください。

作業開始

Azure クイック スタート Resource Manager テンプレートのサイトには、 App Service Environment を作成するための基本定義を含むテンプレートが用意されています。