你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
从命令行部署 SAP 数据连接器代理
本文提供了用于部署 SAP 数据连接器代理的命令行选项。 对于一般的部署,我们建议使用门户而不是命令行,因为通过命令行安装的数据连接器代理只能通过命令行进行管理。
但是,如果使用的是配置文件而不是 Azure Key Vault 来存储凭据,或者如果你是一名高级用户,想要在 Kubernetes 群集等位置手动部署数据连接器,请改用本文中的过程。
虽然可以在单台计算机上运行多个数据连接器代理,但建议先从一个代理开始,监视性能,然后慢慢增加连接器数。 我们还建议安全团队在 SAP BASIS 团队的帮助下执行此过程。
注意
本文仅适用于数据连接器代理,不适用于 SAP 无代理解决方案(受限预览版)。
先决条件
在部署数据连接器之前,请确保创建虚拟机并配置对凭据的访问权限。
如果使用 SNC 进行安全连接,请确保 SAP 系统已正确配置,然后在部署数据连接器代理之前准备 kickstart 脚本以便使用 SNC 进行安全通信。
有关详细信息,请参阅 SAP 文档和开始使用 SAP SNC 实现 RFC 集成 - SAP 博客。
使用托管标识或已注册的应用程序部署数据连接器代理
此过程介绍如何创建新的代理并通过命令行将其连接到 SAP 系统,使用托管标识或已注册 Microsoft Entra ID 的应用程序进行身份验证。
如果使用 SNC,请确保首先已完成准备 kickstart 脚本以便使用 SNC 进行安全通信。
如果使用配置文件来存储凭据,请改为参阅使用配置文件部署数据连接器。
若要部署数据连接器代理,请执行以下操作:
下载并运行部署 kickstart 脚本:
对于托管标识,请使用以下命令选项之一:
对于 Azure 公有商业云:
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
添加到复制命令的末尾。对于 Azure 政府版 - 美国,请将
--cloud fairfax
添加到复制命令的末尾。
对于已注册的应用程序,运行以下命令,从 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 解决方案内容: