在外部租户中设置 Azure Monitor(预览版)

适用于带灰色 X 号的白色圆圈。员工租户 带白色勾号的绿色圆圈。 外部租户(了解详细信息

Azure Monitor 是一个全面的监视解决方案,可用于收集、分析和响应来自云和本地环境的监视数据。 受监视资源的诊断设置指定要发送的数据和发送位置。 对于 Microsoft Entra,目标选项包括 Azure 存储Log AnalyticsAzure 事件中心

Azure Monitor 流示意图。

计划将外部租户日志传输到不同的监视解决方案或存储库时,请考虑外部租户日志是否包含个人数据。 当你处理此类数据时,请确保你对个人数据使用适当的安全措施。 包括使用适当的技术或组织措施防止未经授权或非法处理。

部署概述

外部租户使用 Microsoft Entra 监视。 与 Microsoft Entra 租户不同,外部租户不能有与之关联的订阅。 因此,我们需要采取额外的步骤来启用外部租户和 Log Analytics 之间的集成,我们将通过该集成来发送日志。 若要在外部租户中启用员工租户中的诊断设置,请使用 Azure Lighthouse委托资源,该资源允许外部租户(服务提供商)管理员工租户(客户)资源。

提示

Azure Lighthouse 通常用于管理多个客户的资源。 还可在具有多个自身 Microsoft Entra 租户的企业中使用 Azure Lighthouse,以简化跨租户管理。 在本例中,我们将使用它来委托单个资源组的管理。

按照本文中的步骤操作,你将在员工租户中创建名为 ExtIDMonitor 的新资源组,并获取对外部租户中包含 Log Analytics 工作区的同一资源组的访问权限。 还可以将日志从外部租户传输到 Log Analytics 工作区。

在此部署期间,你将授权外部租户目录中的某个用户或组在包含你的 Azure 订阅的租户中配置 Log Analytics 工作区实例。 若要创建授权,需要将 Azure 资源管理器模板部署到包含 Log Analytics 工作区的订阅。

下图显示了要在员工租户和外部租户中配置的组件。

资源组投影的流程图。

在此部署期间,你将配置生成日志的外部租户。 你还将配置托管 Log Analytics 工作区的外部租户。 应为使用的外部帐户(例如管理员帐户)分配外部租户的全局管理员角色。 外部帐户中的将用于运行部署的帐户必须在 Microsoft Entra 订阅中分配“所有者”角色。 另外,请务必在完成所述的每个步骤时登录到正确的目录。

总之,你将使用 Azure Lighthouse 来允许外部租户中的用户或组管理与其他租户(员工租户)关联的订阅中的资源组。 完成此授权后,可以在外部租户的“诊断”设置中,将订阅和日志分析工作区选作目标。

先决条件

  • Azure 订阅。 如果没有订阅,请在开始之前创建一个免费帐户
  • 在 Microsoft Entra 订阅中具有“所有者”角色的 Microsoft Entra 帐户。
  • 已分配“全局管理员”角色的外部租户帐户。

配置概述

若要执行本文中的配置步骤,我们建议打开两个单独的浏览器窗口或选项卡:一个用于员工租户,另一个用于外部租户。 此设置将帮助你根据需要在两个租户之间切换。

步骤 1:员工租户配置 - 创建资源组和日志工作区

创建资源组

首先,创建或选择一个资源组,其中包含将从外部租户接收数据的目标 Log Analytics 工作区。 部署 Azure 资源管理器模板时请指定资源组名称。

  1. 登录到 Azure 门户
  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的员工租户。
  3. 创建资源组或选择现有资源组。 此示例使用名为 ExtIDMonitor 的资源组。

创建 Log Analytics 工作区

Log Analytics 工作区是适用于 Azure Monitor 日志数据的唯一环境。 你将使用此 Log Analytics 工作区从外部租户收集数据,然后使用查询将其可视化。

  1. 登录到 Azure 门户
  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的员工租户。
  3. 创建 Log Analytics 工作区。 此示例在名为 ExtIDMonitor 的资源组中使用名为 ExtIDLogAnalytics 的 Log Analytics 工作区。

将 microsoft insights 添加为资源提供程序

在此步骤中,你将选择将外部租户作为服务提供商。 还要定义将相应的内置角色分配到 Microsoft Entra 租户中的组所需的授权。 查看所有资源提供程序和订阅的注册状态:

  1. 登录到 Azure 门户
  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的员工租户。
  3. 在 Azure 门户菜单上,搜索“订阅”。
  4. 选择要查看的订阅。
  5. 在左侧菜单中的“设置”下,选择“资源提供程序”。
  6. 选择 Microsoft.AzureStack 资源提供程序并选择“注册”

步骤 2:外部租户配置 - 获取外部租户 ID 并创建用于外部 ID 监视的组

获取外部租户 ID

首先,获取外部租户的租户 ID。 需要此 ID 来配置外部租户,以便将日志发送到员工租户中的 Log Analytics 工作区。

  1. 登录 Microsoft Entra 管理中心
  2. 如果你有权访问多个租户,请使用顶部菜单中的“设置”图标,通过“目录 + 订阅”菜单切换到你的外部租户
  3. 选择“租户概述”,然后选择“概述”
  4. 记录“租户 ID”。

创建用于外部 ID 监视的组

现在,请选择要向其授予对前面在包含订阅的目录中创建的资源组的权限的 组或用户。

为了简化管理,建议为每个角色使用 Microsoft Entra 用户,这使你能够向组添加或删除单个用户,而不是直接向此用户分配权限。 在本演练中,我们将添加一个安全组。

  1. 登录 Microsoft Entra 管理中心
  2. 如果你有权访问多个租户,请使用顶部菜单中的“设置”图标,通过“目录 + 订阅”菜单切换到你的外部租户
  3. 选择“组”,然后选择一个组。 如果没有现有组,请创建一个“安全”组,然后添加成员。 有关详细信息,请遵循流程使用员工租户创建基本组并添加成员
  4. 选择“概述”,并记录组的“对象 ID”。

步骤 3:员工租户配置 - 配置 Azure Lighthouse

创建 Azure 资源管理器模板

为了在 Azure Lighthouse 中创建自定义授权和委派,我们使用 Azure 资源管理器模板。 此模板授予外部租户对之前创建的 Microsoft Entra 资源组的访问权限,例如 ExtIDMonitor。 使用“部署到 Azure”按钮从 GitHub 示例部署模板,这将打开 Azure 门户,并允许直接在门户中配置和部署模板。 对于这些步骤,请确保登录到 Microsoft Entra 租户(而不是外部租户)。

  1. 登录到 Azure 门户

  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的员工租户。

  3. 使用“部署到 Azure”按钮打开 Azure 门户,并直接在门户中部署模板。 有关详细信息,请参阅创建 Azure 资源管理器模板

    部署到 Azure

  4. 在“自定义部署”页面上,输入以下信息:

    字段 定义
    订阅 选择包含 Azure 订阅的目录,其中创建了 ExtIDMonitor 资源组。
    区域 选择将部署资源的区域。
    Msp 套餐名称 描述此定义的名称。 例如 ExtIDMonitor。 这是将在 Azure Lighthouse 中显示的名称。 MSP 产品/服务名称在员工租户中必须是唯一的。 要监视多个外部租户,请使用不同的名称。
    Msp 产品/服务说明 产品/服务的简短说明。 例如,在外部租户中启用 Azure Monitor
    由租户 ID 进行托管 外部租户的租户 ID(也称为目录 ID)。
    授权 指定包含员工租户 principalIdprincipalIdDisplayName 和 Azure roleDefinitionId 的 JSON 对象的数组。 principalId 是有权访问此 Azure 订阅中的资源的组或用户的对象 ID。 对于本演练,请指定前面在外部租户中记下的组对象 ID。 对于 roleDefinitionId,请使用“参与者”角色 b24988ac-6180-42a0-ab88-20f7382dd24c内置角色值。
    资源组名称 前面在员工租户中创建的资源组的名称。 例如 ExtIDMonitor

    下面的示例演示一个具有一个安全组的授权数组。

    [
      {
        "principalId": "<Replace with group's OBJECT ID>",
        "principalIdDisplayName": "external tenant administrators",
        "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
      }
    ]
    

部署模板后,可能需要花费几分钟时间(通常不超过五分钟)来完成资源投影。 可以验证员工租户中的部署并获取资源投影的详细信息。 有关详细信息,请参阅查看和管理服务提供商

步骤 4:外部租户配置 - 选择订阅

部署模板并等待几分钟让资源投影完成之后,请通过以下步骤将订阅与外部租户关联。

注意

在“门户设置 | 目录 + 订阅”页,确保在“当前 + 委派的目录”下选择了外部租户和员工租户。

选择订阅

  1. Azure 门户中注销,然后使用你的外部租户管理帐户重新登录。 此帐户必须是之前指定的安全组的成员。 注销并重新登录可以在下一步中刷新你的会话凭据。
  2. 在门户工具栏中选择“设置”图标。
  3. 在“门户设置 | 目录 + 订阅”页面的“目录名称”列表中,找到包含 Azure 订阅和你创建的 ExtIDMonitor 资源组的员工租户目录,然后选择“切换”
  4. 验证你选择了正确的目录,并且你的 Azure 订阅已在默认订阅筛选器中列出并选中。

默认订阅筛选器的屏幕截图。

配置诊断设置

诊断设置定义要将资源的日志和指标发送到的位置。 可能的目标为:

在此示例中,我们使用 Log Analytics 工作区来创建仪表板。 按照以下步骤为外部租户活动日志配置监视设置

  1. 登录 Microsoft Entra 管理中心

  2. 如果你有权访问多个租户,请使用顶部菜单中的“设置”图标,通过“目录 + 订阅”菜单切换到你的外部租户。 此帐户必须是之前指定的安全组的成员。

  3. 浏览到“标识”>“监视和运行状况”,再浏览到“诊断设置”。

  4. 如果有用于此资源的现有设置,则会看到已配置的设置列表。 如果要添加新设置,请选择“添加诊断”设置;如果要编辑现有设置,请选择“编辑”设置。 每个设置最多只能包含一个目标类型。

    诊断设置的屏幕截图。

  5. 为设置指定名称(如果未指定)。

  6. 选择“AuditLogs”和“SignInLogs” 。

  7. 选择“发送到 Log Analytics 工作区”,然后:

    1. 在“订阅”下,选择自己的订阅
    2. “Log Analytics 工作区”下,选择之前创建的工作区名称,例如 ExtIDLogAnalytics
  8. 选择“保存”。

注意

事件发出后,最多可能需要 15 分钟它才会在 Log Analytics 工作区中显示。 等待时,执行某些操作生成日志可能很有帮助。 例如,可以按照入门指南创建一些配置并注册用户。

步骤 5:员工租户配置 - 可视化数据

现在,你可以配置 Log Analytics 工作区以可视化数据并设置警报。 可以在工作区和外部租户中进行这些配置。

创建查询

日志查询可帮助你充分利用在 Azure Monitor 日志中收集的数据的价值。 使用功能强大的查询语言,只需编写极少量的代码即可联接多个表中的数据、聚合大型数据集,以及执行复杂的操作。 只要收集了支持数据,并且你了解如何构造适当的查询,就几乎能够解答任何问题和执行分析。 有关详细信息,请参阅 Azure Monitor 日志查询入门

  1. 登录到 Azure 门户

  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的员工租户。

  3. 从“Log Analytics 工作区”窗口中,选择“日志”

  4. 在查询编辑器中,粘贴以下 Kusto 查询语言查询。 此查询显示过去 x 天内按操作列出的策略使用情况。 默认持续时间设置为 90 天 (90d)。 请注意,查询只关注由策略发出令牌/代码的操作。

    AuditLogs
    | where TimeGenerated  > ago(90d)
    | where OperationName contains "issue"
    | extend  UserId=extractjson("$.[0].id",tostring(TargetResources))
    | extend Policy=extractjson("$.[1].value",tostring(AdditionalDetails))
    | summarize SignInCount = count() by Policy, OperationName
    | order by SignInCount desc  nulls last
    
  5. 选择“运行”。 查询结果显示在屏幕底部。

  6. 要保存查询以供以后使用,请选择“保存”。

Log Analytics 日志编辑器的屏幕截图。

  1. 填写以下详细信息:

    • 名称 - 输入查询的名称。
    • 另存为 - 选择 query
    • 类别 - 选择 Log
  2. 选择“保存”。

还可以通过使用 render 运算符更改查询,以实现数据可视化。

AuditLogs
| where TimeGenerated  > ago(90d)
| where OperationName contains "issue"
| extend  UserId=extractjson("$.[0].id",tostring(TargetResources))
| extend Policy=extractjson("$.[1].value",tostring(AdditionalDetails))
| summarize SignInCount = count() by Policy
| order by SignInCount desc  nulls last
| render  piechart

Log Analytics 日志编辑器饼图的屏幕截图。

更改数据保持期

Azure Monitor 日志用于调整和支持来自任何源的巨量数据的每日收集、索引和存储,这些源部署在企业或 Azure 中。 默认情况下,日志保留 30 天,但保留期可以延长到两年。 了解如何使用 Azure Monitor 日志管理使用情况和成本。 选择定价层后,可以更改数据保留期

禁用监视数据收集

要停止将日志收集到 Log Analytics 工作区,请删除创建的诊断设置。 如果将已收集的日志数据保留到工作区中,将会继续产生费用。 如果不再需要收集的监视数据,则可以删除 Log Analytics 工作区和为 Azure Monitor 创建的资源组。 删除 Log Analytics 工作区会删除工作区中的所有数据,并防止产生额外的数据保留费用。

删除 Log Analytics 工作区和资源组

  1. 登录到 Azure 门户
  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的员工租户。
  3. 选择包含 Log Analytics 工作区的资源组。 此示例使用名为 ExtIDMonitor 的资源组和名为 ExtIDLogAnalytics 的 Log Analytics 工作区。
  4. 删除 Log Analytics 工作区
  5. 选择“删除”按钮以删除资源组。