API 管理的 Azure 安全基线

此安全基线将 Azure 安全基准版本 3.0 中的指南应用于API 管理。 Azure 安全基准提供有关如何在 Azure 上保护云解决方案的建议。 内容按“安全控制”分组,这些控制根据适用于 API 管理的 Azure 安全基准和相关指南进行定义。

可以使用 Microsoft Defender for Cloud 监视此安全基线及其建议。 Azure Policy定义将在 Microsoft Defender for Cloud 仪表板的“法规符合性”部分列出。

当某个功能具有相关的Azure Policy定义时,它们将列在此基线中,以帮助衡量 Azure 安全基准控件和建议的符合性。 某些建议可能需要付费的 Microsoft Defender 计划才能启用某些安全方案。

注意

不适用于API 管理的功能已被排除。 若要查看 API 管理如何完全映射到 Azure 安全基准,请参阅完整的 API 管理安全基线映射文件

安全配置文件

安全配置文件汇总了API 管理的高影响行为,这可能会导致安全注意事项增加。

服务行为属性
产品类别 Web
客户可以访问 HOST/OS 无访问权限
可将服务部署到客户的虚拟网络中 True
存储静态客户内容 False

网络安全性

有关详细信息,请参阅 Azure 安全基线: 网络安全

NS-1:建立网络分段边界

功能

虚拟网络集成

说明:服务支持部署到客户的专用虚拟网络 (VNet) 。 了解详细信息

支持 默认启用 配置责任
True False 客户

配置指南:在 Azure 虚拟网络 (VNET) 内部署 Azure API 管理,以便它可以访问网络中的后端服务。 开发人员门户和API 管理网关可配置为可从 Internet (外部) 访问,也可以仅在 Vnet 内部 (内部) 访问。

  • 外部:可以通过外部负载均衡器从公共 Internet 访问 API 管理网关和开发人员门户。 网关可以访问虚拟网络中的资源。
  • 内部:只能通过内部负载均衡器从虚拟网络内部访问 API 管理网关和开发人员门户。 网关可以访问虚拟网络中的资源。

参考将虚拟网络与 Azure API 管理配合使用

网络安全组支持

说明:服务网络流量遵循其子网上的网络安全组规则分配。 了解详细信息

支持 默认启用 配置责任
True 错误 客户

配置指南:将网络安全组 (NSG) 部署到API 管理子网,以限制或监视端口、协议、源 IP 地址或目标 IP 地址的流量。 创建 NSG 规则以限制服务的开放端口 (,例如阻止从不受信任的网络访问管理端口) 。 请注意,默认情况下,NSG 会拒绝所有入站流量,但允许来自虚拟网络和 Azure 负载均衡器的流量。

警告:在 API 管理子网上配置 NSG 时,需要打开一组端口。 如果其中的任一端口不可用,API 管理可能无法正常工作且不可访问。

注意为API 管理配置 NSG 规则

参考虚拟网络配置参考:API 管理

NS-2:使用网络控制保护云服务

功能

说明:用于筛选网络流量的服务本机 IP 筛选功能, (不会与 NSG 或Azure 防火墙) 混淆。 了解详细信息

支持 默认启用 配置责任
True 错误 客户

配置指南:在无法将API 管理实例部署到虚拟网络的实例中,应改为部署专用终结点来为这些资源建立专用访问点。

注意:若要启用专用终结点,无法使用外部或内部虚拟网络配置API 管理实例。 专用终结点连接支持仅到 API Management 实例的传入流量。

参考使用专用终结点私下连接到API 管理

禁用公用网络访问

说明:服务支持使用服务级别 IP ACL 筛选规则 (非 NSG 或Azure 防火墙) 或使用“禁用公用网络访问”切换开关禁用公用网络访问。 了解详细信息

支持 默认启用 配置责任
True 错误 客户

配置指南:使用分配给服务的子网的 NSG 上的 IP ACL 筛选规则或用于公共网络访问的切换开关禁用公用网络访问。

注意:API 管理支持部署到虚拟网络,以及使用专用终结点锁定基于网络的部署以及禁用公共网络访问。

参考禁用公用网络访问

Microsoft Defender for Cloud 监视

Azure Policy内置定义 - Microsoft.ApiManagement

