App Service Environment は単一の顧客に分離されるため、App Service Environment にのみ適用できる特定の構成設定があります。 この記事では、App Service Environment で使用可能な、固有の各種カスタマイズについて説明します。
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...
}
}
clusterSettings 属性は、Resource Manager テンプレートまたは Azure CLI を使用して App Service Environment を更新するために含めることができます。 特定の設定は、Azure portal で使用できます。
ただし、変更を送信した場合、変更はすぐには反映されず、変更が完全に反映されるまでに最大 24 時間かかることがあります。 一部の設定には、特定の設定を構成する時間と効果に関する具体的な詳細があります。
内部暗号化を有効にする
App Service Environment は、内部コンポーネントやシステム内の通信を表示できないブラック ボックス システムとして動作します。 より高いスループットを実現するために、内部コンポーネント間の暗号化は既定では有効になっていません。 監視またはアクセスの対象としてトラフィックにアクセスすることはできないため、システムの安全性は確保されています。 コンプライアンス要件があるにもかかわらず、データ パスをエンドツーエンドで完全に暗号化する必要がある場合は、clusterSetting を使用して完全なデータ パスの暗号化を有効にする方法があります。
"clusterSettings": [
{
"name": "InternalEncryption",
"value": "true"
}
],
App Service Environment の [構成] ページに移動して、Azure portal を使用して内部暗号化を有効にすることもできます。
InternalEncryption を true に設定すると、App Service Environment のフロントエンドとワーカーとの間の内部ネットワーク トラフィックが暗号化され、ページ ファイルが暗号化されるほか、ワーカーのディスクも暗号化されます。 InternalEncryption clusterSetting が有効になると、システムのパフォーマンスに影響する可能性があります。 InternalEncryption を有効にするように変更を加えると、変更が完全に反映されるまで、App Service Environment は不安定な状態になります。 App Service Environment 上に存在するインスタンスの数によっては、変更の反映が完了するまで数時間かかる可能性があります。 使用中は、App Service 環境で 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 の両方が無効化されます。
App Service Environment の [構成] ページに移動し、チェックボックスをオフにすることで、Azure portal を使用して TLS 1.0 と TLS 1.1 を無効にすることもできます。
TLS 暗号スイートの順序変更
App Service Environment では、暗号スイートを既定値から変更できます。 既定の暗号セットは、マルチテナント App Service で使用されるのと同じセットです。 暗号スイートの変更は、App Service 環境 (マルチテナント オファリングではなくシングルテナント オファリング) でのみ可能です。これは、変更が App Service デプロイ全体に影響するためです。 App Service Environment に必要な暗号スイートは 2 つあります: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 と TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256。 さらに、TLS 1.3 に必要な次の暗号スイートを含める必要があります: TLS_AES_256_GCM_SHA384 および TLS_AES_128_GCM_SHA256。
必要な暗号のみを使用するように App Service Environment を構成するには、次のサンプルに示すように clusterSettings を変更します。 一覧の先頭に TLS 1.3 暗号が含まれていることを確認します。
"clusterSettings": [
{
"name": "FrontEndSSLCipherSuiteOrder",
"value": "TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
}
],
警告
SChannel が理解できない暗号スイートに正しくない値が設定されている場合、サーバーへのすべての TLS 通信が機能しなくなる可能性があります。 このような場合は、clusterSettings から FrontEndSSLCipherSuiteOrder エントリを削除し、更新された Resource Manager テンプレートを送信して、既定の暗号スイート設定に戻す必要があります。 この機能は注意して使用してください。
FIPS モードを有効にする
この設定は、App Service Environment の Linux ベースのワークロードに適用されます。 App Service Environment で実行されている Linux ベースのワークロードを FIPS (Federal Information Processing Standards) モードで動作するように構成できます。 FIPS モードを有効にすると、暗号化操作が FIPS 140-2 標準に準拠します。
App Service Environment で FIPS モードを有効にするには、次の clusterSettings エントリを設定します。
"clusterSettings": [
{
"name": "LinuxFipsModeEnabled",
"value": "true"
}
],
LinuxFipsModeEnabled が true に設定されている場合、App Service Environment は暗号化操作に FIPS 準拠の暗号化モジュールを使用します。
概要
Azure クイック スタート Resource Manager テンプレートのサイトには、 App Service Environment を作成するための基本定義を含むテンプレートが用意されています。