Functions 的 Azure 安全基线
此安全基线将 Microsoft 云安全基准版本 1.0 中的指南应用于 Functions。 Microsoft Cloud 安全基准提供有关如何在 Azure 上保护云解决方案的建议。 内容按 Microsoft 云安全基准定义的安全控制措施和适用于 Functions 的相关指南进行分组。
可以使用 Microsoft Defender for Cloud 监视此安全基线及其建议。 Azure Policy定义将在“Microsoft Defender云门户”页的“法规符合性”部分列出。
当某个功能具有相关的Azure Policy定义时,这些定义将列在此基线中,以帮助你衡量对 Microsoft 云安全基准控制和建议的合规性。 某些建议可能需要付费Microsoft Defender计划来实现某些安全方案。
注意
不适用于 Functions 的功能已被排除。 若要查看 Functions 如何完全映射到 Microsoft 云安全基准,请参阅 完整的 Functions 安全基线映射文件。
安全配置文件
安全配置文件汇总了 Functions 的高影响行为,这可能会导致安全注意事项增加。
服务行为属性 | 值 |
---|---|
产品类别 | 计算、Web |
客户可以访问主机/OS | 无访问权限 |
可将服务部署到客户的虚拟网络中 | True |
存储客户静态内容 | True |
网络安全性
有关详细信息,请参阅 Microsoft 云安全基准:网络安全。
NS-1:建立网络分段边界
功能
虚拟网络集成
说明:服务支持部署到客户的专用虚拟网络 (VNet) 。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:将服务部署到虚拟网络中。 将专用 IP 分配给资源 ((如果适用)) ,除非有充分的理由将公共 IP 直接分配给资源。
注意:网络功能由服务公开,但需要为应用程序配置。 默认情况下,允许公用网络访问。
网络安全组支持
说明:服务网络流量遵循其子网上的网络安全组规则分配。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:使用网络安全组 (NSG) 按端口、协议、源 IP 地址或目标 IP 地址限制或监视流量。 创建 NSG 规则以限制服务的开放端口(例如阻止从不受信任的网络访问管理端口)。 请注意,默认情况下,NSG 会拒绝所有入站流量,但会允许来自虚拟网络和 Azure 负载均衡器的流量。
NS-2:使用网络控制保护云服务
功能
Azure 专用链接
说明:用于筛选网络流量的服务本机 IP 筛选功能 (不会与 NSG 或Azure 防火墙) 混淆。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:为支持专用链接功能的所有 Azure 资源部署专用终结点,为资源建立专用接入点。
禁用公用网络访问
说明:服务支持通过使用服务级别 IP ACL 筛选规则 (而不是 NSG 或 Azure 防火墙) ,或使用“禁用公用网络访问”切换开关来禁用公用网络访问。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
功能说明:可以使用专用终结点配置Azure Functions,但目前没有一个用于禁用公用网络访问的开关,而无需配置专用终结点。
配置指南:使用服务级别 IP ACL 筛选规则或切换交换机禁用公用网络访问。
身份管理
有关详细信息,请参阅 Microsoft 云安全基准:标识管理。
IM-1:使用集中式标识和身份验证系统
功能
数据平面访问所需的 Azure AD 身份验证
说明:服务支持使用 Azure AD 身份验证进行数据平面访问。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
功能说明:客户拥有的终结点可能配置为要求 Azure AD 身份验证要求。 系统提供的用于部署操作和高级开发人员工具的终结点支持 Azure AD,但默认情况下,可以使用发布凭据。 可以禁用这些发布凭据。 应用上的某些数据平面终结点可能由 Functions 主机中配置的管理密钥访问,目前无法根据 Azure AD 要求对这些终结点进行配置。
配置指南:使用 Azure Active Directory (Azure AD) 作为默认身份验证方法来控制数据平面访问。
数据平面访问的本地身份验证方法
说明:数据平面访问支持的本地身份验证方法,例如本地用户名和密码。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | True | Microsoft |
功能说明:默认情况下会创建部署凭据,但可以禁用它们。 应用程序运行时公开的某些操作可以使用管理密钥执行,而管理密钥目前无法禁用。 此密钥可以存储在 Azure 密钥保管库中,并且随时可重新生成。 避免使用本地身份验证方法或帐户,应尽可能禁用这些方法或帐户。 请尽可能改用 Azure AD 进行身份验证。
配置指南:无需其他配置,因为默认部署已启用此功能。
参考: 禁用基本身份验证
IM-3:安全且自动地管理应用程序标识
功能
托管标识
说明:数据平面操作支持使用托管标识进行身份验证。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:尽可能使用 Azure 托管标识而不是服务主体,这可以向支持 Azure Active Directory 的 Azure 服务和资源进行身份验证, (Azure AD) 身份验证。 托管标识凭据由平台完全托管、轮换和保护,避免了在源代码或配置文件中使用硬编码凭据。
参考:如何将托管标识用于App 服务和Azure Functions
服务主体
说明:数据平面支持使用服务主体进行身份验证。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:此功能配置目前没有 Microsoft 指南。 请查看并确定组织是否要配置此安全功能。
Microsoft Defender for Cloud 监视
Azure Policy 内置定义 - Microsoft.Web:
名称 (Azure 门户) |
说明 | 效果 | 版本 (GitHub) |
---|---|---|---|
应用服务应用应使用托管标识 | 使用托管标识以实现增强的身份验证安全性 | AuditIfNotExists、Disabled | 3.0.0 |
IM-7:根据条件限制资源访问
功能
数据平面的条件访问
说明:可以使用 Azure AD 条件访问策略控制数据平面访问。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
功能说明:对于应用程序未定义的数据平面终结点,需要针对 Azure 服务管理配置条件访问。
配置指南:定义 Azure Active Directory (Azure AD) 工作负载中的条件访问的适用条件和条件。 请考虑常见的用例,例如阻止或授予特定位置的访问权限、阻止有风险的登录行为或要求组织管理的设备用于特定应用程序。
IM-8:限制凭据和机密的泄露
功能
服务凭据和机密支持 Azure 密钥保管库中的集成和存储
说明:数据平面支持将 Azure 密钥保管库本机用于凭据和机密存储。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:确保机密和凭据存储在安全的位置(如 Azure 密钥保管库),而不是将它们嵌入代码或配置文件中。
参考:对App 服务和Azure Functions使用密钥保管库引用
特权访问
有关详细信息,请参阅 Microsoft 云安全基准:特权访问。
PA-1:隔离和限制高度特权/管理用户
功能
本地管理员帐户
说明:服务具有本地管理帐户的概念。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
False | 不适用 | 不适用 |
配置指南:不支持此功能来保护此服务。
PA-7:遵循 Just Enough Administration(最小特权)原则
功能
用于数据平面的 Azure RBAC
说明:Azure Role-Based 访问控制 (Azure RBAC) 可用于托管对服务的数据平面操作的访问。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
功能说明:可以利用 Azure RBAC 的唯一数据平面操作是 Kudu/SCM/部署终结点。 这些操作需要对 Microsoft.Web/sites/publish/Action
操作具有权限。 Azure RBAC 未涵盖由客户应用程序本身公开的终结点。
配置指南:使用 Azure 基于角色的访问控制 (Azure RBAC) 通过内置角色分配管理 Azure 资源访问。 可将 Azure RBAC 角色分配给用户、组、服务主体和托管标识。
PA-8:确定云提供商支持的访问流程
功能
客户密码箱
说明:客户密码箱可用于 Microsoft 支持访问。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:在 Microsoft 需要访问你的数据的支持方案中,请使用客户密码箱进行评审,然后批准或拒绝 Microsoft 的每个数据访问请求。
数据保护
有关详细信息,请参阅 Microsoft 云安全基准:数据保护。
DP-2:监视针对敏感数据的异常情况和威胁
功能
数据泄露/丢失防护
说明:服务支持 DLP 解决方案,用于监视客户内容) 中的敏感数据移动 (。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
False | 不适用 | 不适用 |
配置指南:不支持此功能来保护此服务。
DP-3:加密传输中的敏感数据
功能
传输中数据加密
说明:服务支持数据平面的传输中数据加密。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
功能说明:默认情况下创建函数应用以支持 TLS 1.2 作为最低版本,但可以通过配置设置使用较低版本配置应用。 默认情况下,传入的请求不需要 HTTPS,但也可以通过某项配置设置来设置 HTTPS,在这种情况下,任何 HTTP 请求都将自动重定向以使用 HTTPS。
配置指南:在内置传输加密功能中存在本机数据的服务中启用安全传输。 对任何 Web 应用程序和服务强制实施 HTTPS,并确保使用 TLS v1.2 或更高版本。 应禁用 SSL 3.0、TLS v1.0 等旧版本。 若要远程管理虚拟机,请使用适用于 Linux) 的 SSH (或适用于 Windows) 的 RDP/TLS (,而不是未加密的协议。
参考:在 Azure 应用服务 中添加和管理 TLS/SSL 证书
Microsoft Defender for Cloud 监视
Azure Policy 内置定义 - Microsoft.Web:
名称 (Azure 门户) |
说明 | 效果 | 版本 (GitHub) |
---|---|---|---|
只应通过 HTTPS 访问应用服务应用 | 使用 HTTPS 可确保执行服务器/服务身份验证服务,并保护传输中的数据不受网络层窃听攻击威胁。 | 审核、已禁用、拒绝 | 4.0.0 |
DP-4:默认启用静态数据加密
功能
使用平台密钥进行静态数据加密
说明:支持使用平台密钥的静态数据加密,任何客户静态内容都使用这些 Microsoft 托管密钥进行加密。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | True | Microsoft |
配置指南:无需其他配置,因为默认部署已启用此功能。
DP-5:需要时在静态数据加密中使用客户管理的密钥选项
功能
使用 CMK 进行静态数据加密
说明:服务存储的客户内容支持使用客户管理的密钥进行静态数据加密。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
功能说明:Azure Functions不直接支持此功能,但可以将应用程序配置为利用服务来代替 Functions 中任何可能的数据存储。 Azure 文件存储可以作为文件系统装载,所有应用设置(包括机密)都可能存储在 Azure 密钥保管库中,部署选项(如从包运行)可以从 Azure Blob 存储拉取内容。
配置指南:如果需要符合法规要求,请定义需要使用客户管理的密钥进行加密的用例和服务范围。 使用客户管理的密钥为这些服务启用和实施静态数据加密。
DP-6:使用安全密钥管理流程
功能
Azure 密钥保管库中的密钥管理
说明:该服务支持任何客户密钥、机密或证书的 Azure 密钥保管库集成。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:使用 Azure 密钥保管库创建和控制加密密钥的生命周期,包括密钥生成、分发和存储。 根据定义的计划或者密钥停用或泄露时轮换和撤销 Azure 密钥保管库 和服务中的密钥。 如果需要在工作负载、服务或应用程序级别使用客户管理的密钥 (CMK) ,请确保遵循密钥管理的最佳做法:使用密钥层次结构生成单独的数据加密密钥, (DEK) 密钥加密密钥 (KEK) 密钥保管库中。 确保密钥注册到 Azure 密钥保管库,并通过服务或应用程序的密钥 ID 引用。 如果需要将自己的密钥 (BYOK) 引入服务 (,例如将受 HSM 保护的密钥从本地 HSM 导入 Azure 密钥保管库) ,请按照建议的准则执行初始密钥生成和密钥传输。
参考:对App 服务和Azure Functions使用密钥保管库引用
DP-7:使用安全证书管理流程
功能
Azure 密钥保管库中的证书管理
说明:该服务支持任何客户证书的 Azure 密钥保管库集成。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:使用 Azure 密钥保管库创建和控制证书生命周期,包括证书的创建、导入、轮换、吊销、存储和清除。 确保证书生成遵循定义的标准,而不使用任何不安全的属性,例如:密钥大小不足、有效期过长、加密不安全。 在 Azure 密钥保管库 和 Azure 服务中设置证书的自动轮换,如果根据定义的计划支持) 或证书过期,则 (。 如果应用程序中不支持自动轮换,请确保它们仍使用 Azure 密钥保管库 和应用程序中的手动方法轮换。
参考:在 Azure 应用服务 中添加 TLS/SSL 证书
资产管理
有关详细信息,请参阅 Microsoft 云安全基准:资产管理。
AM-2:仅使用已获批准的服务
功能
Azure Policy 支持
说明:可以通过Azure Policy监视和强制实施服务配置。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:使用 Microsoft Defender for Cloud 配置Azure Policy以审核和强制实施 Azure 资源的配置。 使用 Azure Monitor 在资源上检测到配置偏差时创建警报。 使用Azure Policy [拒绝] 和 [如果不存在则部署] 效果跨 Azure 资源强制实施安全配置。
日志记录和威胁检测
有关详细信息,请参阅 Microsoft 云安全基准:日志记录和威胁检测。
LT-1:启用威胁检测功能
功能
适用于服务/产品的 Microsoft Defender
说明:服务具有特定于产品/服务的Microsoft Defender解决方案,用于监视安全问题并发出警报。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
功能说明:Defender for App 服务 包括Azure Functions。 如果启用此解决方案,则会包含启用范围下的函数应用。
配置指南:使用 Azure Active Directory (Azure AD) 作为默认身份验证方法来控制管理平面访问。 从密钥保管库Microsoft Defender收到警报时,请调查并响应警报。
LT-4:启用日志记录以进行安全调查
功能
Azure 资源日志
说明:服务生成可提供增强的服务特定指标和日志记录的资源日志。 客户可以配置这些资源日志,并将其发送到自己的数据接收器,例如存储帐户或日志分析工作区。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
配置指南:为服务启用资源日志。 例如,密钥保管库支持从密钥保管库获取机密的操作的其他资源日志,或者Azure SQL具有跟踪数据库请求的资源日志。 资源日志的内容因 Azure 服务和资源类型而异。
参考:使用 Azure Monitor 日志监视Azure Functions
备份和恢复
有关详细信息,请参阅 Microsoft 云安全基准:备份和恢复。
BR-1:确保定期执行自动备份
功能
Azure 备份
说明:服务可由Azure 备份服务备份。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
False | 不适用 | 不适用 |
功能说明:如果托管在标准、高级或独立App 服务计划上,则可用于备份应用程序的功能。 此功能不利用Azure 备份,不包括事件源或外部链接的存储。 有关更多详细信息,请参阅 /azure/app-service/manage-backup。
配置指南:不支持此功能来保护此服务。
服务本机备份功能
说明:如果不使用 Azure 备份) ,服务 (支持自己的本机备份功能。 了解详细信息。
支持 | 默认启用 | 配置责任 |
---|---|---|
True | False | 客户 |
功能说明:备份功能可用于在标准、高级和独立App 服务计划上运行的应用。 这不包括备份事件源或外部提供的存储。
配置指南:此功能配置目前没有 Microsoft 指南。 请查看并确定组织是否要配置此安全功能。
后续步骤
- 请参阅 Microsoft 云安全基准概述
- 详细了解 Azure 安全基线