名称
(Azure 门户)
说明 效果 版本
(GitHub)
API 管理服务应使用虚拟网络 Azure 虚拟网络部署提供了增强的安全性和隔离,并允许你将 API 管理服务放置在不可经 Internet 路由的网络(你控制对其的访问权限)中。 然后,可以使用各种 VPN 技术将这些网络连接到本地网络,这样就能够访问网络中的和/或本地的后端服务。 可以将开发人员门户和 API 网关配置为可以从 Internet 访问或只能在虚拟网络内访问。 Audit、Disabled 1.0.1

NS-6:部署 Web 应用程序防火墙

NS-6 的其他指南

若要保护关键 Web/HTTP API,请在内部模式下在 虚拟网络 (VNET) 中配置API 管理,并配置Azure 应用程序网关。 应用程序网关是一种 PaaS 服务。 它充当反向代理,并提供 L7 负载均衡、路由、Web 应用程序防火墙 (WAF) 和其他服务。 了解详细信息

将内部 VNET 中预配的 API 管理与应用程序网关前端相结合可实现以下方案:

  • 使用单个 API 管理资源将所有 API 公开给内部使用者和外部使用者。
  • 使用单个 API 管理资源将 API 子集公开给外部使用者。
  • 提供一种方式让客户启用和禁用通过公共 Internet 对 API 管理的访问。

身份管理

有关详细信息,请参阅 Azure 安全基准:标识管理

IM-1:使用集中式标识和身份验证系统

功能

数据平面访问所需的Azure AD 身份验证

说明:服务支持使用 Azure AD 身份验证进行数据平面访问。 了解详细信息

支持 默认启用 配置责任
True False 客户

配置指南:尽可能使用 Azure Active Directory (Azure AD) 作为API 管理的默认身份验证方法。

  • 将 Azure API 管理开发人员门户配置为使用 Azure AD 对开发人员帐户进行身份验证。
  • 通过将 OAuth 2.0 协议与 Azure AD 结合使用,配置 Azure API 管理实例,以保护 API。

参考通过 Azure Active Directory 使用 OAuth 2.0 授权保护 Azure API 管理中的 API

数据平面访问的本地身份验证方法

说明:数据平面访问支持的本地身份验证方法,例如本地用户名和密码。 了解详细信息

支持 默认启用 配置责任
True False 客户

功能说明:避免使用本地身份验证方法或帐户,应尽可能禁用这些方法。 请尽可能使用 Azure AD 进行身份验证。

配置指南:限制使用本地身份验证方法进行数据平面访问,维护API 管理用户帐户清单,并根据需要协调访问权限。 在 API 管理中,开发人员是使用 API 管理公开的 API 的使用者。 默认情况下,新创建的开发人员帐户处于“活动”状态,并且与“开发人员”组相关联。 处于“活动”状态的开发人员帐户可用于访问他们具有订阅的所有 API。

此外,Azure API 管理订阅是保护对 API 的访问的方法之一,附带一对支持轮换的生成的订阅密钥。

使用 Azure Active Directory (Azure AD) 作为默认身份验证方法来控制数据平面访问,而不是使用其他身份验证方法。

参考使用基本身份验证

IM-3:安全且自动地管理应用程序标识

功能

托管标识

说明:数据平面操作支持使用托管标识进行身份验证。 了解详细信息

支持 默认启用 配置责任
True False 客户

配置指南:使用 Azure Active Directory (Azure AD) 生成的托管服务标识,允许API 管理实例轻松安全地访问其他受 Azure AD 保护的资源,例如 Azure 密钥保管库,而不是使用服务主体。 托管标识凭据由平台完全托管、轮换和保护,避免了在源代码或配置文件中使用硬编码凭据。

参考使用托管标识进行身份验证

服务主体

说明:数据平面支持使用服务主体进行身份验证。 了解详细信息

支持 默认启用 配置责任
True False 客户

配置指南:此功能配置没有最新的 Microsoft 指南。 请查看并确定组织是否想要配置此安全功能。

IM-5:使用单一登录(SSO)进行应用程序访问

IM-5 的其他指南

