适用于 Azure 托管应用程序的 Azure 安全基线

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

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

注意

已排除不适用于 Azure 托管应用程序的控件以及建议逐字使用全局指导的控件。 若要了解 Azure 托管应用程序如何完全映射到 Azure 安全基准,请参阅完整的 Azure 托管应用程序安全基线映射文件

网络安全

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

NS-1:实现内部流量的安全性

指导:不适用;Azure 托管应用程序定义了可能具有网络组件但本身没有网络组件的 Azure 服务的部署。 有关安全信息,请单独参阅每个资源的相关文档。

责任:Microsoft

NS-6:简化网络安全规则

指导:使用 Azure 虚拟网络服务标记,在为 Azure 托管应用程序资源配置的网络安全组或 Azure 防火墙上定义网络访问控制。 创建安全规则时,可以使用服务标记代替特定的 IP 地址。 通过在规则的相应“源”或“目标”字段中指定服务标记名称(例如:AzureResourceManager),可允许或拒绝相应服务的流量。 Microsoft 会管理服务标记包含的地址前缀,并会在地址发生更改时自动更新服务标记。

责任:客户

NS-7:安全域名服务 (DNS)

指导:Microsoft 负责维护与托管应用程序服务的 DNS 相关的配置。 Azure 托管应用程序定义了可能会公开其底层 DNS 配置但不会公开其自身配置的 Azure 服务的部署。 有关安全信息,请单独参阅每个资源的相关文档。

责任:Microsoft

标识管理

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

IM-1:将 Azure Active Directory 标准化为中央标识和身份验证系统

指导:Azure 托管应用程序使用 Azure Active Directory (Azure AD) 作为默认标识和访问管理服务。 使 Azure AD 标准化,以便控制组织的标识和访问管理。

Azure 提供了以下 Azure 内置角色,用于通过 Azure AD 和 OAuth 授予对托管应用程序的访问权限:

  • 托管应用程序参与者角色:允许创建托管应用程序资源。
  • 托管应用程序操作员角色:可让你在托管应用程序资源上读取和执行操作
  • 托管应用程序读者:允许读取托管应用中的资源并请求 JIT 访问。

有关详细信息,请参阅以下资源:

责任:客户

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

指导:使用 Azure 托管的标识向托管应用程序授予权限。 建议使用 Azure 托管标识功能(而不是创建功能更强大的人工帐户来访问或执行资源),以限制管理其他凭据的需求。 还可以向 Azure 托管应用程序服务本身分配托管标识,以对支持 Active Directory (Azure AD) 身份验证的其他 Azure 服务/资源进行原生身份验证。 这对于检索机密时从 Azure 托管应用程序轻松访问 Azure Key Vault 非常有用。 使用托管标识时,该标识由 Azure 平台托管,不需要你预配或轮换任何机密。

Azure 托管应用程序支持向应用程序授予两种类型的标识:

  • 配置资源绑定了一个系统分配的标识。 如果删除配置资源,则标识将一并删除。 一个配置资源只能有一个系统分配的标识。
  • 用户分配的标识是可以分配给配置资源的独立 Azure 资源。 一个配置资源可以有多个用户分配的标识。

无法利用托管标识时,可以在 Azure 托管应用程序资源级别创建具有受限权限的服务主体。 使用证书凭据配置这些服务主体,并仅回退到客户端机密。 在这两种情况下,都可以将 Azure Key Vault 与 Azure 托管标识结合使用,以便运行时环境(例如 Azure 函数)可以从密钥保管库中检索凭据。

责任:客户

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

指导:Azure 托管应用程序使用 Azure Active Directory (Azure AD) 来提供对 Azure 资源、云应用程序和本地应用程序的标识和访问管理。 此内容包括企业标识(例如员工)以及外部标识(如合作伙伴和供应商)。 这样,单一登录 (SSO) 便可以管理和保护对本地和云中的组织数据和资源的访问。 将所有用户、应用程序和设备连接到 Azure AD,实现无缝的安全访问和更好的可见性和控制。

责任:客户

特权访问

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

PA-1:保护和限制具有较高权限的用户

指导:Azure 托管应用程序使用 Azure Active Directory (Azure AD) 进行标识和访问管理。 Azure AD 中最重要的内置角色是全局管理员和特权角色管理员,因为分配到这两种角色的用户可以委托管理员角色:

  • 全局管理员:具有此角色的用户可访问 Azure AD 中的所有管理功能,还可访问使用 Azure AD 标识的服务。
  • 特权角色管理员:具有此角色的用户可管理 Azure AD 和 Azure AD Privileged Identity Management (PIM) 中的角色分配。 此外,该角色可管理 PIM 和管理单元的各个方面。

