收集 Microsoft Azure 活动日志和 Entra ID 日志
本文档介绍了如何通过设置 Google Security Operations Feed 来收集 Microsoft Azure 活动和 Entra ID 日志。您可以使用以下两种方法配置数据注入:
- 方法 1:Microsoft Azure 事件中心(推荐):Azure 诊断设置将活动和 Entra ID 日志流式传输到 Azure 事件中心命名空间,Google SecOps 从该命名空间近乎实时地注入这些日志。这是首选方法。
- 方法 2:Microsoft Azure Blob Storage V2:Azure 诊断设置会将日志归档到 Azure 存储账号,而 Google SecOps 会按计划轮询 Blob 容器。
Azure 活动日志可让您深入了解对 Azure 资源执行的订阅级操作,例如创建存储账号、删除事件中心或修改虚拟机。Microsoft Entra ID(以前称为 Azure Active Directory)日志可捕获身份和访问管理事件,包括用户登录、审核日志、预配活动和安全风险检测。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- 对 Microsoft Azure 门户的特权访问权限,包括:
- 创建事件中心命名空间(方法 1)或存储账号(方法 2)
- 为 Azure Monitor 和 Entra ID 配置诊断设置
- 管理事件中心访问权限政策(方法 1)或存储访问密钥(方法 2)
- Entra ID 中的“安全管理员”角色或更高级别的角色(适用于 Entra ID 诊断设置)
方法 1:Microsoft Azure 事件中心(推荐)
使用此方法,Azure 诊断设置会将 Azure 活动和 Entra ID 日志流式传输到 Azure 事件中心命名空间,而 Google SecOps 会近乎实时地直接从事件中心提取这些日志。
每个 Google SecOps Feed 都将一个事件中心映射到一个日志类型。为每个 Google SecOps 日志类型创建一个事件中心,并将匹配的 Azure 日志类别路由到该事件中心:
| 事件中心 | Azure 日志类别 | Google SecOps 日志类型 |
|---|---|---|
azure-activity |
Azure 活动日志 | Azure 活动 |
entra-id |
SignInLogs、NonInteractiveUserSignInLogs、ServicePrincipalSignInLogs、ManagedIdentitySignInLogs、ProvisioningLogs、RiskyUsers、UserRiskEvents | Azure AD |
entra-id-audit |
AuditLogs | Azure AD 审核 |
entra-id-graph |
MicrosoftGraphActivityLogs | Microsoft Graph 活动日志 |
创建事件中心命名空间
事件中心命名空间是一个管理容器,用于容纳一个或多个事件中心。
- 在 Azure 门户中,搜索事件中心。
- 点击 + 创建。
提供以下配置详细信息:
设置 值 订阅 选择您的 Azure 订阅 资源组 选择现有组或创建新组 命名空间名称 输入唯一名称(例如 secops-azure-logs)位置 选择与 Google SecOps 实例相同的区域(部署在其他区域会降低提取吞吐量) 价格层级 标准版或更高级别(基本版每个命名空间仅支持一个事件中心) 吞吐量单位 从 1 开始,并启用自动充气 点击审核 + 创建,然后点击创建。
等待部署完成。
创建事件中心
为上表中列出的每种 Google SecOps 日志类型创建一个事件中心。
- 部署命名空间后,前往事件中心命名空间。
- 在左侧导航栏中,选择实体下的事件中心。
点击 + 事件中心,然后使用以下设置创建事件中心:
设置 值 名称 azure-activity分区数 40(建议值,可实现最佳 Google SecOps 伸缩;在标准层级和基本层级中,创建后无法更改) 消息保留 至少 7 天(设置尽可能长的保留期限,以便在配额限制结束后,日志不会在提取恢复之前被删除) 拍摄 已停用(直接提取 Event Hub 时不需要) 点击审核 + 创建,然后点击创建。
重复此步骤,创建
entra-id、entra-id-audit和entra-id-graph事件中心。
获取 Event Hub 连接字符串
Google SecOps 需要连接字符串才能向事件中心进行身份验证。请使用命名空间级连接字符串,以便一个凭据可用于您创建的所有事件中心。
- 前往事件中心命名空间。
- 在左侧导航栏中,选择设置下的共享访问权限政策。
- 点击 RootManageSharedAccessKey 政策,或点击 + 添加以创建具有 Listen 权限的专用政策。
- 复制连接字符串 - 主密钥。
请妥善保存此连接字符串。
配置 Azure 活动日志诊断设置(事件中心)
如需将 Azure 活动日志流式传输到 azure-activity 事件中心,请执行以下操作:
- 在 Azure 门户中,搜索监控。
- 点击左侧导航栏中的活动日志。
- 点击窗口顶部的导出活动日志。
- 点击添加诊断设置。
- 提供以下配置详细信息:
- 诊断设置名称:输入一个描述性名称(例如
activity-logs-to-eventhub)。 - 在日志部分,选择以下类别:
- 行政区
- 安全性
- Service Health
- 提醒
- 建议
- 政策
- 自动扩缩
- 资源健康状况
- 在目标详细信息部分中,选中流式传输到事件中心复选框。
- 订阅:选择包含 Event Hub 命名空间的订阅。
- 事件中心命名空间:选择您之前创建的命名空间(例如
secops-azure-logs)。 - Event Hub 名称:选择
azure-activity。 - Event Hub 政策名称:选择共享访问权限政策(例如
RootManageSharedAccessKey)。
- 诊断设置名称:输入一个描述性名称(例如
- 点击保存。
配置 Entra ID 诊断设置(事件中心)
每项诊断设置都会流式传输到单个事件中心,因此请为每个 Entra ID 事件中心创建一个诊断设置,并按 Google SecOps 日志类型对类别进行分组。
- 在 Azure 门户中,搜索 Microsoft Entra ID 或 Azure Active Directory。
- 在左侧导航栏中,依次前往监控和健康状况 > 诊断设置。
点击添加诊断设置,然后逐一创建以下设置:
entra-id事件中心(日志类型为 Azure AD)的诊断设置:- 诊断设置名称:
entraid-azuread-to-eventhub - 在日志部分,选择以下类别:
- SignInLogs
- NonInteractiveUserSignInLogs
- ServicePrincipalSignInLogs
- ManagedIdentitySignInLogs
- ProvisioningLogs
- RiskyUsers
- UserRiskEvents
- 在目标详细信息部分中,选择将数据流式传输到事件中心、您的事件中心命名空间,以及具有共享访问策略的
entra-id事件中心。
entra-id-audit事件中心的诊断设置(日志类型为“Azure AD 审核”):- 诊断设置名称:
entraid-audit-to-eventhub - 在日志部分,选择 AuditLogs。
- 在目标详细信息部分中,选择将数据流式传输到事件中心、您的事件中心命名空间和
entra-id-audit事件中心。
entra-id-graphEvent Hub 的诊断设置(日志类型为“Microsoft Graph 活动日志”):- 诊断设置名称:
entraid-graph-to-eventhub - 在日志部分,选择 MicrosoftGraphActivityLogs。
- 在目标详细信息部分中,选择将数据流式传输到事件中心、您的事件中心命名空间和
entra-id-graph事件中心。
- 诊断设置名称:
配置完每项设置后,点击保存。
(可选)创建专用消费者群组
默认情况下,每个事件中心都提供一个名为 $Default 的消费者群组。对于生产环境,建议在每个事件中心上为 Google SecOps 创建专用消费者组。
- 前往事件中心(而非命名空间)。
- 在左侧导航栏中,选择消费群体。
- 点击 + 消费群体,输入名称(例如
chronicle),然后点击创建。 针对每个事件中心重复上述步骤。
在 Google SecOps (Event Hub) 中配置 Feed
为每个事件中心创建一个 Feed。所有 Feed 都使用相同的命名空间级连接字符串,仅在事件中心名称和日志类型方面有所不同:
| Feed 名称 | 事件中心名称 | Google SecOps 日志类型 |
|---|---|---|
Azure Activity Logs |
azure-activity |
Azure 活动 |
Azure AD Logs |
entra-id |
Azure AD |
Azure AD Audit Logs |
entra-id-audit |
Azure AD 审核 |
Microsoft Graph Activity Logs |
entra-id-graph |
Microsoft Graph 活动日志 |
对于表格中的每一行:
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 名称(例如
Azure Activity Logs)。 - 选择 Microsoft Azure Event Hub 作为来源类型。
- 选择相应的日志类型(例如
Azure Activity)。 - 点击下一步。
为以下输入参数指定值:
- 事件中心名称:输入表格中的事件中心名称(例如
azure-activity)。 - Event Hub Consumer Group(事件中心消费者组):输入
$Default或您创建的专用消费者组(例如chronicle)。 - 事件中心连接字符串:输入您之前捕获的命名空间级连接字符串。
- Azure Storage 连接字符串(可选):用于事件中心检查点存储的旧版字段;留空。
- Azure Storage 容器名称(可选):用于 Event Hub 检查点存储的旧版字段;留空。
- Azure SAS 令牌(可选):当您的安全政策禁止共享事件中心连接字符串时,可使用此令牌作为事件中心的替代身份验证方式;如果您已提供上述连接字符串,请将此字段留空。
- 资产命名空间:资产命名空间。
- 提取标签:要应用于相应 Feed 中事件的标签。
- 事件中心名称:输入表格中的事件中心名称(例如
点击下一步。
在最终确定界面中查看新的 Feed 配置,然后点击提交。
方法 2:Microsoft Azure Blob Storage V2
使用此方法,Azure 诊断设置会将 Azure 活动日志和 Entra ID 日志归档到 Azure 存储账号,而 Google SecOps 会按计划轮询 Blob 容器。如果不需要近乎实时的提取,或者您的环境标准化为 Blob Storage,请使用此方法。
配置 Azure 存储账号
创建存储账号
- 在 Azure 门户中,搜索存储账号。
- 点击 + 创建。
提供以下配置详细信息:
设置 值 订阅 选择您的 Azure 订阅 资源组 选择现有组或创建新组 存储账号名称 输入唯一名称(例如 secops-azure-logs)区域 选择区域(例如 East US)性能 标准(推荐) 冗余 GRS(地理位置冗余存储)或 LRS(本地冗余存储) 点击检查 + 创建。
查看账号概览,然后点击创建。
等待部署完成。
获取存储账号凭据
- 前往您刚刚创建的存储账号。
- 在左侧导航栏中,选择安全性 + 网络下的访问密钥。
- 点击显示密钥。
- 复制并保存以下内容以供日后使用:
- 存储账号名称:您的存储账号名称(例如
secops-azure-logs) - 密钥 1 或密钥 2:共享访问密钥(采用 base-64 编码的 512 位随机字符串)
- 存储账号名称:您的存储账号名称(例如
获取 Blob 服务端点
- 在同一存储账号中,从左侧导航栏中选择端点。
- 复制并保存 Blob 服务端点网址。
- 示例:
https://secops-azure-logs.blob.core.windows.net/
- 示例:
配置 Azure 活动日志诊断设置
如需将 Azure 活动日志导出到存储账号,请执行以下操作:
- 在 Azure 门户中,搜索监控。
- 点击左侧导航栏中的活动日志。
- 点击窗口顶部的导出活动日志。
- 点击添加诊断设置。
- 提供以下配置详细信息:
- 诊断设置名称:输入一个描述性名称(例如
activity-logs-to-secops)。 - 在日志部分,选择以下类别:
- 行政区
- 安全性
- Service Health
- 提醒
- 建议
- 政策
- 自动扩缩
- 资源健康状况
- 在目标详细信息部分中,选中归档到存储账号复选框。
- 订阅:选择包含您的存储空间的订阅。
- 存储账号:选择您之前创建的存储账号(例如
secops-azure-logs)。
- 诊断设置名称:输入一个描述性名称(例如
- 点击保存。
配置 Entra ID 诊断设置
如需将 Entra ID 日志导出到存储账号,请执行以下操作:
- 在 Azure 门户中,搜索 Microsoft Entra ID 或 Azure Active Directory。
- 在左侧导航栏中,依次前往监控和健康状况 > 诊断设置。
- 点击添加诊断设置。
- 提供以下配置详细信息:
- 诊断设置名称:输入一个描述性名称(例如
entraid-logs-to-secops)。 - 在日志部分,选择要导出的日志类别:
- SignInLogs:交互式用户登录
- NonInteractiveUserSignInLogs:非交互式用户登录(代表用户执行操作的服务正文、托管身份)
- ServicePrincipalSignInLogs:服务正文和应用登录
- ManagedIdentitySignInLogs:托管式身份登录
- AuditLogs:Entra ID 中所有更改(用户创建、角色分配等)的审核跟踪记录
- ProvisioningLogs:用户和群组预配事件
- RiskyUsers:Identity Protection 标记的用户
- UserRiskEvents:用户账号的风险检测
- MicrosoftGraphActivityLogs:Microsoft Graph API 活动日志
- 在目标详细信息部分中,选中归档到存储账号复选框。
- 订阅:选择包含您的存储空间的订阅。
- 存储账号:选择您之前创建的存储账号(例如
secops-azure-logs)。
- 诊断设置名称:输入一个描述性名称(例如
点击保存。
检索 Google SecOps 服务账号
Google SecOps 使用唯一的服务账号从您的 Azure Blob Storage 读取数据。您必须向此服务账号授予对您的存储账号的访问权限。
获取服务账号电子邮件地址
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 点击配置单个 Feed。
- 在Feed 名称字段中,输入一个临时名称。
- 选择 Microsoft Azure Blob Storage V2 作为来源类型。
- 选择任意日志类型(此设置后续可以更改)。
- 点击获取服务账号。
系统会显示一个唯一的服务账号电子邮件地址,例如:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com复制此电子邮件地址。您将在下一步骤中用到它。
点击取消以退出 Feed 创建流程(您稍后将创建实际的 Feed)。
向 Google SecOps 服务账号授予 IAM 权限
Google SecOps 服务账号需要对您的存储账号具有 Storage Blob Data Reader 角色。
- 在 Azure 门户中,前往存储账号。
- 点击您的存储账号名称(例如
secops-azure-logs)。 - 前往访问权限控制 (IAM) 标签页。
- 依次点击 + 添加 > 添加角色分配。
- 在角色标签页中,搜索并选择 Storage Blob Data Reader。
- 点击下一步。
- 在成员标签页中,点击 + 选择成员。
- 在搜索框中,粘贴 Google SecOps 服务账号电子邮件地址。
- 从结果中选择服务账号。
- 点击选择。
- 点击检查并分配。
查看分配,然后再次点击查看 + 分配。
在 Google SecOps 中配置 Feed
您必须为每种日志类型和容器分别创建一个 Feed。下表显示了 Azure 容器与 Google SecOps 日志类型之间的映射关系:
| 容器名称 | Chronicle 日志类型 | 数据源 |
|---|---|---|
insights-activity-logs |
Azure 活动 | Azure 活动日志 |
insights-logs-signinlogs |
Azure AD | Entra ID 交互式登录 |
insights-logs-noninteractiveusersigninlogs |
Azure AD | Entra ID 非交互式登录 |
insights-logs-serviceprincipalsigninlogs |
Azure AD | Entra ID 服务正文登录 |
insights-logs-managedidentitysigninlogs |
Azure AD | Entra ID 托管式身份登录 |
insights-logs-auditlogs |
Azure AD 审核 | Entra ID 审核日志 |
insights-logs-provisioninglogs |
Azure AD | Entra ID 预配日志 |
insights-logs-riskyusers |
Azure AD | Entra ID 风险用户 |
insights-logs-userriskevents |
Azure AD | Entra ID 用户风险事件 |
insights-logs-microsoftgraphactivitylogs |
Microsoft Graph 活动日志 | Microsoft Graph Activity |
为 Azure 活动日志创建 Feed
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在Feed 名称字段中,输入
Azure Activity Logs。 - 选择 Microsoft Azure Blob Storage V2 作为来源类型。
- 选择 Azure 活动作为日志类型。
- 点击下一步。
为以下输入参数指定值:
Azure URI:输入包含容器路径的 Blob 服务端点网址:
https://secops-azure-logs.blob.core.windows.net/insights-activity-logs/
将
secops-azure-logs替换为您的 Azure 存储账号名称。- 来源删除选项:根据您的偏好选择删除选项:
- 永不:转移后永不删除任何文件。
- 删除已转移的文件:在成功转移后删除文件。
- 删除已转移的文件和空目录:成功转移后删除文件和空目录。
- 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。
从身份验证下拉菜单(默认设置为访问/共享密钥)中,选择要使用的方法并提供相应的凭据:
- 访问密钥/共享密钥:在密钥字段中,粘贴之前捕获的存储账号访问密钥(密钥 1 或密钥 2)。
- SAS 令牌:在令牌字段中,粘贴为容器签发的共享访问签名 (SAS) 令牌。
- Azure V2 工作负载身份联合:输入 Microsoft Entra 应用客户端 ID 和租户 ID。复制 Feed 显示的只读正文 ID,并在 Azure 端向匹配的身份授予对存储空间的访问权限。
资产命名空间:资产命名空间。
提取标签:要应用于相应 Feed 中事件的标签。
点击下一步。
在最终确定界面中查看新的 Feed 配置,然后点击提交。
为 Entra ID 日志创建 Feed
针对您在诊断设置中配置的每种 Entra ID 日志类型重复以下步骤:
对于互动式登录日志:
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 点击配置单个 Feed。
- 在Feed 名称字段中,输入
Azure AD Interactive Sign-in Logs。 - 选择 Microsoft Azure Blob Storage V2 作为来源类型。
- 选择 Azure AD 作为日志类型。
- 点击下一步。
为以下输入参数指定值:
Azure URI:
https://secops-azure-logs.blob.core.windows.net/insights-logs-signinlogs/
- 来源删除选项:根据您的偏好选择。
- 文件最长使用时间:180 天(默认)。
从身份验证下拉菜单(默认设置为访问/共享密钥)中,选择要使用的方法并提供相应的凭据:
- 访问密钥/共享密钥:在密钥字段中,粘贴之前捕获的存储账号访问密钥(密钥 1 或密钥 2)。
- SAS 令牌:在令牌字段中,粘贴为容器签发的共享访问签名 (SAS) 令牌。
- Azure V2 工作负载身份联合:输入 Microsoft Entra 应用客户端 ID 和租户 ID。复制 Feed 显示的只读正文 ID,并在 Azure 端向匹配的身份授予对存储空间的访问权限。
资产命名空间:资产命名空间。
注入标签:要应用的标签。
点击下一步,然后点击提交。
对于非互动式登录日志:
使用以下设置创建另一个 Feed:
- Feed 名称:
Azure AD Non-interactive Sign-in Logs - 日志类型:
Azure AD - Azure URI:
https://secops-azure-logs.blob.core.windows.net/insights-logs-noninteractiveusersigninlogs/
对于服务正文登录日志:
使用以下设置创建另一个 Feed:
- Feed 名称:
Azure AD Service Principal Sign-in Logs - 日志类型:
Azure AD - Azure URI:
https://secops-azure-logs.blob.core.windows.net/insights-logs-serviceprincipalsigninlogs/
对于托管式身份登录日志:
使用以下设置创建另一个 Feed:
- Feed 名称:
Azure AD Managed Identity Sign-in Logs - 日志类型:
Azure AD - Azure URI:
https://secops-azure-logs.blob.core.windows.net/insights-logs-managedidentitysigninlogs/
对于审核日志:
使用以下设置创建另一个 Feed:
- Feed 名称:
Azure AD Audit Logs - 日志类型:
Azure AD Audit - Azure URI:
https://secops-azure-logs.blob.core.windows.net/insights-logs-auditlogs/
对于配置日志:
使用以下设置创建另一个 Feed:
- Feed 名称:
Azure AD Provisioning Logs - 日志类型:
Azure AD - Azure URI:
https://secops-azure-logs.blob.core.windows.net/insights-logs-provisioninglogs/
对于有风险的用户:
使用以下设置创建另一个 Feed:
- Feed 名称:
Azure AD Risky Users - 日志类型:
Azure AD - Azure URI:
https://secops-azure-logs.blob.core.windows.net/insights-logs-riskyusers/
对于用户风险事件:
使用以下设置创建另一个 Feed:
- Feed 名称:
Azure AD User Risk Events - 日志类型:
Azure AD - Azure URI:
https://secops-azure-logs.blob.core.windows.net/insights-logs-userriskevents/
对于 Microsoft Graph 活动日志:
使用以下设置创建另一个 Feed:
- Feed 名称:
Microsoft Graph Activity Logs - 日志类型:
Microsoft Graph Activity Logs Azure URI:
https://secops-azure-logs.blob.core.windows.net/insights-logs-microsoftgraphactivitylogs/