可将 Azure API 管理配置为利用 Azure Active Directory (Azure AD) 作为标识提供者,以便在开发人员门户中对用户进行身份验证,从而受益于 Azure AD 提供的 SSO 功能。 配置完成后,新的开发人员门户用户可以选择按照现成的注册过程进行操作,先通过 Azure AD 进行身份验证,然后在身份验证完成后在门户上完成注册过程。

此外,还可以通过委派进一步自定义登录/注册过程。 可以通过委派使用现有网站处理开发人员的登录/注册和产品订阅事项,不需使用开发人员门户中的内置功能。 这样就可以让网站拥有用户数据,并通过自定义方式对这些步骤进行验证。

IM-7:根据条件限制资源访问

功能

数据平面的条件访问

说明:可以使用 Azure AD 条件访问策略控制数据平面访问。 了解详细信息

支持 默认启用 配置责任
False 不适用 不适用

配置指南:不支持此功能来保护此服务。

IM-8:限制凭据和机密的泄露

功能

服务凭据和机密支持 Azure 密钥保管库中的集成和存储

说明:数据平面支持对凭据和机密存储使用 Azure 密钥保管库。 了解详细信息

支持 默认启用 配置责任
True 错误 客户

配置指南:设置API 管理与 Azure 密钥保管库的集成。 确保API 管理 (命名值的机密) 存储 Azure 密钥保管库,以便安全访问和更新它们。

参考将 Azure API 管理 策略中的命名值与 密钥保管库 集成配合使用

特权访问

有关详细信息,请参阅 Azure 安全基准:特权访问

PA-1:隔离和限制高度特权/管理用户

功能

本地管理员帐户

说明:服务具有本地管理帐户的概念。 了解详细信息

支持 默认启用 配置责任
True False 客户

功能说明:避免使用本地身份验证方法或帐户,应尽可能禁用这些方法。 而是使用 Azure AD 在可能的情况下进行身份验证。

配置指南:如果常规管理操作不需要,请禁用或限制任何本地管理员帐户,以便仅紧急使用。

注意:API 管理允许创建本地用户帐户。 不要创建这些本地帐户,而是启用 Azure Active Directory (Azure AD) 身份验证,并将权限分配给这些 Azure AD 帐户。

参考如何在 Azure API 管理中管理用户帐户

PA-7:遵循 Just Enough Administration(最小特权)原则

功能

用于数据平面的 Azure RBAC

说明:Azure Role-Based 访问控制 (Azure RBAC) 可用于管理对服务的数据平面操作的访问。 了解详细信息

支持 默认启用 配置责任
True False 客户

配置指南:使用 Azure 基于角色的访问控制 (Azure RBAC) 来控制对 Azure API 管理的访问。 Azure API 管理依赖于 Azure 基于角色的访问控制来为 API 管理服务和实体(例如 API 和策略)启用精细访问管理。

参考如何在 Azure API 管理中使用Role-Based 访问控制

PA-8:确定云提供商支持的访问过程

功能

客户密码箱

说明:客户密码箱可用于 Microsoft 支持访问。 了解详细信息

支持 默认启用 配置责任
True False Shared

配置指南:在 Microsoft 需要访问数据的支持方案中,使用客户密码箱查看,然后批准或拒绝每个 Microsoft 的数据访问请求。

数据保护

有关详细信息,请参阅 Azure 安全基线: 数据保护

DP-1:对敏感数据进行发现、分类和标记

功能

敏感数据发现和分类

说明:工具 ((例如 Azure Purview 或 Azure 信息保护) )可用于服务中的数据发现和分类。 了解详细信息

支持 默认启用 配置责任
False 不适用 不适用

配置指南:不支持此功能来保护此服务。

DP-2:监视针对敏感数据的异常情况和威胁

功能

数据丢失/丢失防护

