适用于应用服务的安全建议
本文内容
本文包含适用于 Azure 应用服务的安全建议。 实施这些建议将有助于你履行我们的共享职责模型中描述的安全职责,并改进 Web 应用解决方案的总体安全性。 若要详细了解 Azure 采取哪些措施来履行服务提供商责任,请阅读 Azure 基础结构安全性 。
常规
建议
注释
掌握最新动态
使用最新版的受支持平台、编程语言、协议和框架。
标识和访问管理
建议
注释
禁用匿名访问
除非需要支持匿名请求,否则请禁用匿名访问。 有关 Azure 应用服务身份验证选项的详细信息,请参阅 Azure 应用服务中的身份验证和授权 。
需要身份验证
在可能情况下,请使用应用服务身份验证模块,而不是编写代码来处理身份验证和授权。 请参阅 Azure 应用服务中的身份验证和授权 。
使用经身份验证的访问权限保护后端资源
可以使用用户标识或应用程序标识向后端资源进行身份验证。 选择使用应用程序标识时,请使用托管标识 。
需要客户端证书身份验证
客户端证书身份验证只允许从那些可以使用你提供的证书进行身份验证的客户端进行连接,因此可以改进安全性。
数据保护
建议
注释
将 HTTP 重定向到 HTTPS
默认情况下,客户端可以使用 HTTP 或 HTTPS 连接到 Web 应用。 建议将 HTTP 重定向到 HTTPS,因为 HTTPS 使用 SSL/TLS 协议来提供既加密又经过身份验证的安全连接。
加密与 Azure 资源的通信
当应用连接到 Azure 资源(例如 SQL 数据库 或 Azure 存储 )时,连接一直保持在 Azure 中。 由于连接经过 Azure 中的共享网络,因此应始终加密所有通信。
需要尽可能新的 TLS 版本
从 2018 年开始,新的 Azure 应用服务应用使用 TLS 1.2。 更新版的 TLS 包含针对旧协议版本的安全改进。
使用 FTPS
应用服务支持使用 FTP 和 FTPS 来部署文件。 尽可能使用 FTPS 而不是 FTP。 如果未使用这两种协议或其中一种协议,则应将其禁用 。
保护应用程序数据
请勿将应用程序密钥(例如数据库凭据、API 令牌或私钥)存储在代码或配置文件中。 广为接受的方法是使用所选语言的标准模式将这些机密作为环境变量进行访问。 在 Azure 应用服务中,可以通过应用设置 和连接字符串 定义环境变量。 应用设置和连接字符串以加密方式存储在 Azure 中。 只有在应用启动并将应用设置注入应用的进程内存中之前,才会对应用设置进行解密。 加密密钥会定期轮换。 或者,可以将 Azure 应用服务应用与 Azure Key Vault 集成,以实现高级密钥管理。 通过使用托管标识访问 Key Vault ,应用服务应用可以安全地访问所需的机密。
保护应用程序代码
请按照步骤操作,确保应用程序代码是安全的。
静态内容
创作提供静态内容的 Web 应用程序时,请确保仅处理预期的文件/文件夹。 默认情况下,可能无法确定提供所有文件的配置/代码。 遵循应用程序运行时/框架的最佳做法,保护静态内容。
隐藏文件夹
确保 .git、bin、obj、objd 等隐藏文件夹不会意外包含在部署项目内。 请完成适当的步骤,确保部署脚本仅部署所需的文件,没有任何多余内容。
就地部署
了解本地 Git 部署中就地部署 的细微差别。 就地部署会导致在 Web 应用程序的内容根目录下创建和存储 .git 文件夹。 在某些情况下,本地 Git 部署可以自动激活就地部署,即使未显式配置就地部署(例如,如果在初始化本地 Git 存储库时 Web 应用包含以前部署的内容)也一样。 遵循应用程序运行时/框架的最佳做法,保护内容。
网络
建议
注释
使用静态 IP 限制
使用 Windows 上的 Azure 应用服务,可定义允许访问应用的 IP 地址的列表。 允许列表可包括单个 IP 地址或由子网掩码定义的 IP 地址范围。 有关详细信息,请参阅 Azure 应用服务静态 IP 限制 。
选择独立定价层
除了独立定价层,所有层都在 Azure 应用服务的共享网络基础结构上运行应用。 通过在专用的应用服务环境 中运行应用,独立层可提供完整的网络隔离。 应用服务环境在你自己的 Azure 虚拟网络 实例中运行。
在访问本地资源时使用安全连接
可使用混合连接 、虚拟网络集成 或应用服务环境 连接到本地资源。
限制向入站网络流量公开
可以通过网络安全组限制网络访问并控制公开的终结点数。
监视
建议
注释
使用 Azure Defender for Cloud 的 Azure Defender for App Service
Azure Defender for App Service 与 Azure 应用服务原生集成。 Defender for Cloud 会对应用服务计划涵盖的资源进行评估,并根据发现结果生成安全建议。 可按照这些建议 中的详细说明来强化你的应用服务资源。 Azure Defender for Cloud 还提供了威胁防护,能够检测到大量威胁,几乎涵盖 MITRE ATT&CK 战术的完整列表(从预攻击到命令和控制)。 若要获取 Azure 应用服务警报的完整列表,请参阅 Azure Defender for App Service 警报 。
后续步骤
咨询你的应用程序提供商,以确定是否还要满足其他安全要求。