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