从命令行部署 SAP 数据连接器代理
本文提供了用于部署 SAP 数据连接器代理的命令行选项。 对于一般的部署,我们建议使用门户而不是命令行,因为通过命令行安装的数据连接器代理只能通过命令行进行管理。
但是,如果使用的是配置文件而不是 Azure Key Vault 来存储凭据,或者如果你是一名高级用户,想要在 Kubernetes 群集等位置手动部署数据连接器,请改用本文中的过程。
虽然可以在单台计算机上运行多个数据连接器代理,但建议先从一个代理开始,监视性能,然后慢慢增加连接器数。 我们还建议安全团队在 SAP BASIS 团队的帮助下执行此过程。
先决条件
在部署数据连接器之前,请确保创建虚拟机并配置对凭据的访问权限。
如果使用 SNC 进行安全连接,请确保 SAP 系统已正确配置,然后在部署数据连接器代理之前准备 kickstart 脚本以便使用 SNC 进行安全通信。
有关详细信息,请参阅 SAP 文档。
使用托管标识或已注册的应用程序部署数据连接器代理
此过程介绍如何创建新的代理并通过命令行将其连接到 SAP 系统,使用托管标识或已注册 Microsoft Entra ID 的应用程序进行身份验证。
如果使用 SNC,请确保首先已完成准备 kickstart 脚本以便使用 SNC 进行安全通信。
如果使用配置文件来存储凭据,请改为参阅使用配置文件部署数据连接器。
若要部署数据连接器代理,请执行以下操作:
下载并运行部署 kickstart 脚本:
对于托管标识,请使用以下命令选项:
wget -O sapcon-sentinel-kickstart.sh https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh && bash ./sapcon-sentinel-kickstart.sh
- 对于由世纪互联运营的 Microsoft Azure,请将
--cloud mooncake
添加到复制命令的末尾。
- 对于由世纪互联运营的 Microsoft Azure,请将
对于已注册的应用程序,运行以下命令,从 Microsoft Sentinel GitHub 存储库下载部署 Kickstart 脚本,并将其标记为可执行文件:
wget https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh chmod +x ./sapcon-sentinel-kickstart.sh
运行脚本,以指定应用程序 ID、机密(“密码”)、租户 ID 和密钥保管库名称(已在前面步骤中复制)。 例如:
./sapcon-sentinel-kickstart.sh --keymode kvsi --appid aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa --appsecret ssssssssssssssssssssssssssssssssss -tenantid bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb -kvaultname <key vault name>
若要配置安全 SNC 配置,请指定以下基本参数:
--use-snc
--cryptolib <path to sapcryptolib.so>
--sapgenpse <path to sapgenpse>
--server-cert <path to server certificate public key>
如果客户端证书采用 .crt 或 .key 格式,请使用以下开关:
--client-cert <path to client certificate public key>
--client-key <path to client certificate private key>
如果客户端证书采用 .pfx 或 .p12 格式,请使用以下开关:
--client-pfx <pfx filename>
--client-pfx-passwd <password>
如果客户端证书是由企业 CA 颁发的,请在信任链中为每个 CA 添加以下开关:
--cacert <path to ca certificate>
例如:
wget https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh chmod +x ./sapcon-sentinel-kickstart.sh --use-snc --cryptolib /home/azureuser/libsapcrypto.so --sapgenpse /home/azureuser/sapgenpse --client-cert /home/azureuser/client.crt --client-key /home/azureuser/client.key --cacert /home/azureuser/issuingca.crt --cacert /home/azureuser/rootca.crt --server-cert /home/azureuser/server.crt
该脚本更新 OS 组件、安装 Azure CLI 和 Docker 软件以及其他必需的实用工具(jq、netcat、curl),并提示你输入配置参数值。 向脚本提供额外参数,从而最大程度地减少提示数量,或对容器部署进行自定义。 有关可用命令行选项的详细信息,请参阅 Kickstart 脚本参考。
按照屏幕上的说明输入 SAP 和密钥保管库详细信息并完成部署。 部署完成后会显示一条确认消息:
The process has been successfully completed, thank you!
记下脚本输出中的 Docker 容器名称。 若要查看 VM 上的 docker 容器列表,请运行:
docker ps -a
在下一步中,你将使用 docker 容器的名称。
部署 SAP 数据连接器代理要求使用“Microsoft Sentinel Business Applications 代理操作员”和“读者”角色向代理的 VM 标识授予特定权限以访问启用了 Microsoft Sentinel 的 Log Analytics 工作区。
若要在此步骤运行命令,必须成为启用了 Microsoft Sentinel 的 Log Analytics 工作区的资源组所有者。 如果你不是工作区的资源组所有者,也可以稍后执行此过程。
将“Microsoft Sentinel Business Applications 代理操作员”和“读取者”角色分配给 VM 的标识:
通过运行以下命令获取代理 ID,并将
<container_name>
占位符替换为使用 kickstart 脚本创建的 docker 容器的名称:docker inspect <container_name> | grep -oP '"SENTINEL_AGENT_GUID=\K[^"]+
例如,返回的代理 ID 可能是
234fba02-3b34-4c55-8c0e-e6423ceb405b
。通过运行以下命令来分配“Microsoft Sentinel Business Applications 代理操作员”和“读者”角色:
az role assignment create --assignee-object-id <Object_ID> --role --assignee-principal-type ServicePrincipal "Microsoft Sentinel Business Applications Agent Operator" --scope /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/microsoft.operationalinsights/workspaces/<WS_NAME>/providers/Microsoft.SecurityInsights/BusinessApplicationAgents/<AGENT_IDENTIFIER> az role assignment create --assignee-object-id <Object_ID> --role --assignee-principal-type ServicePrincipal "Reader" --scope /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/microsoft.operationalinsights/workspaces/<WS_NAME>/providers/Microsoft.SecurityInsights/BusinessApplicationAgents/<AGENT_IDENTIFIER>
按如下所示替换占位符值:
占位符 值 <OBJ_ID>
托管标识对象 ID。
要在 Azure 中查找 VM 标识对象 ID,请执行以下操作:
- 对于托管标识,对象 ID 列在 VM 的“标识”页上。
- 对于服务主体,请转到 Azure 中的企业应用程序。 选择“所有应用程序”,然后选择你的 VM。 对象 ID 显示在“概述”页上。<SUB_ID>
启用了 Microsoft Sentinel 的 Log Analytics 工作区的订阅 ID <RESOURCE_GROUP_NAME>
启用了 Microsoft Sentinel 的 Log Analytics 工作区的资源组名称 <WS_NAME>
启用了 Microsoft Sentinel 的 Log Analytics 工作区的名称 <AGENT_IDENTIFIER>
在上一步中运行命令后显示的代理 ID。 若要将 Docker 容器配置为自动启动,请运行以下命令,并将
<container-name>
占位符替换为容器的名称:docker update --restart unless-stopped <container-name>
部署过程会生成一个 systemconfig.json 文件,其中包含 SAP 数据连接器代理的配置详细信息。 该文件位于 VM 上的 /sapcon-app/sapcon/config/system
目录中。
使用配置文件部署数据连接器
建议使用 Azure Key Vault 来存储身份验证凭据和配置数据。 如果无法使用 Azure Key Vault,此过程介绍了如何改用配置文件部署数据连接器代理容器。
如果使用 SNC,请确保首先已完成准备 kickstart 脚本以便使用 SNC 进行安全通信。
如果使用托管标识或已注册的应用程序,请改为参阅使用托管标识或已注册的应用程序部署数据连接器代理。
若要部署数据连接器代理,请执行以下操作:
创建一个用于部署代理的虚拟机。
将 SAP NetWeaver SDK 传输到要在其中安装代理的计算机。
运行以下命令,从 Microsoft Sentinel GitHub 存储库下载部署 Kickstart 脚本,并将其标记为可执行文件:
wget https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh chmod +x ./sapcon-sentinel-kickstart.sh
运行脚本:
./sapcon-sentinel-kickstart.sh --keymode cfgf
该脚本更新 OS 组件、安装 Azure CLI 和 Docker 软件以及其他必需的实用工具(jq、netcat、curl),并提示你输入配置参数值。 根据需要向脚本提供额外参数,从而最大程度地减少提示数量,或对容器部署进行自定义。 有关详细信息,请参阅 Kickstart 脚本参考。
按照屏幕上的说明输入请求的详细信息并完成部署。 部署完成后会显示一条确认消息:
The process has been successfully completed, thank you!
记下脚本输出中的 Docker 容器名称。 若要查看 VM 上的 docker 容器列表,请运行:
docker ps -a
在下一步中,你将使用 docker 容器的名称。
部署 SAP 数据连接器代理要求使用“Microsoft Sentinel Business Applications 代理操作员”和“读者”角色向代理的 VM 标识授予特定权限以访问启用了 Microsoft Sentinel 的 Log Analytics 工作区。
必须是工作区上的资源组所有者,才能运行此步骤中的命令。 如果你不是工作区的资源组所有者,也可以稍后执行此步骤。
将“Microsoft Sentinel Business Applications 代理操作员”和“读取者”角色分配给 VM 的标识:
通过运行以下命令获取代理 ID,并将
<container_name>
占位符替换为使用 Kickstart 脚本创建的 docker 容器的名称:docker inspect <container_name> | grep -oP '"SENTINEL_AGENT_GUID=\K[^"]+'
例如,返回的代理 ID 可能是
234fba02-3b34-4c55-8c0e-e6423ceb405b
。通过运行以下命令来分配“Microsoft Sentinel Business Applications 代理操作员”和“读者”角色:
az role assignment create --assignee-object-id <Object_ID> --role --assignee-principal-type ServicePrincipal "Microsoft Sentinel Business Applications Agent Operator" --scope /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/microsoft.operationalinsights/workspaces/<WS_NAME>/providers/Microsoft.SecurityInsights/BusinessApplicationAgents/<AGENT_IDENTIFIER> az role assignment create --assignee-object-id <Object_ID> --role --assignee-principal-type ServicePrincipal "Reader" --scope /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/microsoft.operationalinsights/workspaces/<WS_NAME>/providers/Microsoft.SecurityInsights/BusinessApplicationAgents/<AGENT_IDENTIFIER>
按如下所示替换占位符值:
占位符 值 <OBJ_ID>
托管标识对象 ID。
若要在 Azure 中查找 VM 标识对象 ID:对于托管标识,对象 ID 列在 VM 的“标识”页上。 对于服务主体,请转到 Azure 中的企业应用程序。 选择“所有应用程序”,然后选择你的 VM。 对象 ID 显示在“概述”页上。<SUB_ID>
启用了 Microsoft Sentinel 的 Log Analytics 工作区的订阅 ID <RESOURCE_GROUP_NAME>
启用了 Microsoft Sentinel 的 Log Analytics 工作区的资源组名称 <WS_NAME>
启用了 Microsoft Sentinel 的 Log Analytics 工作区的名称 <AGENT_IDENTIFIER>
在上一步中运行命令后显示的代理 ID。
运行以下命令,将 Docker 容器配置为自动启动。
docker update --restart unless-stopped <container-name>
部署过程会生成一个 systemconfig.json 文件,其中包含 SAP 数据连接器代理的配置详细信息。 该文件位于 VM 上的 /sapcon-app/sapcon/config/system
目录中。
准备 kickstart 脚本以便使用 SNC 进行安全通信
此过程介绍如何准备用于配置设置的部署脚本以便使用 SNC 与 SAP 系统进行安全通信。 如果使用 SNC,则必须在部署数据连接器代理之前执行此过程。
若要配置容器以便使用 SNC 进行安全通信,请执行以下操作:
将 libsapcrypto.so 和 sapgenpse 文件传输到要在其中创建容器的系统。
将客户端证书(包括私钥和公钥)传输到要在其中创建容器的系统。
客户端证书和密钥可以是 .p12、.pfx 或 Base64 .crt 和 .key 格式。
将服务器证书(仅限公钥)传输到将在其中创建容器的系统。
服务器证书必须采用 Base64 .crt 格式。
如果客户端证书是由企业证书颁发机构颁发的,请将颁发的 CA 和根 CA 证书传输到将在其中创建容器的系统。
从 Microsoft Sentinel GitHub 存储库中获取 kickstart 脚本:
wget https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh
更改脚本的权限以使其可执行:
chmod +x ./sapcon-sentinel-kickstart.sh
有关详细信息,请参阅适用于 SAP 应用程序数据连接器代理的 Microsoft Sentinel 的 Kickstart 部署脚本参考。
优化 SAP PAHI 表监视(推荐)
要获得监视 SAP PAHI 表的最佳结果,请打开 systemconfig.json 文件进行编辑,并在 [ABAP Table Selector](reference-systemconfig-json.md#abap-table-selector)
部分下启用 PAHI_FULL
和 PAHI_INCREMENTAL
参数。
有关详细信息,请参阅 Systemconfig.json 文件引用和验证 PAHI 表是否定期更新。
检查连接和运行状况
部署 SAP 数据连接器代理后,请检查代理的运行状况和连接情况。 有关详细信息,请参阅监视 SAP 系统的运行状况和角色。
下一步
部署连接器后,继续部署适用于 SAP 应用程序的 Microsoft Sentinel 解决方案内容: