收集 Microsoft Azure 活动和 Entra ID 日志
本文档介绍了如何通过设置 Google Security Operations Feed 来收集 Microsoft Azure 活动和 Entra ID 日志。您可以使用以下两种方法配置注入:
- 方法 1:Microsoft Azure Event Hub(推荐):Azure 诊断设置将活动日志和 Entra ID 日志流式传输到 Azure Event Hub 命名空间,Google SecOps 从该命名空间近乎实时地注入这些日志。这是首选方法。
- 方法 2:Microsoft Azure Blob Storage V2:Azure 诊断设置将日志归档到 Azure 存储账号,而 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 事件中心命名空间,而 Google SecOps 会近乎实时地直接从事件中心注入这些日志。
每个 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 日志类型创建一个事件中心。
- 部署命名空间后,前往事件中心命名空间。
- 在左侧导航栏中,选择实体下的事件中心。
点击 + 事件中心,然后创建具有以下设置的事件中心:
设置 值 名称 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
- 提醒
- 建议
- 政策
- 自动扩缩
- 资源健康状况
- 在目标详细信息部分中,选中流式传输到事件中心复选框。
- 订阅:选择包含事件中心命名空间的订阅。
- 事件中心命名空间:选择您之前创建的命名空间(例如
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 都使用相同的命名空间级连接字符串,仅在 Event Hub 名称和日志类型方面有所不同:
| 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 活动日志 |
对于表格中的每一行:
- 前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 名称(例如
Azure Activity Logs)。 - 选择 Microsoft Azure Event Hub 作为来源类型。
- 选择相应的日志类型(例如
Microsoft Azure Activity)。 - 点击下一步。
为以下输入参数指定值:
- 事件中心名称:输入表格中的事件中心名称(例如
azure-activity)。 - 事件中心使用方群组:输入
$Default或您创建的专用使用方群组(例如chronicle)。 - 事件中心连接字符串:输入您之前捕获的命名空间级连接字符串。
- Azure Storage Connection String(可选):用于事件中心检查点存储的旧字段;请留空。
- Azure Storage 容器名称(可选):用于 Event Hub 检查点存储的旧版字段;留空。
- Azure SAS 令牌(可选):如果您的安全政策禁止共享事件中心连接字符串,则可使用此令牌作为事件中心的替代身份验证方式;如果您在上方提供了连接字符串,请将此字段留空。
- 资源命名空间:资源命名空间。
- 注入标签:要应用于此 Feed 中事件的标签。
- 事件中心名称:输入表格中的事件中心名称(例如
点击下一步。
在最终确定界面中查看新的 Feed 配置,然后点击提交。
方法 2:Microsoft Azure Blob Storage V2
采用此方法时,Azure 诊断设置会将 Azure Activity 和 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 |
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
- 前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在Feed 名称字段中,输入
Microsoft Azure Activity Logs。 - 选择 Microsoft Azure Blob Storage V2 作为来源类型。
- 选择 Microsoft 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 中事件的标签。
点击下一步。
在最终确定界面中查看新的新闻信息流配置,然后点击提交。
为 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 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/
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。