Compartir a través de

通过部署数据连接器代理容器来连接 SAP 系统

为了使适用于 SAP 应用程序的 Microsoft Sentinel 解决方案正常运行,必须先将 SAP 数据引入 Microsoft Sentinel。 为此,你需要部署该解决方案的 SAP 数据连接器代理。

本文介绍如何部署托管 SAP 数据连接器代理的容器并连接到 SAP 系统,这是部署适用于 SAP 应用程序的 Microsoft Sentinel 解决方案的第三步。 请确保按照本文中显示的顺序执行这些步骤。

SAP 解决方案部署流的示意图,其中突出显示了“部署数据代理容器”步骤。

本文中的内容与安全团队、基础结构团队和 SAP BASIS 团队相关。

先决条件

在部署数据连接器代理之前:

创建虚拟机并配置对凭据的访问权限

我们建议为数据连接器代理容器创建专用虚拟机,以确保实现最佳性能并避免潜在的冲突。 有关详细信息,请参阅系统先决条件

建议将 SAP 和身份验证机密存储在 Azure 密钥保管库中。 访问密钥保管库的方式取决于部署虚拟机 (VM) 的位置:

部署方法 访问方法
Azure VM 上的容器 建议使用 Azure 系统分配的托管标识访问 Azure 密钥保管库。

如果无法使用系统分配的托管标识,容器还可以使用 Microsoft Entra ID 已注册应用程序服务主体向 Azure 密钥保管库进行身份验证,万不得已时还可使用配置文件对其进行身份验证。
本地 VM 上的容器或第三方云环境中的 VM 使用 Microsoft Entra ID 已注册应用程序服务主体向 Azure 密钥保管库进行身份验证。

如果无法使用已注册的应用程序或服务主体,请使用配置文件来管理凭据,但此方法不是首选方法。 有关详细信息,请参阅使用配置文件部署数据连接器

有关详细信息,请参阅:

虚拟机通常是由基础结构团队创建的。 配置对凭据的访问权限和管理密钥保管库则通常是由安全团队完成。

使用 Azure VM 创建托管标识

  1. 运行以下命令在 Azure 中创建 VM(请将 <placeholders> 替换为环境中的实际名称):

    az vm create --resource-group <resource group name> --name <VM Name> --image Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:latest --admin-username <azureuser> --public-ip-address "" --size  Standard_D2as_v5 --generate-ssh-keys --assign-identity --role <role name> --scope <subscription Id>
    
    

    有关详细信息,请参阅快速入门:使用 Azure CLI 创建 Linux 虚拟机

    重要

    创建 VM 后,请务必应用组织适用的任何安全要求和强化过程。

    此命令将创建 VM 资源,生成如下所示的输出:

    {
      "fqdns": "",
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resourcegroupname/providers/Microsoft.Compute/virtualMachines/vmname",
      "identity": {
        "systemAssignedIdentity": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
        "userAssignedIdentities": {}
      },
      "location": "chinaeast2",
      "macAddress": "00-11-22-33-44-55",
      "powerState": "VM running",
      "privateIpAddress": "192.168.136.5",
      "publicIpAddress": "",
      "resourceGroup": "resourcegroupname",
      "zones": ""
    }
    
  2. 复制 systemAssignedIdentity GUID,因为它将用于后续步骤中。 这是你的托管标识

创建 key vault

此过程介绍如何创建密钥保管库来存储代理配置信息,包括 SAP 身份验证密钥。 如果要使用现有的密钥保管库,请直接跳到步骤 2

创建密钥保管库

  1. 运行以下命令,用实际名称替换 <placeholder> 值。

    az keyvault create \
      --name <KeyVaultName> \
      --resource-group <KeyVaultResourceGroupName>
    
  2. 复制密钥保管库及其资源组的名称。 分配密钥保管库访问权限并在后续步骤中运行部署脚本时,将需要用到它们。