说明:服务支持 DLP 解决方案,用于监视客户内容) 中的敏感数据移动 (。 了解详细信息

支持 默认启用 配置责任
False 不适用 不适用

配置指南:不支持此功能来保护此服务。

DP-3:加密传输中的敏感数据

功能

传输加密中的数据

说明:服务支持数据平面的数据传输中加密。 了解详细信息

支持 默认启用 配置责任
True True Microsoft

配置指南:在默认部署上启用此项时,不需要其他配置。

参考在 Azure API 管理中管理协议和密码

DP-3 的其他指南

通过 Azure 资源管理器经 TLS 进行管理平面调用。 需要有效 JSON web 令牌 (JWT)。 可以使用 TLS 和受支持的身份验证机制之一(例如客户端证书或 JWT)保护数据平面调用。

DP-6:使用安全密钥管理流程

功能

Azure 密钥保管库中的密钥管理

说明:该服务支持任何客户密钥、机密或证书的 Azure 密钥保管库集成。 了解详细信息

支持 默认启用 配置责任
True False 客户

配置指南:设置API 管理与 Azure 密钥保管库的集成。 确保API 管理使用的密钥存储在 Azure 密钥保管库中,以便安全访问和更新密钥。

参考密钥保管库集成先决条件

DP-7:使用安全证书管理流程

功能

Azure 密钥保管库中的证书管理

说明:该服务支持任何客户证书的 Azure 密钥保管库集成。 了解详细信息

支持 默认启用 配置责任
True False 客户

配置指南:设置API 管理与 Azure 密钥保管库的集成。 确保API 管理 (命名值的机密) 存储 Azure 密钥保管库,以便安全访问和更新它们。

使用 Azure 密钥保管库创建和控制证书生命周期,包括创建、导入、轮换、吊销、存储和清除证书。 确保证书生成遵循定义的标准,而不使用任何不安全的属性,例如:密钥大小不足、有效期过长、加密不安全。 在 Azure 密钥保管库 和 Azure 服务中设置证书的自动轮换,如果根据定义的计划或证书过期时间支持) ,则 azure 服务 (。 如果应用程序中不支持自动轮换,请确保它们仍使用 Azure 密钥保管库 和应用程序中的手动方法轮换。

参考在 Azure API 管理中使用客户端证书身份验证保护后端服务

资产管理

有关详细信息,请参阅 Azure 安全基准:资产管理

AM-2:仅使用已获批准的服务

功能

Azure Policy 支持

说明:可以通过Azure Policy监视和强制执行服务配置。 了解详细信息

支持 默认启用 配置责任
True False 客户

配置指南:使用内置Azure Policy监视和强制执行跨API 管理资源的安全配置。 使用“Microsoft.ApiManagement”命名空间中的Azure Policy别名根据需要创建自定义Azure Policy定义。

参考Azure Policy Azure API 管理的内置策略定义

日志记录和威胁检测

有关详细信息,请参阅 Azure 安全基准:日志记录和威胁检测

LT-1:启用威胁检测功能

功能

Microsoft Defender for Service/产品/服务

说明:服务具有特定于产品/服务的 Microsoft Defender 解决方案,用于监视和警报安全问题。 了解详细信息

支持 默认启用 配置责任
False 不适用 不适用

配置指南:不支持此功能来保护此服务。

LT-4:启用用于安全调查的日志记录

功能

Azure 资源日志

说明:服务生成资源日志,可提供特定于服务的增强指标和日志记录。 客户可以配置这些资源日志并将其发送到自己的数据接收器,例如存储帐户或日志分析工作区。 了解详细信息

支持 默认启用 配置责任
True False 客户

配置指南:为API 管理启用资源日志,资源日志提供有关审核和故障排除目的非常重要的操作和错误的详细信息。 API 管理的资源日志类别包括:

  • GatewayLogs
  • WebSocketConnectionLogs

参考APIM 资源日志

备份和恢复

有关详细信息,请参阅 Azure 安全基准:备份和恢复

BR-1:确保定期执行自动备份

功能

Azure 备份

说明:服务可由Azure 备份服务备份。 了解详细信息

支持 默认启用 配置责任
False 不适用 不适用

配置指南:不支持此功能来保护此服务。

服务本机备份功能

说明:如果未使用Azure 备份) ,服务支持其自己的本机备份功能 (。 了解详细信息

支持 默认启用 配置责任
True False Shared

其他指导:利用 Azure API 管理 服务中的备份和还原功能。 利用备份功能时,Azure API 管理将备份写入客户拥有的 Azure 存储帐户。 备份和还原操作由 Azure API 管理提供,用于执行完整的系统备份和还原。

参考如何在 Azure API 管理中使用服务备份和还原实现灾难恢复

后续步骤