你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

部署适用于 SAP BTP 的 Microsoft Sentinel 解决方案

本文介绍如何部署适用于 SAP 业务技术平台 (BTP) 系统的 Microsoft Sentinel 解决方案。 适用于 SAP BTP 的 Microsoft Sentinel 解决方案能够监视和保护 SAP BTP 系统。 它会从 BTP 基础结构和基于 BTP 的应用收集审核日志和活动日志,然后检测威胁、可疑活动、非法活动等。 详细了解该解决方案

先决条件

在开始之前,请先确认:

  • 已启用 Microsoft Sentinel 解决方案。
  • 你有一个定义的 Microsoft Sentinel 工作区,并且对该工作区具有读取和写入权限。
  • 你的组织使用 SAP BTP(在 Cloud Foundry 环境中)来简化与 SAP 应用程序和其他商务应用程序的交互。
  • 你有一个 SAP BTP 帐户(该帐户支持 Cloud Foundry 环境中的 BTP 帐户)。 还可以使用 SAP BTP 试用帐户
  • 你有 SAP BTP 审核日志管理服务和服务密钥(请参阅设置 BTP 帐户和解决方案)。
  • 你对目标 Microsoft Sentinel 工作区具有 Microsoft Sentinel 参与者角色。

设置 BTP 帐户和解决方案

若要设置 BTP 帐户和解决方案:

  1. 登录到 BTP 帐户后(请查看先决条件),请按照 SAP BTP 系统上的审核日志检索步骤进行操作。

  2. 在 SAP BTP 控制台中,选择“审核日志管理服务”。

    显示如何选择 BTP 审核日志管理服务的屏幕截图。

  3. 在 BTP 子帐户中创建审核日志管理服务的实例。

    显示如何创建 BTP 子帐户实例的屏幕截图。

  4. 创建服务密钥并记录 urluaa.clientiduaa.clientecretuaa.url 的值。 部署数据连接器需要这些值。

    下面是这些字段值的示例:

    • urlhttps://auditlog-management.cfapps.us10.hana.ondemand.com
    • uaa.clientid00001111-aaaa-2222-bbbb-3333cccc4444|auditlog-management!b1237
    • uaa.clientsecretaaaaaaaa-0b0b-1c1c-2d2d-333333333333
    • uaa.urlhttps://trial.authentication.us10.hana.ondemand.com
  5. 登录 Azure 门户

  6. 转到 Microsoft Sentinel 服务。

  7. 选择“内容中心”,然后在搜索栏中搜索 BTP

  8. 选择“SAP BTP”。

  9. 选择“安装” 。

    有关如何管理解决方案组件的详细信息,请参阅发现和部署现成内容

  10. 选择创建

    显示如何创建适用于 SAP BTP 的 Microsoft Sentinel 解决方案的屏幕截图。

  11. 选择要在其中部署解决方案的资源组和 Microsoft Sentinel 工作区。

  12. 选择“下一步”,直到通过验证,然后选择“创建”。

  13. 解决方案部署完成后,返回到 Microsoft Sentinel 工作区并选择“数据连接器”。

  14. 在搜索栏中,输入“BTP”,然后选择“SAP BTP”

  15. 选择“打开连接器页面”。

  16. 在连接器页面中,确保满足列出的所需先决条件并完成配置步骤。 准备就绪后,选择“添加帐户”

  17. 指定之前在配置期间定义的参数。 指定的子帐户名称将投影为 SAPBTPAuditLog_CL 表中的一个列,可用于在有多个子帐户时筛选日志。

    注意

    检索全局帐户的审核不会自动检索子帐户的审核。 针对要监视的每个子帐户执行连接器配置步骤,并针对全局帐户执行这些步骤。 查看这些帐户审核配置注意事项

  18. 确保 BTP 日志流入 Microsoft Sentinel 工作区:

    1. 登录到你的 BTP 子帐户并运行一些生成日志的活动,例如登录、添加用户、更改权限、更改设置。
    2. 等待 20 到 30 分钟,让日志开始流动。
    3. SAP BTP 连接器页中,确认 Microsoft Sentinel 接收到了 BTP 数据,或直接查询 SAPBTPAuditLog_CL 表。
  19. 遵循这些准则,启用作为解决方案的一部分提供的工作簿分析规则

