使用 Azure Policy 审核 Azure SignalR 服务资源的合规性

Azure Policy 是 Azure 中的一项服务,用于创建、分配和管理策略。 这些策略将在整个资源中强制实施不同的规则和效果,使这些资源符合公司标准和服务级别协议。

本文介绍适用于 Azure SignalR 服务的内置策略(预览版)。 可以使用这些策略来审核新的和现有的 SignalR 资源的合规性。

可以免费使用 Azure Policy。

内置策略定义

以下内置策略定义特定于 Azure SignalR 服务:

名称
(Azure 门户)
说明 效果 版本
(GitHub)
Azure SignalR 服务应禁用公用网络访问 若要提高 Azure SignalR 服务资源的安全性,请确保它不会公开到公共 Internet,并且只能从专用终结点访问。 如 https://docs.azure.cn/azure-signalr/howto-network-access-control 中所述禁用公共网络访问属性。 此选项禁止访问 Azure IP 范围之外的任何公共地址空间,并拒绝与 IP 或基于虚拟网络的防火墙规则匹配的所有登录。 这样会降低数据泄露风险。 Audit、Deny、Disabled 1.1.0
Azure SignalR 服务应启用诊断日志 审核是否已启用诊断日志。 这样便可以在发生安全事件或网络受到威胁时重新创建活动线索以用于调查目的 AuditIfNotExists、Disabled 1.0.0
Azure SignalR 服务应已禁用本地身份验证方法 禁用本地身份验证方法可确保 Azure SignalR 服务仅将 Azure Active Directory 标识作为身份验证方法,从而提高安全性。 Audit、Deny、Disabled 1.0.0
Azure SignalR 服务应使用支持专用链接的 SKU Azure 专用链接可让你在源或目标位置没有公共 IP 地址的情况下,也可以将虚拟网络连接到 Azure 服务,从而使你的资源免遭公共数据泄露风险。 此策略将你限制为对 Azure SignalR 服务使用支持专用链接的 SKU。 请访问 https://docs.azure.cn/azure-signalr/howto-private-endpoints,详细了解专用链接。 Audit、Deny、Disabled 1.0.0
Azure SignalR 服务应使用专用链接 通过 Azure 专用链接,在没有源位置或目标位置的公共 IP 地址的情况下,也可以将虚拟网络连接到 Azure 服务。 专用链接平台处理使用者与服务之间通过 Azure 主干网络进行的连接。 通过将专用终结点映射到 Azure SignalR 服务资源而不是整个服务,可降低数据泄露风险。 有关专用链接的详细信息,请访问:https://docs.azure.cn/azure-signalr/howto-private-endpoints Audit、Disabled 1.0.0
配置 Azure SignalR 服务以禁用本地身份验证 禁用本地身份验证方法,以便 Azure SignalR 服务仅需要 Azure Active Directory 标识进行身份验证。 修改,已禁用 1.0.0
将专用终结点配置到 Azure SignalR 服务 专用终结点可在源或目标位置没有公共 IP 地址的情况下将虚拟网络连接到 Azure 服务。 通过将专用终结点映射到 Azure Synapse 服务资源,可以降低数据泄露风险。 更多信息请访问 https://docs.azure.cn/azure-signalr/howto-private-endpoints DeployIfNotExists、Disabled 1.0.0
部署 - 为连接到 Azure SignalR 服务的专用终结点配置专用 DNS 区域 使用专用 DNS 区域来替代专用终结点的 DNS 解析。 专用 DNS 区域会链接到要解析为 Azure SignalR 服务资源的虚拟网络。 有关详细信息,请访问:https://docs.azure.cn/azure-signalr/howto-private-endpoints DeployIfNotExists、Disabled 1.0.0
修改 Azure SignalR 服务资源以禁用公用网络访问 若要提高 Azure SignalR 服务资源的安全性,请确保它不会公开到公共 Internet,并且只能从专用终结点访问。 如 https://docs.azure.cn/azure-signalr/howto-network-access-control 中所述禁用公共网络访问属性。 此选项禁止访问 Azure IP 范围之外的任何公共地址空间,并拒绝与 IP 或基于虚拟网络的防火墙规则匹配的所有登录。 这样会降低数据泄露风险。 修改,已禁用 1.1.0

分配策略定义

注意

在分配或更新某个策略后,需要花费一些时间才会将分配应用到所定义作用域中的资源。 请查看有关策略评估触发器的信息。

查看策略合规性

可以使用 Azure 门户、Azure 命令行工具或 Azure Policy SDK 来访问策略分配生成的合规性信息。 有关详细信息,请参阅获取 Azure 资源的合规性数据

有多种可能的原因会导致资源不合规。 若要确定原因或查找导致问题的变更,请参阅确定不合规情况

门户中的策略合规性:

  1. 选择“所有服务” ,然后搜索“策略”。

  2. 选择“合规性”。

  3. 将筛选器用于限制合规性状态,或用于搜索策略

    屏幕截图显示门户中的策略合规性。

  4. 选择一个策略来查看聚合合规性详细信息和事件。 然后,根据需要选择一个适用于资源合规性的特定 SignalR。

Azure CLI 中的策略合规性

也可使用 Azure CLI 来获取合规性数据。 例如,在 CLI 中使用 az policy assignment list 命令获取已应用的 Azure SignalR 服务策略的策略 ID:

az policy assignment list --query "[?contains(displayName,'SignalR')].{name:displayName, ID:id}" --output table

示例输出:

Name                                                                                   ID
-------------------------------------------------------------------------------------  --------------------------------------------------------------------------------------------------------------------------------
[Preview]: Azure SignalR Service should use private links  /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Authorization/policyAssignments/<assignmentId>

然后运行 az policy state list,以便返回特定资源组下所有资源的 JSON 格式合规性状态:

az policy state list --g <resourceGroup>

也可运行 az policy state list,以便返回特定 SignalR 资源的 JSON 格式合规性状态:

az policy state list \
 --resource /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.SignalRService/SignalR/<resourceName> \
 --namespace Microsoft.SignalRService \
 --resource-group <resourceGroup>

后续步骤