收集 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 Storage 账号,Google SecOps 会按计划轮询 Blob 容器。
Microsoft 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 诊断设置会将 Microsoft Azure Activity 和 Entra ID 日志流式传输到 Azure Event Hub 命名空间,而 Google SecOps 会近乎实时地直接从 Event Hub 提取这些日志。
每个 Google SecOps Feed 都会将一个事件中心映射到一种日志类型。为每种 Google SecOps 日志类型创建一个事件中心,并将匹配的 Azure 日志类别路由到该事件中心:
| 事件中心 | Azure 日志类别 | Google SecOps 日志类型 |
|---|---|---|
azure-activity |
Azure 活动日志 | Microsoft Azure Activity |
entra-id |
SignInLogs、NonInteractiveUserSignInLogs、ServicePrincipalSignInLogs、ManagedIdentitySignInLogs、ProvisioningLogs、RiskyUsers、UserRiskEvents | Azure AD |
entra-id-audit |
AuditLogs | Azure AD Directory Audit |
entra-id-graph |
MicrosoftGraphActivityLogs | Microsoft Graph 活动日志 |
创建事件中心命名空间
事件中心命名空间是一个或多个事件中心的管理容器。
- 在 Azure 门户中,搜索事件中心。
- 点击 + 创建。
提供以下配置详细信息:
设置 值 订阅 选择您的 Azure 订阅 资源组 选择现有组或创建新组 命名空间名称 输入一个唯一名称(例如 secops-azure-logs)位置 选择与 Google SecOps 实例相同的区域(在其他区域部署会降低提取吞吐量) 价格层级 标准版或更高级别(基本版仅支持每个命名空间一个事件中心) 吞吐量单位 从 1 开始,并启用自动扩容 点击审核 + 创建,然后点击创建。
等待部署完成。
创建事件中心
为上表中列出的每种 Google SecOps 日志类型创建一个事件中心。
- 部署命名空间后,前往事件中心命名空间。
- 在左侧导航栏中,选择实体下的 Event Hubs。
点击 + 事件中心,然后使用以下设置创建一个事件中心:
设置 值 名称 azure-activity分区数 40(建议用于实现最佳 Google SecOps 伸缩;在标准层级和基本层级中创建后无法更改) 消息保留 至少 7 天(设置您能承受的最长保留期限,这样在配额限制后恢复提取之前,日志不会被删除) 拍摄 已停用(直接注入 Event Hub 时不需要) 点击审核 + 创建,然后点击创建。
重复上述步骤,创建
entra-id、entra-id-audit和entra-id-graph事件中心。
获取事件中心连接字符串
Google SecOps 需要连接字符串才能向事件中心进行身份验证。使用命名空间级连接字符串,以便一个凭证适用于您创建的所有事件中心。
- 前往事件中心命名空间。
- 在左侧导航栏中,选择设置下的共享访问权限政策。
- 点击 RootManageSharedAccessKey 政策,或点击 + 添加以创建具有监听权限的专用政策。
- 复制连接字符串 - 主键。
请妥善保存此连接字符串。
配置 Azure 活动日志诊断设置(事件中心)
如需将 Azure 活动日志流式传输到 azure-activity 事件中心,请执行以下操作:
- 在 Azure 门户中,搜索监控。
- 点击左侧导航栏中的活动日志。
- 点击窗口顶部的导出活动日志。
- 点击添加诊断设置。
- 提供以下配置详细信息:
- 诊断设置名称:输入描述性名称(例如
activity-logs-to-eventhub)。 - 在日志部分,选择以下类别:
- 行政区
- 安全性
- Service Health
- 提醒
- 建议
- 政策
- 自动扩缩
- 资源运行状况
- 在目标详细信息部分中,选中流式传输到事件中心复选框。
- 订阅:选择包含事件中心命名空间的订阅。
- 事件中心命名空间:选择您之前创建的命名空间(例如
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 Directory Audit)的诊断设置:- 诊断设置名称:
entraid-audit-to-eventhub - 在日志部分,选择 AuditLogs。
- 在目标详细信息部分中,选择流式传输到事件中心、事件中心命名空间和
entra-id-audit事件中心。
entra-id-graph事件中心的诊断设置(日志类型为 Microsoft Graph 活动日志):- 诊断设置名称:
entraid-graph-to-eventhub - 在日志部分,选择 MicrosoftGraphActivityLogs。
- 在目标详细信息部分中,选择流式传输到事件中心、事件中心命名空间和
entra-id-graph事件中心。
- 诊断设置名称:
配置完每项设置后,点击保存。
(可选)创建专用消费群组
默认情况下,每个事件中心都会提供一个名为 $Default 的使用方群组。对于生产环境,建议在每个事件中心为 Google SecOps 创建一个专用使用方群组。
- 前往事件中心(而非命名空间)。
- 在左侧导航栏中,选择使用方群组。
- 点击 + 消费者群组,输入名称(例如
chronicle),然后点击创建。 对每个事件中心重复上述操作。
在 Google SecOps(Event Hub)中配置 Feed
为每个事件中心创建一个 Feed。所有 Feed 都使用相同的命名空间级连接字符串,仅在事件中心名称和日志类型方面有所不同:
| Feed 名称 | 事件中心名称 | Google SecOps 日志类型 |
|---|---|---|
Microsoft Azure Activity Logs |
azure-activity |
Microsoft Azure Activity |
Azure AD Logs |
entra-id |
Azure AD |
Azure AD Directory Audit Logs |
entra-id-audit |
Azure AD Directory Audit |
Microsoft Graph Activity Logs |
entra-id-graph |
Microsoft Graph 活动日志 |
对于表中的每一行:
- 依次前往设置 > 数据管理 > Feed。如果您使用的是仅 SIEM 平台,请依次前往设置 > Feed。
- 点击添加新新闻信息流。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称(例如
Azure Activity Logs)。 - 选择 Microsoft Azure 事件中心作为来源类型。
- 选择相应的日志类型(例如
Microsoft Azure Activity)。 - 点击下一步。
为以下输入参数指定值:
- 事件中心名称:输入表中的事件中心名称(例如
azure-activity)。 - 事件中心使用方群组:输入
$Default或您创建的专用使用方群组(例如chronicle)。 - 事件中心连接字符串:输入您之前获取的命名空间级连接字符串。
- Azure Storage 连接字符串(可选):事件中心检查点存储的旧字段;留空。
- Azure Storage Container Name(可选):用于事件中心检查点存储的旧字段;留空。
- Azure SAS 令牌(可选):如果您的安全政策禁止共享事件中心连接字符串,则可使用此替代身份验证方式连接到事件中心;如果您在上方提供了连接字符串,请将此字段留空。
- 资产命名空间:资产命名空间。
- 注入标签:要应用于此 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(本地冗余存储) 点击检查 + 创建。
查看账号概览,然后点击创建。
等待部署完成。
获取存储账号凭证
- 前往您刚刚创建的存储账号。
- 在左侧导航栏中,选择安全性 + 网络下的访问密钥。
- 点击显示密钥。
- 复制并保存以下内容以供日后使用:
- Storage 账号名称:您的 Storage 账号名称(例如
secops-azure-logs) - 密钥 1 或密钥 2:共享访问密钥(采用 base-64 编码的 512 位随机字符串)
- Storage 账号名称:您的 Storage 账号名称(例如
获取 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 读取数据。您必须向此服务账号授予对存储账号的访问权限。
获取服务账号邮箱
- 依次前往设置 > 数据管理 > Feed。如果您使用的是仅 SIEM 平台,请依次前往设置 > 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)。 - 前往 Access Control (IAM)(访问权限控制 [IAM])标签页。
- 点击 + 添加 > 添加角色分配。
- 在角色标签页中,搜索并选择 Storage Blob Data Reader。
- 点击下一步。
- 在成员标签页中,点击 + 选择成员。
- 在搜索框中,粘贴 Google SecOps 服务账号电子邮件地址。
- 从结果中选择相应服务账号。
- 点击选择。
- 点击检查并分配。
查看分配情况,然后再次点击查看 + 分配。
在 Google SecOps 中配置 Feed
您必须为每种日志类型和容器创建单独的 Feed。下表显示了 Azure 容器与 Google SecOps 日志类型之间的映射:
| 容器名称 | Chronicle 日志类型 | 数据源 |
|---|---|---|
insights-activity-logs |
Microsoft Azure Activity | 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 Directory Audit | 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 |
为 Microsoft Azure 活动日志创建 Feed
- 依次前往设置 > 数据管理 > Feed。如果您使用的是仅 SIEM 平台,请依次前往设置 > Feed。
- 点击添加新新闻信息流。
- 在下一页上,点击配置单个 Feed。
- 在 Feed name(Feed 名称)字段中,输入
Microsoft Azure Activity Logs。 - 选择 Microsoft Azure Blob Storage V2 作为来源类型。
- 选择 Microsoft Azure 活动作为日志类型。
- 点击下一步。
为以下输入参数指定值:
Azure URI:输入包含容器路径的 Blob Service 端点网址:
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 中的事件的标签。
点击下一步。
在最终确定界面中查看新的新闻信息流配置,然后点击提交。
为 Entra ID 日志创建 Feed
针对您在诊断设置中配置的每种 Entra ID 日志类型,重复以下步骤:
对于交互式登录日志:
- 依次前往设置 > 数据管理 > Feed。如果您使用的是仅 SIEM 平台,请依次前往设置 > Feed。
- 点击添加新新闻信息流。
- 点击配置单个 Feed。
- 在 Feed name(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 Directory 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/