考虑你的帐户审核配置

部署过程的最后一步是考虑你的全局帐户和子帐户审核配置。

全局帐户审核配置

在 BTP 控制台中为全局帐户启用审核日志检索时:如果要为其授权审核日志管理服务的子帐户位于目录下,则必须先在目录级别授权服务。 只有这样之后才能在子帐户级别授权服务。

子帐户审核配置

若要为子帐户启用审核,请完成 SAP 子帐户审核检索 API 文档中的步骤。

API 文档介绍了如何使用 Cloud Foundry CLI 启用审核日志检索。

还可以通过 UI 检索日志:

  1. 在子帐户的 SAP 服务市场中,创建审核日志管理服务的实例。
  2. 在新实例中,创建服务密钥。
  3. 查看服务密钥,并在数据连接器 UI 中检索配置说明的步骤 4 中的必需参数(urluaa.urluaa.clientiduaa.clientsecret)。

轮换 BTP 客户端密码

建议定期轮换 BPT 子帐户客户端密码。 以下示例脚本演示了将现有数据连接器更新为使用从 Azure 密钥保管库提取的新密码的过程。

在开始之前,请收集脚本参数所需的值,其中包括:

  • 订阅 ID、资源组和 Microsoft Sentinel 工作区的工作区名称。
  • 密钥保管库和密钥保管库密码的名称。
  • 想要更新为使用新密码的数据连接器的名称。 若要标识数据连接器名称,请在 Microsoft Sentinel 数据连接器页面中打开 SAP BPT 数据连接器。 数据连接器名称采用以下语法:BTP_{连接器名称}
param(
    [Parameter(Mandatory = $true)] [string]$subscriptionId,
    [Parameter(Mandatory = $true)] [string]$workspaceName,
    [Parameter(Mandatory = $true)] [string]$resourceGroupName,
    [Parameter(Mandatory = $true)] [string]$connectorName,
    [Parameter(Mandatory = $true)] [string]$clientId,
    [Parameter(Mandatory = $true)] [string]$keyVaultName,
    [Parameter(Mandatory = $true)] [string]$secretName
)

# Import the required modules
Import-Module Az.Accounts
Import-Module Az.KeyVault

try {
    # Login to Azure
    Login-AzAccount

    # Retrieve BTP client secret from Key Vault
    $clientSecret = (Get-AzKeyVaultSecret -VaultName $keyVaultName -Name $secretName).SecretValue
    if (!($clientSecret)) {
        throw "Failed to retrieve the client secret from Azure Key Vault"
    }

    # Get the connector from data connectors API
    $path = "/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.OperationalInsights/workspaces/{2}/providers/Microsoft.SecurityInsights/dataConnectors/{3}?api-version=2024-01-01-preview" -f $subscriptionId, $resourceGroupName, $workspaceName, $connectorName
    $connector = (Invoke-AzRestMethod -Path $path -Method GET).Content | ConvertFrom-Json
    if (!($connector)) {
        throw "Failed to retrieve the connector"
    }

    # Add the updated client ID and client secret to the connector
    $connector.properties.auth | Add-Member -Type NoteProperty -Name "clientId" -Value $clientId
    $connector.properties.auth | Add-Member -Type NoteProperty -Name "clientSecret" -Value ($clientSecret | ConvertFrom-SecureString -AsPlainText)

    # Update the connector with the new auth object
    Invoke-AzRestMethod -Path $path -Method PUT -Payload ($connector | ConvertTo-Json -Depth 10)
}
catch {
    Write-Error "An error occurred: $_"
}