分配密钥保管库访问权限

  1. 在密钥保管库中,将机密范围上以下基于 Azure 角色的访问控制或保管库访问策略权限分配给之前创建和复制的标识

    权限模型 所需的权限
    Azure 基于角色的访问控制 Key Vault 机密用户
    保管库访问策略 getlist

    使用门户中的选项分配权限,或运行以下命令之一,将密钥保管库机密权限分配给你的标识,用实际名称替换 <placeholder> 值。 选择创建的标识类型对应的选项卡。

    命令中指定的策略允许 VM 列出密钥保管库并读取密钥。

    • Azure 基于角色的访问控制权限模型

      az role assignment create --assignee-object-id <ManagedIdentityId> --role "Key Vault Secrets User" --scope /subscriptions/<KeyVaultSubscriptionId>/resourceGroups/<KeyVaultResourceGroupName> /providers/Microsoft.KeyVault/vaults/<KeyVaultName>
      
    • 保管库访问策略权限模型

      az keyvault set-policy -n <KeyVaultName> -g <KeyVaultResourceGroupName> --object-id <ManagedIdentityId> --secret-permissions get list
      
  2. 在同一密钥保管库中,将机密范围上的以下基于 Azure 角色的访问控制或保管库访问策略权限分配给配置数据连接器代理的用户:

    权限模型 所需的权限
    Azure 基于角色的访问控制 Key Vault 机密管理人员
    保管库访问策略 getlistsetdelete

    使用门户中的选项分配权限,或运行以下命令之一,将密钥保管库机密权限分配给你的用户,用实际名称替换 <placeholder> 值:

    • Azure 基于角色的访问控制权限模型

      az role assignment create --role "Key Vault Secrets Officer" --assignee <UserPrincipalName> --scope /subscriptions/<KeyVaultSubscriptionId>/resourceGroups/<KeyVaultResourceGroupName>/providers/Microsoft.KeyVault/vaults/<KeyVaultName>
      
    • 保管库访问策略权限模型

      az keyvault set-policy -n <KeyVaultName> -g <KeyVaultResourceGroupName> --upn <UserPrincipalName>--secret-permissions get list set delete
      

从门户部署数据连接器代理(预览版)

现在,你已经创建了 VM 和密钥保管库,下一步是创建新代理并连接到你的某一个 SAP 系统。 虽然可以在单台计算机上运行多个数据连接器代理,但建议先从一个代理开始,监视性能,然后慢慢增加连接器的数量。

此过程介绍如何使用 Azure 门户创建新代理并将其连接到 SAP 系统。 我们建议安全团队在 SAP BASIS 团队的帮助下执行此过程

虽然命令行也支持进行部署,但建议使用门户进行典型部署。 使用命令行部署的数据连接器代理只能通过命令行进行管理,而不能通过门户进行管理。 有关详细信息,请参阅通过命令行部署 SAP 数据连接器代理

重要

从门户部署容器和创建到 SAP 系统的连接目前为预览版功能。 Azure 预览版补充条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。

先决条件

  • 若要通过门户部署数据连接器代理,需要:

    • 通过托管标识或已注册的应用程序进行身份验证
    • 存储在 Azure 密钥保管库中的凭据

    如果不满足这些先决条件,请改为通过命令行部署 SAP 数据连接器代理

  • 若要部署数据连接器代理,还需要在数据连接器代理计算机上拥有 sudo 或根权限。

  • 如果要使用安全网络通信 (SNC) 通过安全连接引入 Netweaver/ABAP 日志,则需要:

    • 指向 sapgenpse 二进制文件和 libsapcrypto.so 库的路径
    • 客户端证书的详细信息

    有关详细信息,请参阅配置系统以使用 SNC 进行安全连接

