应用服务环境的自定义配置设置

概述

由于应用服务环境对单个客户是隔离的,因此有一些可专门应用于应用服务环境的配置设置。 本文介绍各种可用于应用服务环境的特定自定义设置。

注意

本文介绍了应用服务环境 v3 的特性、优点和用例,它与应用服务隔离 v2 计划一起使用。

如果没有应用服务环境,请参阅如何创建应用服务环境 v3

可以在新的 clusterSettings 属性中使用数组存储应用服务环境自定义设置。 可以在 hostingEnvironments Azure 资源管理器实体的“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 模板中,以更新应用服务环境。

启用内部加密

应用服务环境作为一个黑框系统运行,你将看不到系统中的内部组件或通信。 为了实现更高的吞吐量,默认情况下,在内部组件之间不启用加密。 系统很安全,因为流量无法访问,不管你是要监视流量还是要访问流量。 如果你的合规性要求必须从端到端对数据路径进行完全加密,则可通过一种方法使用 clusterSetting 启用对完整数据路径的加密。

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

将 InternalEncryption 设置为 true 可对前端和辅助角色之间的应用服务环境中的内部网络流量进行加密,还可对页面文件和辅助角色磁盘进行加密。 启用 InternalEncryption clusterSetting 后,可能会影响系统性能。 进行更改以启用 InternalEncryption 后,应用服务环境会处于不稳定状态,直到更改传播完毕。 更改的传播可能需要几个小时才能完成,具体取决于应用服务环境中有多少实例。 强烈建议不要在 InternalEncryption 仍处于使用状态的情况下在应用服务环境上启用它。 如果需要对主动使用的应用服务环境启用 InternalEncryption,强烈建议将流量转移到备份环境,直到操作完成。

禁用 TLS 1.0 和 TLS 1.1

若要逐个应用地管理 TLS 设置,则可按实施 TLS 设置文档提供的指南进行操作。

对于应用服务环境中的所有应用,若要禁用所有入站 TLS 1.0 和 TLS 1.1 流量,可以设置以下 clusterSettings 条目:

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

设置的名称显示 1.0,但在配置以后,却禁用了 TLS 1.0 和 TLS 1.1。

更改 TLS 密码套件顺序

应用服务环境支持从默认值更改密码套件。 默认密码集与多租户应用服务中使用的密码集相同。 更改密码套件仅适用于应用服务环境(单租户产品/服务),而不是多租户产品/服务,因为更改它会影响整个应用服务部署。 应用服务环境需要两个密码套件: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。

若要将应用服务环境配置为仅使用它所需的密码,请修改 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 模板以还原回默认的密码套件设置。 请谨慎使用此功能。

入门

Azure 快速入门 Resource Manager 模板站点包含具有创建应用服务环境基本定义的模板。