注意:如果你使用的是分配了某些特权的自定义角色,则可能有其他关键角色需要进行管理。 此外,你可能还需要将类似的控制措施应用于关键业务资产的管理员帐户。

你可使用Azure AD Privileged Identity Management (PIM) 提供对 Azure 资源和 Azure AD 的实时 (JIT) 特权访问权限。 JIT 仅在用户需要执行特权任务时授予临时权限。 当 Azure AD 组织中存在可疑或不安全的活动时,PIM 还会生成安全警报。

责任:客户

PA-3:定期审查和协调用户访问权限

指导:定期审查用户帐户和访问权限分配,确保帐户及其访问权限级别均有效。

Azure 托管应用程序使用 Azure Active Directory (Azure AD) 帐户来定期管理其资源、审查用户帐户和访问权限分配,以确保帐户及其访问权限有效。 可使用 Azure AD 访问评审来审查组成员身份、对企业应用程序的访问权限和角色分配。 Azure AD 报告提供日志来帮助发现过时的帐户。 你还可使用 Azure AD Privileged Identity Management 来创建访问评审报表工作流以便于执行评审。

此外,Azure Privileged Identity Management 还可配置为在创建过多管理员帐户时发出警报,并识别过时或配置不正确的管理员帐户。

注意:某些 Azure 服务支持不通过 Azure AD 进行管理的本地用户和角色。 你需要单独管理这些用户。

责任:客户

PA-6:使用特权访问工作站

指导:安全的独立工作站对于确保敏感角色(如管理员、开发人员和关键服务操作员)的安全至关重要。 使用高度安全的用户工作站和/或 Azure Bastion 执行与托管应用程序相关的管理任务。 使用 Azure Active Directory (Azure AD)、Microsoft Defender 高级威胁防护 (ATP) 和/或 Microsoft Intune 来部署安全的托管用户工作站,以便执行管理任务。 可通过集中管理安全的工作站来强制实施安全配置,包括强身份验证、软件和硬件基线、受限的逻辑和网络访问。

责任:客户

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

指导:Azure 托管应用程序集成了 Azure 基于角色的访问控制 (RBAC) 来管理其资源。 使用 Azure RBAC,可通过角色分配来管理 Azure 资源访问。 可以将这些角色分配给用户、组服务主体和托管标识。 某些资源具有预定义的内置角色,可以通过工具(例如 Azure CLI、Azure PowerShell 或 Azure 门户)来清点或查询这些角色。 通过 Azure RBAC 分配给资源的特权应始终限制为角色所需的特权。 这是对 Azure Active Directory (Azure AD) Privileged Identity Management (PIM) 的实时 (JIT) 方法的补充,应定期进行审查。

如果可能,请使用内置角色来分配权限,仅在必要时创建自定义角色。

Azure 提供了以下 Azure 内置角色,用于通过 Azure AD 和 OAuth 授予对托管应用程序的访问权限:

  • 托管应用程序参与者角色:允许创建托管应用程序资源。
  • 托管应用程序操作员角色:可让你在托管应用程序资源上读取和执行操作
  • 托管应用程序读者:允许读取托管应用中的资源并请求 JIT 访问。

有关详细信息,请参阅以下资源:

责任:客户

PA-8:选择 Microsoft 支持的审批流程

指导:对 Microsoft 可能需要访问 Azure 托管应用程序数据的支持场景实施组织审批流程。 客户密码箱当前不适用于托管应用程序场景。

责任:客户

数据保护

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

DP-2:保护敏感数据

指导:若要使用自己的密钥进行加密,可以使用自己的存储帐户来存储托管应用程序配置文件。

责任:客户

DP-4:加密传输中的敏感信息

指导:Azure 托管应用程序是一项 Azure 服务,该服务利用 Azure 资源管理器管理所有服务操作。 Azure 资源管理器使用 HTTPS/TLS 保护传输中数据。

责任:Microsoft

DP-5:加密静态敏感数据

指导:定义应用程序及其资源的托管应用程序定义可以存储在你自己的存储帐户中,该帐户可以通过客户管理的加密密钥进行配置。

对于不希望将你自己的存储用于托管应用程序定义的场景,Azure 默认提供静态数据加密。

责任:共享

资产管理

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

AM-1:确保安全团队可以了解与资产相关的风险

指导:确保在 Azure 租户和订阅中向安全团队授予安全读取者权限,方便他们使用 Microsoft Defender for Cloud 监视安全风险。

根据安全团队责任划分方式的不同,监视安全风险可能是中心安全团队或本地团队的责任。 也就是说,安全见解和风险必须始终在组织内集中聚合。

安全读取者权限可以广泛应用于整个租户(根管理组),也可以限制到管理组或特定订阅。

注意:若要了解工作负载和服务,可能需要更多权限。

责任:客户

AM-2:确保安全团队有权访问资产清单和元数据

指导:将标记应用到 Azure 资源、资源组和订阅,以便有条理地将它们组织成分类。 每个标记均由名称和值对组成。 例如,可以对生产中的所有资源应用名称“Environment”和值“Production”。

在创建托管应用时提供的标记也适用于托管资源组。 应用程序的发布者可以在部署后提供自己的托管资源的其他标记。

责任:客户

AM-3:仅使用已批准的 Azure 服务

指导:Azure 托管应用程序使用 Azure Policy 支持基于 Azure 资源管理器的部署和配置强制执行。 请使用 Azure Policy 来审核和限制用户可以在你的环境中预配哪些服务。 使用 Azure Resource Graph 查询和发现订阅中的资源。 你也可以使用 Azure Monitor 来创建规则,以便在检测到未经批准的服务时触发警报。

责任:客户

日志记录和威胁检测

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

LT-2:启用 Azure 标识和访问管理的威胁检测

指导:Azure Active Directory (Azure AD) 提供以下用户日志,这些日志可在 Azure AD 报告中查看,也可与 Azure Monitor、Microsoft Sentinel 或其他 SIEM/监视工具集成,以用于更复杂的监视和分析用例:

登录 - 登录报告提供有关托管应用程序的使用情况和用户登录活动的信息。

审核日志 - 通过日志为 Azure AD 中的各种功能所做的所有更改提供可跟踪性。 审核日志的示例包括对 Azure AD 中的任何资源(例如添加或删除用户、应用、组、角色和策略)所做的更改。

风险登录 - 风险登录是指可能由非用户帐户合法拥有者进行的登录尝试。

已标记为存在风险的用户 - 风险用户是指可能已泄露的用户帐户。

Microsoft Defender for Cloud 还可针对某些可疑活动发出警报,例如,失败的身份验证尝试次数过多和使用了订阅中的已弃用帐户。 除了基本的安全卫生监视以外,Microsoft Defender for Cloud 的威胁防护模块还可从各个 Azure 计算资源(虚拟机、容器、应用服务)、数据资源(SQL 数据库和存储)和 Azure 服务层收集更深入的安全警报。 可通过此功能查看各个资源内的帐户异常情况。

责任:客户

LT-4:为 Azure 资源启用日志记录

指导:自动可用的活动日志包含针对托管应用程序资源的所有写入操作(PUT、POST、DELETE),但读取操作 (GET) 除外。 活动日志可用于在进行故障排除时查找错误,或监视组织中的用户如何对资源进行修改。

责任:客户

LT-5:集中管理和分析安全日志

指导:集中记录、存储和分析来实现关联。 对于每个日志源,请确保已分配数据所有者、访问指南、存储位置、用于处理和访问数据的工具以及数据保留要求。 确保正在将 Azure 活动日志集成到中央日志记录。 通过 Azure Monitor 引入日志,以聚合终结点设备、网络资源和其他安全系统生成的安全数据。 在 Azure Monitor 中,使用 Log Analytics 工作区来查询和执行分析,并使用 Azure 存储帐户进行长期存档存储。

另外,请启用 Microsoft Sentinel 或第三方 SIEM,并在其中加入数据。

许多组织选择将 Microsoft Sentinel 用于“热”数据(频繁使用的数据),将 Azure 存储用于“冷”数据(不太频繁使用的数据)。

责任:客户

LT-6:配置日志存储保留期

指导:确保用于存储托管应用程序资源所创建的日志的所有存储帐户或 Log Analytics 工作区都根据组织的合规性规定设置了日志保留期。 在 Azure Monitor 中,可根据组织的合规性规则设置 Log Analytics 工作区保持期。 将 Azure 存储、Data Lake 或 Log Analytics 工作区帐户用于长期存储和存档存储。

责任:客户

LT-7:使用批准的时间同步源

指导:Azure 托管应用程序定义了可能支持配置你自己的时间同步源但不支持配置其自身时间同步源的 Azure 服务的部署。 托管应用程序服务依赖于 Microsoft 时间同步源,不会向客户公开以允许其进行配置。 有关安全信息,请单独参阅每个资源的相关文档。

责任:Microsoft

安全状况和漏洞管理

有关详细信息,请参阅 Azure 安全基准:安全状况和漏洞管理

PV-1:为所有 Azure 服务建立安全配置

指导:为基础结构和 DevOps 团队定义安全护栏,使其可以轻松且安全地配置其使用的 Azure 服务。

配置 Azure Policy 以审核和强制实施与托管应用程序部署相关的资源的配置。

你可以使用 Azure 蓝图,在单个蓝图定义中自动部署和配置服务和应用程序环境,包括 Azure 资源管理器模板、Azure RBAC 分配和 Azure Policy 分配。

责任:客户

PV-2:为所有 Azure 服务维护安全配置

指导:使用 Microsoft Defender for Cloud 来监视与 Azure 托管应用程序相关的资源,并使用 Azure Policy [deny] 和 [deploy if not exist] 效果来维持安全配置。

责任:客户

PV-6:执行软件漏洞评估

指导:Azure 托管应用程序定义了 Azure 服务的部署,请单独参阅每个资源的文档以了解其安全信息。 托管应用程序服务不会公开支持漏洞评估工具的面向客户的计算资源。

Microsoft 为支持托管应用程序服务的基础平台处理漏洞和评估。

责任:Microsoft

PV-7:快速自动修正软件漏洞

指导:Azure 托管应用程序定义了 Azure 服务的部署,请单独参阅每个资源的文档以了解其安全信息。 托管应用程序服务不会公开支持漏洞评估工具的面向客户的计算资源。

Microsoft 为支持托管应用程序服务的基础平台处理漏洞和评估。

责任:Microsoft

PV-8:执行定期攻击模拟

指导:根据需要,对 Azure 资源进行渗透测试或红队活动,并确保修正所有关键安全发现。 请遵循 Microsoft 云渗透测试互动规则,确保你的渗透测试不违反 Microsoft 政策。 使用 Microsoft 红队演练策略和执行,以及针对 Microsoft 托管云基础结构、服务和应用程序执行现场渗透测试。

责任:共享

终结点安全性

有关详细信息,请参阅 Azure 安全基线:终结点安全性

ES-1:使用终结点检测和响应 (EDR)

指导:Azure 托管应用程序定义了可以与需要端点检测和响应 (EDR) 保护的虚拟机、容器或存储进行交互但自身不需要与其进行交互的 Azure 服务的部署。 有关安全信息,请单独参阅每个资源的相关文档。

Azure 托管应用程序的基础结构由 Microsoft 处理,其中包括反恶意软件和 EDR 处理。

责任:Microsoft

ES-2:使用集中管理的新式反恶意软件

指导:Azure 托管应用程序定义了可以与需要反恶意软件保护的虚拟机、容器或存储进行交互但自身不需要与其进行交互的 Azure 服务的部署。 有关安全信息,请单独参阅每个资源的相关文档。

Azure 托管应用程序的基础结构由 Microsoft 处理,其中包括反恶意软件和 EDR 处理。

责任:Microsoft

ES-3:确保反恶意软件和签名已更新

指导:Azure 托管应用程序定义了可以与需要反恶意软件保护的虚拟机、容器或存储进行交互但自身不需要与其进行交互的 Azure 服务的部署。 有关安全信息,请单独参阅每个资源的相关文档。

Azure 托管应用程序的基础结构由 Microsoft 处理,其中包括反恶意软件和 EDR 处理。

责任:Microsoft

备份和恢复

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

BR-3:验证所有备份,包括客户管理的密钥

指导:将托管应用程序定义存储在自己的存储帐户中时,请确保可以还原存储在 Azure Key Vault 中用于该帐户加密的任何关联的客户管理的密钥。

责任:客户

BR-4:减少密钥丢失风险

指导:如果你将自己的存储用于托管应用程序定义,请确保已采取措施来防止丢失用于加密定义的密钥并能恢复丢失的密钥。 在存储客户管理的密钥的 Azure Key Vault 上启用软删除和清除保护,以防止意外删除或恶意删除密钥。

责任:客户

后续步骤