就 Azure API 管理安全配置提供建议
适用于 API 管理的 Azure 安全基线将 Microsoft 云安全基准版本 1.0 中的指南应用于 API 管理。 Microsoft Cloud 安全基准提供有关如何在 Azure 上保护云解决方案的建议。 内容按“安全控制”分组,这些控制根据适用于 API 管理的 Microsoft 云安全基准和相关指南定义。
可以使用 Microsoft Defender for Cloud 监视此安全基线及其建议。 Azure Policy 定义将在 Microsoft Defender for Cloud 门户页的“监管合规”部分中列出。
当某个功能具有相关的 Azure Policy 定义时,它们会在此基线中列出,以帮助你衡量是否符合 Microsoft 云安全基准控制和建议。 某些建议可能需要使用付费 Microsoft Defender 计划来启用特定的安全方案。
网络安全性
NS-1:建立网络分段边界
功能:虚拟网络集成
说明:该服务支持部署到客户的专用虚拟网络 (VNet) 中。
配置指导:将 Azure API 管理部署到 Azure 虚拟网络 (VNET) 中,以便它可以访问该网络中的后端服务。 可以将开发人员门户和 API 管理网关配置为可以从 Internet(外部)访问或只能在 Vnet(内部)内访问。
- 外部:可以通过外部负载均衡器从公共 Internet 访问 API 管理网关和开发人员门户。 网关可以访问虚拟网络中的资源。
- 外部虚拟网络配置
- 内部:只能通过内部负载均衡器从虚拟网络内部访问 API 管理网关和开发人员门户。 网关可以访问虚拟网络中的资源。
- 内部虚拟网络配置
功能:网络安全组支持
说明:服务网络流量遵循其子网上的网络安全组规则分配。
配置指导:将网络安全组 (NSG) 部署到 API 管理子网,以按端口、协议、源 IP 地址或目标 IP 地址限制或监视流量。 创建 NSG 规则以限制服务的开放端口(例如阻止从不受信任的网络访问管理端口)。 请注意,默认情况下,NSG 会拒绝所有入站流量,但会允许来自虚拟网络和 Azure 负载均衡器的流量。
注意
在 API 管理子网上配置 NSG 时,需要打开一组端口。 如果其中的任一端口不可用,API 管理可能无法正常工作且不可访问。
NS-2:通过网络控制保护云服务
功能:Azure 专用链接
说明:用于筛选网络流量的服务原生 IP 筛选功能(不要与 NSG 或 Azure 防火墙混淆)。
配置指导:在无法将 API 管理实例部署到虚拟网络的情况下,应改为部署专用终结点,以便为这些资源建立专用接入点。
注意
若要启用专用终结点,API Management 实例不能是通过外部或内部虚拟网络来配置的。 专用终结点连接支持仅到 API Management 实例的传入流量。
功能:禁用公用网络访问
说明:该服务支持通过使用服务级别 IP ACL 筛选规则(而不是 NSG 或 Azure 防火墙)或使用“禁用公用网络访问”切换开关禁用公用网络访问。
配置指导:使用分配给服务子网的 NSG 上的 IP ACL 筛选规则或用于公用网络访问的切换开关来禁用公用网络访问。
注意
API 管理支持部署到虚拟网络,以及使用专用终结点锁定非基于网络的部署,以及禁用公用网络访问。
功能:Microsoft Defender for Cloud 监视
Azure Policy 内置定义 - Microsoft.ApiManagement:
名称 (Azure 门户) |
描述 | 效果 | 版本 (GitHub) |
---|---|---|---|
API 管理服务应使用虚拟网络 | Azure 虚拟网络部署提供了增强的安全性和隔离,并允许你将 API 管理服务放置在不可经 Internet 路由的网络(你控制对其的访问权限)中。 然后,可以使用各种 VPN 技术将这些网络连接到本地网络,这样就能够访问网络中的和/或本地的后端服务。 可以将开发人员门户和 API 网关配置为可以从 Internet 访问或只能在虚拟网络内访问。 | Audit、Deny、Disabled | 1.0.2 |
API 管理应禁用对服务配置终结点的公用网络访问 | 要提高 API 管理服务的安全性,请限制与服务配置终结点的连接,例如直接访问管理 API、Git 配置管理终结点,或自承载网关配置终结点。 | AuditIfNotExists、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 管理的访问。
身份管理
IM-1:使用集中式标识和身份验证系统
功能:数据平面访问所需的 Azure AD 身份验证
说明:该服务支持将 Azure AD 身份验证用于数据平面访问。
配置指导:尽可能使用 Azure Active Directory (Azure AD) 作为 API 管理的默认身份验证方法。
- 配置 Azure API 管理开发人员门户,使其通过 Azure AD 对开发人员帐户进行身份验证。
- 配置 Azure API 管理实例,使其结合使用 Azure AD 和 OAuth 2.0 协议来保护 API。
功能:数据平面访问的本地身份验证方法
说明:数据平面访问支持的本地身份验证方法,例如本地用户名和密码。
功能说明:请避免使用本地身份验证方法或帐户,应尽可能禁用这些方法。 请尽可能改用 Azure AD 进行身份验证。
配置指导:禁止为数据平面访问使用本地身份验证方法,维护 API 管理用户帐户的清单,并根据需要协调访问。 在 API 管理中,开发人员是使用 API 管理公开的 API 的使用者。 默认情况下,新创建的开发人员帐户处于“活动” 状态,并且与“开发人员” 组相关联。 处于“活动” 状态的开发人员帐户可用于访问他们具有订阅的所有 API。
另外,Azure API 管理订阅可以保护对 API 的访问,并提供了支持轮换的一对生成的订阅密钥。
不要使用其他身份验证方法,请尽可能使用 Azure Active Directory (Azure AD) 作为默认身份验证方法来控制数据平面访问。
IM-3:安全且自动地管理应用程序标识
功能:托管标识
说明:数据平面操作支持使用托管标识进行身份验证。
配置指导:使用 Azure Active Directory (Azure AD) 生成的托管服务标识(而不是使用服务主体),使 API 管理实例能够轻松、安全地访问其他受 Azure AD 保护的资源(如 Azure 密钥保管库)。 托管标识凭据由平台完全托管、轮换和保护,避免了在源代码或配置文件中使用硬编码凭据。
功能:服务主体
说明:数据平面支持使用服务主体进行身份验证。
配置指导:Microsoft 目前未提供用于此功能配置的指导。 请检查并确定你的组织是否要配置此安全功能。
IM-5:使用单一登录 (SSO) 进行应用程序访问
针对 IM-5 的其他指导:为了从 Azure AD 提供的 SSO 功能中获益,可以将 Azure API 管理配置为使用 Azure Active Directory (Azure AD) 作为标识提供者来对开发人员门户中的用户进行身份验证。 配置完成后,新的开发人员门户用户可以选择遵循开箱即用的注册过程,即先通过 Azure AD 进行身份验证,身份验证完成后再在门户中完成注册过程。
或者,可以通过委派进一步自定义登录/注册过程。 可以通过委派使用现有网站处理开发人员的登录/注册和产品订阅事项,不需使用开发人员门户中的内置功能。 这样就可以让网站拥有用户数据,并通过自定义方式对这些步骤进行验证。
IM-7:根据条件限制资源访问
功能:数据平面的条件访问
说明:可以使用 Azure AD 条件访问策略控制数据平面访问。
配置指导:不支持使用此功能来保护此服务。
IM-8:限制凭据和机密的泄露
功能:服务凭据和机密支持 Azure 密钥保管库中的集成和存储
说明:数据平面本身支持使用 Azure 密钥保管库来存储凭据和机密。
配置指导:请设置 API 管理与 Azure 密钥保管库的集成。 确保 API 管理的机密(命名值)存储在 Azure Key Vault 中,以便可以安全地访问和更新。
特权访问
PA-1:隔离和限制高特权/管理用户
功能:本地管理员帐户
说明:该服务具有本地管理员帐户的概念。
功能说明:请避免使用本地身份验证方法或帐户,应尽可能禁用这些方法。 请尽可能改用 Azure AD 进行身份验证。
配置指导:如果日常管理操作不需要,请禁用任何本地管理员帐户或将这些帐户限制为仅供紧急情况下使用。
注意
API 管理允许创建本地用户帐户。 不要创建这些本地帐户,而应当仅启用 Azure Active Directory (Azure AD) 身份验证,并向这些 Azure AD 帐户分配权限。
PA-7:遵循 Just Enough Administration(最小特权原则)
功能:用于数据平面的 Azure RBAC
说明:可以使用 Azure 基于角色的访问控制 (Azure RBAC) 来管理对服务的数据平面操作的访问。
配置指导:使用 Azure 基于角色的访问控制 (Azure RBAC) 来控制对 Azure API 管理的访问。 Azure API 管理依赖于 Azure 基于角色的访问控制来为 API 管理服务和实体(例如,API 和策略)启用精细访问管理。
PA-8:确定云提供商支持的访问流程
功能:客户密码箱
说明:可以将客户密码箱用于 Microsoft 支持访问。
配置指导:在 Microsoft 需要访问数据的支持方案中,使用客户密码箱来审查和批准/拒绝 Microsoft 的每个数据访问请求。
数据保护
DP-1:发现、分类和标记敏感数据
功能:敏感数据发现和分类
说明:可以在该服务中使用工具(例如 Azure Purview 或 Azure 信息保护)进行数据发现和分类。
配置指导:不支持使用此功能来保护此服务。
DP-2:监视针对敏感数据的异常情况和威胁
功能:防止数据泄露/丢失
说明:服务支持使用 DLP 解决方案来监视敏感数据移动(在客户的内容中)。
配置指导:不支持使用此功能来保护此服务。
DP-3:加密传输中的敏感数据
功能:传输中数据加密
说明:该服务支持数据平面的传输中数据加密。
配置指导:无需进行额外的配置,因为默认部署上已启用此设置。
有关 DP-3 的其他指导:管理平面调用通过 Azure 资源管理器基于 TLS 进行。 需要有效 JSON web 令牌 (JWT)。 可以使用 TLS 和受支持的身份验证机制之一(例如客户端证书或 JWT)保护数据平面调用。
DP-6:使用安全密钥管理流程
功能:Azure 密钥保管库中的密钥管理
说明:该服务支持为任何客户密钥、机密或证书进行 Azure 密钥保管库集成。
配置指导:请设置 API 管理与 Azure 密钥保管库的集成。 确保 API 管理使用的密钥存储在 Azure Key Vault 中,以便可以安全地访问和更新。
DP-7:使用安全证书管理流程
功能:Azure 密钥保管库中的证书管理
说明:该服务支持为任何客户证书进行 Azure 密钥保管库集成。
配置指导:请设置 API 管理与 Azure 密钥保管库的集成。 确保 API 管理的机密(命名值)存储在 Azure Key Vault 中,以便可以安全地访问和更新。
使用 Azure 密钥保管库创建和控制证书生命周期,包括证书的创建、导入、轮换、吊销、存储和清除。 请确保证书生成遵循所定义的标准,不使用任何不安全的属性,例如:不足的密钥大小、过长的有效期、不安全的加密。 将 Azure 密钥保管库和 Azure 服务中的证书设置为根据所定义的计划或根据证书过期时间自动轮换(如果支持)。 如果应用程序不支持自动轮换,请确保它们在 Azure 密钥保管库和应用程序中仍使用手动方法进行轮换。
资产管理
AM-2:仅使用已获批准的服务
功能:Azure Policy 支持
说明:可以通过 Azure Policy 监视和强制实施服务配置。
配置指导:使用内置 Azure Policy 监视和强制实施跨 API 管理资源的安全配置。 根据需要使用“Microsoft.ApiManagement”命名空间中的 Azure Policy 别名创建自定义 Azure Policy 定义。
日志记录和威胁检测
LT-1:启用威胁检测功能
功能:适用于服务/产品的 Microsoft Defender
说明:服务具有特定于产品/服务的 Microsoft Defender 解决方案,用于监视和提醒安全问题。
配置指导:不支持使用此功能来保护此服务。
LT-4:启用日志记录以进行安全调查
功能:Azure 资源日志
说明:服务生成可提供增强的服务特定指标和日志记录的资源日志。 客户可以配置这些资源日志并将其发送到其自己的数据接收器,例如,某个存储帐户或日志分析工作区。
配置指导:为 API 管理启用资源日志,资源日志提供了有关对审核和故障排除至关重要的操作和错误的丰富信息。 API 管理的资源日志类别包括:
- GatewayLogs
- WebSocketConnectionLogs
备份和恢复
BR-1:确保定期执行自动备份
功能:Azure 备份
说明:该服务可由 Azure 备份服务进行备份。
配置指导:不支持使用此功能来保护此服务。
功能:服务原生备份功能
说明:该服务支持其自己的原生备份功能(如果未使用 Azure 备份)。
其他指导:利用 Azure API 管理服务中的备份和还原功能。 当利用备份功能时,Azure API 管理将备份写入客户拥有的 Azure 存储帐户。 Azure API 管理提供的备份和还原操作可以执行完整的系统备份和还原。