若要部署数据连接器代理,请执行以下操作:

  1. 以具有 sudo 权限的用户身份登录到要安装代理的新创建的 VM。

  2. SAP NetWeaver SDK 下载或传输到该计算机。

  3. 在 Microsoft Sentinel 中,选择“配置”>“数据连接器”

  4. 在搜索栏中输入 SAP。 从搜索结果中选择“适用于 SAP 的 Microsoft Sentinel”,然后选择“打开连接器页面”。

  5. 在“配置”区域中,选择“添加新代理(预览版)”。

    添加基于 SAP API 的收集器代理的说明的屏幕截图。

  6. 在“创建收集器代理”窗格中,输入以下代理详细信息:

    名称 描述
    代理名称 为组织输入一个有意义的代理名称。 我们不建议使用任何特定的命名约定,但该名称只能包括以下类型的字符:
    • a-z
    • A-Z
    • 0-9
    • _(下划线)
    • 。 (period)
    • - (dash)
    订阅 / 密钥保管库 从各自的下拉列表中选择“订阅”和“密钥保管库”。
    代理 VM 上的 NWRFC SDK zip 文件路径 输入 VM 中包含 SAP NetWeaver 远程函数调用 (RFC) 软件开发工具包 (SDK) 存档(.zip 文件)的路径。

    确保此路径包含 SDK 版本号,其语法如下:<path>/NWRFC<version number>.zip。 例如:/src/test/nwrfc750P_12-70002726.zip
    启用 SNC 连接支持 选择通过使用 SNC 的安全连接引入 NetWeaver/ABAP 日志。

    如果选择此选项,请在代理 VM 上的 SAP 加密库路径下输入包含 sapgenpse 二进制文件和 libsapcrypto.so 库的路径。

    如果要使用 SNC 连接,请确保在此阶段选择“启用 SNC 连接支持”,因为完成代理部署后,将无法返回并启用 SNC 连接。 如果以后要更改此设置,建议改为创建新的代理。
    Azure Key Vault 身份验证 若要使用托管标识对密钥保管库进行身份验证,请选择默认的“托管标识”选项。 若要使用已注册的应用程序进行密钥保管库身份验证,请选择 应用程序标识

    必须提前设置托管标识或已注册的应用程序。 有关详细信息,请参阅创建虚拟机并配置对凭据的访问权限

    例如:

    屏幕截图为“创建收集器代理”区域。

  7. 选择“创建”,并在查看建议之后完成部署:

    屏幕截图为代理部署的最终阶段。

  8. 部署 SAP 数据连接器代理需要使用“Microsoft Sentinel Business Applications 代理操作员”和“读取者”角色向代理的 VM 身份授予对 Microsoft Sentinel 工作区的特定权限。

    你必须是 Microsoft Sentinel 工作区上的资源组所有者,才能运行此步骤中的命令。 如果你不是工作区的资源组所有者,也可以在代理部署完成后执行此过程。

    在“只需再执行几个步骤即可完成”下,从步骤 1 复制角色分配命令,并在代理 VM 上运行这些命令,但要将 [Object_ID] 占位符替换为你的 VM 标识对象 ID。 例如:

    步骤 1 中命令的“复制”图标的屏幕截图。

    若要在 Azure 中查找 VM 标识对象 ID,请执行以下操作:

    • 对于托管标识,对象 ID 列在 VM 的“标识”页面上。

    • 对于服务主体,请转到 Azure 中的“企业应用程序”。 选择“所有应用程序”,然后选择你的 VM。 对象 ID 显示在“概述”页面上

    这些命令会将“Microsoft Sentinel Business Applications 代理操作员”和“读取者”Azure 角色分配给 VM 的托管或应用程序标识(仅包括工作区中指定代理数据的范围)。

    重要

    通过 CLI 分配“Microsoft Sentinel Business Applications 代理操作员”和“读者”角色只会在工作区中指定代理数据的范围内分配该角色。 这是最安全的,因此也是推荐的选项。

    如果必须通过 Azure 门户分配角色,我们建议在较小范围内分配角色,例如仅在 Microsoft Sentinel 工作区上分配角色。

  9. 选择步骤 2 中“代理部署命令”旁边的“复制”该屏幕截图显示了“代理部署命令”旁边的“复制”图标。 例如:

    步骤 2 中要复制的代理命令的屏幕截图。

  10. 将命令行复制到单独的位置,然后选择“关闭”

    相关代理信息将部署到 Azure Key Vault 中,新代理显示在“添加基于 API 的收集器代理”下的表中。

    在此阶段,代理的“运行状况”状态为“未完成安装。请按照说明进行操作”。 成功安装代理后,状态将更改为“代理正常”。 此更新最多可能需要 10 分钟。 例如:

    SAP 数据连接器页面上基于 API 的收集器代理的运行状况屏幕截图。

    注意

    该表仅显示通过 Azure 门户部署的代理的代理名称和运行状况。 此处不显示使用命令行部署的代理。 有关详细信息,请改为参阅“命令行”标签页

  11. 在计划安装代理的虚拟机上,打开终端并运行在上一步中复制的代理部署命令。 此步骤需要在数据连接器代理计算机上拥有 sudo 或根权限。

    该脚本会更新操作系统组件并安装 Azure CLI、Docker 软件和其他所需的实用程序,例如 jq、netcat 和 curl。

    请根据需要向脚本提供额外的参数来自定义容器部署。 有关可用命令行选项的详细信息,请参阅 Kickstart 脚本参考

    如果需要再次复制命令,请选择“运行状况”列右侧的“视图”该屏幕截图显示了“运行状况”列旁边的“视图”图标。,并复制右下角“代理部署命令”旁边的命令。

  12. 在适用于 SAP 应用程序的 Microsoft Sentinel 解决方案中,在数据连接器页面的“配置”区域选择“添加新系统(预览版)”,然后输入以下详细信息:

    • 在“选择代理”下,选择之前创建的代理。

    • 在“系统标识符”下,选择服务器类型:

      • ABAP 服务器
      • 消息服务器,将消息服务器用作 ABAP SAP Central Services (ASCS) 的一部分。
    • 继续为服务器类型定义相关详细信息:

      • 对于 ABAP 服务器,请输入 ABAP 应用程序服务器 IP 地址/FQDN、系统 ID 和编号,以及客户端 ID。
      • 对于消息服务器,请输入消息服务器 IP 地址/FQDN、端口号或服务名称,以及登录组

    完成后,选择“下一步: 身份验证”。

    例如:

    该屏幕截图显示了“添加新系统”区域的“系统设置”选项卡。

  13. 在“身份验证”选项卡上,输入以下详细信息:

    • 对于基本身份验证,请输入用户名和密码。
    • 如果在设置代理时选择了 SNC 连接,请选择“SNC”并输入证书详细信息

    完成后,选择“下一步: 日志”。

  14. 在“日志”选项卡上,选择要从 SAP 引入的日志,然后选择“下一步: 查看并创建”。 例如:

    该屏幕截图显示了“添加新系统端”侧窗格中的“日志”选项卡。

  15. (可选)为了在监控 SAP PAHI 表时获得最佳效果,请选择“配置历史记录”。 有关更多信息,请参阅“验证 PAHI 表是否定期更新”。

  16. 查看定义的设置。 选择“上一步”以修改任何设置,或选择“部署”以部署系统。

系统会将你定义的系统配置部署到你在部署期间定义的 Azure 密钥保管库中。 现在可以在“配置 SAP 系统并将其分配给收集器代理”下的表中查看系统详细信息。 此表显示了通过门户或其他方式添加的系统的关联代理名称、SAP 系统 ID(SID)和运行状况。

在此阶段,系统的“运行状况”为“挂起”。 如果代理成功更新,它将从 Azure Key Vault 拉取配置,并且状态将更改为“系统正常”。 此更新最多可能需要 10 分钟。

检查连接和运行状况

部署 SAP 数据连接器代理后,请检查代理的运行状况和连接情况。 有关详细信息,请参阅监视 SAP 系统的运行状况和角色

下一步

部署连接器后,继续配置适用于 SAP 应用程序的 Microsoft Sentinel 解决方案内容。 具体而言,在监视列表中配置详细信息是启用检测和威胁防护的重要步骤。