部署和設定裝載SAP數據連接器代理程式的容器

本文說明如何部署裝載 SAP 數據連接器代理程式的容器,以及如何使用它來建立 SAP 系統的連線。 需要此雙步驟程式,才能將 SAP 數據內嵌至 Microsoft Sentinel,做為 SAP 應用程式的 Microsoft Sentinel 解決方案的一部分。

部署容器並建立與 SAP 系統連線的建議方法是透過 Azure 入口網站。 本文會說明這個方法,也會在YouTube上的這段影片中示範。 本文中也顯示的方法,可從命令行呼叫 kickstart 腳本來完成這些目標。

或者,您可以手動部署數據連接器 Docker 容器代理程式,例如在 Kubernetes 叢集中。 如需詳細資訊,請開啟支援票證。

重要

透過 Azure 入口網站 部署容器並建立 SAP 系統的連線目前處於預覽狀態。 Azure 預覽補充條款 包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未發行的版本) 的其他法律條款。

Microsoft Sentinel 是 Microsoft Defender 入口網站中統一安全性作業平臺公開預覽的一部分。 如需詳細資訊,請參閱 Microsoft Defender 入口網站中的 Microsoft Sentinel。

部署里程碑

針對 SAP® 應用程式的 Microsoft Sentinel 解決方案部署分為下列各節:

  1. 部署概觀

  2. 部署必要條件

  3. 跨多個工作區 使用解決方案 (預覽)

  4. 準備 SAP 環境

  5. 設定稽核

  6. 從內容中樞部署適用於 SAP 應用程式的 ® Microsoft Sentinel 解決方案

  7. 部署資料連接器代理程式 (您在這裡

  8. 設定 SAP® 應用程式的 Microsoft Sentinel 解決方案

  9. 選擇性部署步驟

數據連接器代理程式部署概觀

若要讓適用於 SAP 應用程式的 Microsoft Sentinel 解決方案正確運作,您必須先將 SAP 資料放入 Microsoft Sentinel。 若要達成此目的,您必須部署解決方案的 SAP 資料連接器代理程式。

數據連接器代理程式會在 Linux 虛擬機 (VM) 上以容器的形式執行。 此 VM 可以裝載於 Azure、第三方雲端或內部部署。 建議您使用 Azure 入口網站 安裝及設定此容器(預覽版):不過,您可以選擇使用 kickstart 腳本部署容器。 如果您想要手動部署數據連接器 Docker 容器代理程式,例如在 Kubernetes 叢集中,請開啟支援票證以取得詳細數據。

代理程式會連線到您的 SAP 系統,以從中提取記錄和其他數據,然後將這些記錄傳送至您的 Microsoft Sentinel 工作區。 若要這樣做,代理程式必須向 SAP 系統進行驗證,這就是您在上一個步驟中為 SAP 系統中的代理程式建立使用者和角色的原因。

您有幾個選擇可儲存代理程式組態資訊的方式和位置,包括您的 SAP 驗證秘密。 決定要使用哪一個會受到您部署 VM 的位置和決定要使用的 SAP 驗證機制所影響。 這些是選項,依喜好設定的遞減順序:

  • Azure 金鑰保存庫,可透過 Azure 系統指派的受控識別存取
  • Azure 金鑰保存庫,可透過 Microsoft Entra ID registered-application 服務主體存取
  • 純文本 組態檔

針對上述任何案例,您有額外的選項可使用 SAP 的安全網路通訊 (SNC) 和 X.509 憑證進行驗證。 此選項提供較高層級的驗證安全性,但在一組有限的案例中,它只是一個實用選項。

部署資料連接器代理程式容器包含下列步驟:

  1. 建立虛擬機並設定 SAP 系統認證的存取權。 此程式可能必須由您組織中的另一個小組執行,但必須在本文中的其他程式之前執行。

  2. 設定及部署數據連接器代理程式

  3. 設定代理程式以連線到 SAP 系統。

必要條件

部署數據連接器代理程式之前,請確定已就緒所有部署必要條件。 如需詳細資訊,請參閱 部署適用於 SAP 應用程式的 Microsoft Sentinel 解決方案的必要條件。

此外,如果您打算使用安全網路通訊 (SNC) 透過安全連線內嵌 NetWeaver/ABAP 記錄,請採取相關的準備步驟。 如需詳細資訊,請參閱 使用 SNC 部署 Microsoft Sentinel for SAP 數據連接器。

建立虛擬機並設定認證存取權

在理想情況下,您的 SAP 組態和驗證秘密可以且應該儲存在 Azure 金鑰保存庫 中。 存取金鑰儲存庫的方式取決於您的 VM 部署位置:

  • Azure VM 上的容器可以使用 Azure 系統指派的受控識別,順暢地存取 Azure 金鑰保存庫。

    如果系統指派的受控識別無法使用,容器也可以使用 Microsoft Entra ID registered-application 服務主體向 Azure 金鑰保存庫 進行驗證,或作為組態檔的最後手段

  • 內部部署 VM 上的容器或第三方雲端環境中的 VM 無法使用 Azure 受控識別,但可以使用 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": "westeurope",
      "macAddress": "00-11-22-33-44-55",
      "powerState": "VM running",
      "privateIpAddress": "192.168.136.5",
      "publicIpAddress": "",
      "resourceGroup": "resourcegroupname",
      "zones": ""
    }
    
  2. 複製 systemAssignedIdentity GUID,因為它將在後續步驟中使用。 這是您的 受控識別

建立金鑰保存庫

此程式描述如何建立金鑰保存庫來儲存代理程式組態資訊,包括您的 SAP 驗證秘密。 如果您要使用現有的金鑰保存庫,請直接跳至 步驟 2

若要建立金鑰儲存庫

  1. 執行下列命令,以取代值的實際名稱 <placeholder>

    az keyvault create \
      --name <KeyVaultName> \
      --resource-group <KeyVaultResourceGroupName>
    
  2. 複製金鑰保存庫的名稱及其資源群組的名稱。 當您指派金鑰保存庫存取許可權,並在後續步驟中執行部署腳本時,您將需要這些許可權。

指派金鑰保存庫存取許可權

  1. 在您的金鑰保存庫中,將下列 Azure 角色型存取控制或儲存庫存取原則許可權指派給您稍早建立和複製的身分識別。

    權限模型 需要的權限
    Azure 角色型存取控制 \(部分機器翻譯\) Key Vault 祕密使用者
    保存庫存取原則 get, list

    使用入口網站中的選項來指派許可權,或執行下列其中一個命令,將密鑰保存庫秘密許可權指派給您的身分識別,並取代值的實際名稱 <placeholder> 。 選取您所建立身分識別類型的索引標籤。

    視您慣用的 金鑰保存庫 許可權模型而定,執行下列其中一個命令,將密鑰保存庫秘密許可權指派給 VM 的系統指派受控識別。 命令中指定的原則可讓 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 祕密員
    保存庫存取原則 get、 、 listsetdelete

    使用入口網站中的選項來指派許可權,或執行下列其中一個命令,將密鑰保存庫秘密許可權指派給使用者,並取代值的實際名稱 <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 系統。

  1. 以具有 sudo 許可權的使用者身分登入您要安裝代理程式的新建立 VM

  2. 將 SAP NetWeaver SDK 下載或傳輸至電腦。

根據您使用受控識別或已註冊的應用程式來存取金鑰保存庫,以及您是否使用 Azure 入口網站 或命令行來部署代理程式,使用下列其中一組程式:

提示

Azure 入口網站 只能與 Azure 金鑰保存庫搭配使用。 如果您改用組態檔,請使用相關的 命令行選項

Azure 入口網站 選項 (預覽)

根據您用來存取金鑰保存庫的身分識別類型,選取下列其中一個索引標籤。

注意

如果您先前手動安裝 SAP 連接器代理程式或使用 kickstart 腳本,則無法在 Azure 入口網站 中設定或管理這些代理程式。 如果您想要使用入口網站來設定和更新代理程式,您必須使用入口網站重新安裝現有的代理程式。

此程式描述如何透過 Azure 入口網站 建立新的代理程式,並使用受控識別進行驗證:

  1. 從 Microsoft Sentinel 導覽功能表中,選取 [數據連接器]。

  2. 在搜尋列中,輸入 SAP

  3. 從搜尋結果中選取 [適用於 SAP 的 Microsoft Sentinel],然後選取 [ 開啟連接器] 頁面

  4. 若要從 SAP 系統收集數據,您必須遵循下列兩個步驟:

    1. 建立新的代理程式
    2. 將代理程式 連線 至新的 SAP 系統

建立新的代理程式

  1. 在 [組態] 區域中,選取 [新增代理程式][預覽]。

    新增 SAP API 型收集器代理程式的指示螢幕快照。

  2. 右側的 [建立收集器代理程式 ] 下,定義代理程式詳細數據:

    名稱 描述
    代理程式名稱 輸入代理程式名稱,包括下列任何字元:
    • a-z
    • A-Z
    • 0-9
    • _ (底線)
    • . (period)
    • - (虛線)
    訂用帳戶 / 金鑰保存庫 從各自的下拉式清單中選取 [ 用帳戶] 和 [金鑰保存庫 ]。
    代理程式 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連結庫的路徑。
    對 Azure 金鑰保存庫 的驗證 若要使用受控識別向密鑰保存庫進行驗證,請保留已選取預設 的 [受控識別 ] 選項。

    您必須事先設定受控識別。 如需詳細資訊,請參閱 建立虛擬機並設定認證存取權。

    注意

    如果您想要使用SNC連線,請務必在此階段選取 [ 啟用 SNC 連線支援 ],因為您無法在完成部署代理程式之後返回並啟用 SNC 連線。 如需詳細資訊,請參閱 使用 SNC 部署 Microsoft Sentinel for SAP 數據連接器。

    例如:

    [建立收集器代理程式] 區域的螢幕快照。

  3. 選取 [建立 ] 並檢閱建議,再完成部署:

    代理程式部署最後階段的螢幕快照。

  4. 部署 SAP 數據連接器代理程式時,您必須使用 Microsoft Sentinel Business Applications Agent 操作員 角色,將代理程式的 VM 身分識別授與 Microsoft Sentinel 工作區的特定許可權。

    若要在此步驟中執行命令,您必須是 Microsoft Sentinel 工作區上的資源群組擁有者。 如果您不是工作區上的資源群組擁有者,也可以在代理程式部署完成之後執行此程式。

    從步驟 1 複製角色指派命令,並在代理程式 VM 上執行,並以Object_ID您的 VM 身分識別物件識別元取代佔位元。 例如:

    步驟 1 中命令複製圖示的螢幕快照。

    若要在 Azure 中尋找您的 VM 身分識別物件識別碼,請移至企業應用程式>[所有應用程式],然後選取您的 VM 名稱。 複製 [物件識別符] 字段的值,以搭配您複製的命令使用。

    此命令會將 Microsoft Sentinel Business Applications Agent 操作員 Azure 角色指派給 VM 的受控識別,包括工作區中指定代理程式數據的範圍。

    重要

    透過 CLI 指派 Microsoft Sentinel Business Applications Agent 操作員角色,只會在工作區中指定代理程式數據的範圍上指派角色。 這是最安全的,因此建議的選項。

    如果您必須透過 Azure 入口網站 指派角色,建議您在小型範圍上指派角色,例如只在 Microsoft Sentinel 工作區上指派角色。

  5. 在步驟 2 中選取 [代理程式] 命令旁的 [複製複製圖示的螢幕快照。]。 例如:

    步驟 2 中要複製的 Agent 命令螢幕快照。

  6. 複製命令行之後,請選取 [ 關閉]。

    相關的代理程式資訊會部署到 Azure 金鑰保存庫,而且新的代理程式會顯示在 [新增 API 型收集器代理程式] 下方的數據表中。

    在這個階段,代理程式的健康狀態為「未完成安裝」。請遵循指示」。 成功安裝代理程式之後,狀態會變更為 [代理程序狀況良好]。 此更新最多可能需要 10 分鐘的時間。 例如:

    SAP 資料連接器頁面上 API 型收集器代理程式健康情況狀態的螢幕快照。

    注意

    數據表只會針對您透過 Azure 入口網站 部署的代理程式顯示代理程式名稱和健全狀態。 此處不會顯示使用命令行部署的代理程式。

  7. 在您打算安裝代理程式的 VM 上,開啟終端機,然後執行 您在上一個步驟中複製的 Agent 命令

    腳本會更新 OS 元件,並安裝 Azure CLI、Docker 軟體和其他必要公用程式,例如 jq、netcat 和 curl。

    視需要將其他參數提供給腳本,以自定義容器部署。 如需可用命令行選項的詳細資訊,請參閱 Kickstart 腳本參考

    如果您需要再次複製命令,請選取 [健全狀況] 資料行右邊的 [檢視檢視標的螢幕快照。],並將命令複製到右下方的 Agent 命令旁。

連線 至新的SAP系統

任何將新連線新增至 SAP 系統的人都必須具有儲存 SAP 認證之密鑰保存庫的寫入許可權。 如需詳細資訊,請參閱 建立虛擬機並設定認證存取權。

  1. 在 [組態] 區域中,選取 [新增系統][預覽]。

    [新增系統] 區域的螢幕快照。

  2. 在 [選取代理程式] 下,選取您在上一個步驟中建立的代理程式。

  3. 在 [系統識別符] 底下,選取伺服器類型並提供伺服器詳細數據。

  4. 選取 [下一步:驗證]

  5. 如需基本身份驗證,請提供用戶和密碼。 如果您在設定代理程式時選取 SNC 連線,請選取 [SNC],並提供憑證詳細數據。

  6. 選取 [ 下一步:記錄]。

  7. 選取您要從 SAP 提取的記錄,然後選取 [ 下一步:檢閱和建立]。

  8. 檢閱您定義的設定。 選取 [上一頁 ] 以修改任何設定,或選取 [ 部署 ] 以部署系統。

  9. 您定義的系統組態會部署到 Azure 金鑰保存庫。 您現在可以在 [設定 SAP 系統] 下方 的數據表中看到系統詳細數據,並將它指派給收集器代理程式。 下表顯示您透過 Azure 入口網站 或其他方法新增之系統的相關聯代理程式名稱、SAP 系統識別碼(SID)和健全狀況狀態。

    在這個階段,系統的 健全 狀況狀態為 [ 擱置]。 如果代理程式已成功更新,它會從 Azure Key Vault 提取設定,而狀態會變更為 [系統狀況良好]。 此更新最多可能需要 10 分鐘的時間。

    深入瞭解如何 監視 SAP 系統健康情況

命令列選項

根據您用來存取金鑰保存庫的身分識別類型,選取下列其中一個索引標籤:

使用命令行建立新的代理程式,並使用受控識別進行驗證:

  1. 下載並執行部署 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
    
    • 針對由 21Vianet 運作的 Microsoft Azure,請將 新增 --cloud mooncake 至複製命令的結尾。

    • 針對 Azure Government - US,請將 新增 --cloud fairfax 至複製命令的結尾。

    腳本會更新 OS 元件、安裝 Azure CLI 和 Docker 軟體和其他必要公用程式(jq、netcat、curl),並提示您輸入組態參數值。 您可以為腳本提供其他參數,以將提示數目降到最低,或自定義容器部署。 如需可用命令行選項的詳細資訊,請參閱 Kickstart 腳本參考

  2. 請遵循畫面上的指示 ,輸入您的 SAP 和金鑰保存庫詳細數據,並完成部署。 部署完成時,會顯示確認訊息:

    The process has been successfully completed, thank you!
    

    記下腳本輸出中的 Docker 容器名稱。 若要查看 VM 上的 Docker 容器清單,請執行:

    docker ps -a
    

    您將在下一個步驟中使用 Docker 容器的名稱。

  3. 部署 SAP 數據連接器代理程式時,您必須使用 Microsoft Sentinel Business Applications Agent 操作員 角色,將代理程式的 VM 身分識別授與 Microsoft Sentinel 工作區的特定許可權。

    若要在此步驟中執行命令,您必須是 Microsoft Sentinel 工作區上的資源群組擁有者。 如果您不是工作區上的資源群組擁有者,稍後也可以執行此程式。

    Microsoft Sentinel Business Applications Agent 操作員 角色指派給 VM 的身分識別:

    1. 執行下列命令以取得代理程式識別碼,並將 佔位元元取代 <container_name> 為您以 Kickstart 腳本建立的 Docker 容器名稱:

      docker inspect <container_name> | grep -oP '"SENTINEL_AGENT_GUID=\K[^"]+
      

      例如,傳回的代理程式識別碼可能是 234fba02-3b34-4c55-8c0e-e6423ceb405b

    2. 執行下列命令, 以指派 Microsoft Sentinel Business Applications Agent 操作員

    az role assignment create --assignee <OBJ_ID> --role "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>
    

    取代佔位元值,如下所示:

    預留位置
    <OBJ_ID> 您的 VM 身分識別物件識別碼。

    若要在 Azure 中尋找您的 VM 身分識別物件識別碼,請移至企業應用程式>[所有應用程式],然後選取您的 VM 名稱。 複製 [物件識別符] 字段的值,以搭配您複製的命令使用。
    <SUB_ID> 您的 Microsoft Sentinel 工作區訂用帳戶標識碼
    <RESOURCE_GROUP_NAME> 您的 Microsoft Sentinel 工作區資源組名
    <WS_NAME> 您的 Microsoft Sentinel 工作區名稱
    <AGENT_IDENTIFIER> 在上一個步驟執行 命令之後顯示的代理程式識別碼。
  4. 若要將 Docker 容器設定為自動啟動,請執行下列命令,將 <container-name> 佔位元取代為您的容器名稱:

    docker update --restart unless-stopped <container-name>
    

下一步

部署連接器之後,請繼續部署適用於 SAP® 應用程式內容的 Microsoft Sentinel 解決方案:

如需檢查 SAP 連接器健康情況和連線能力的指導,請參閱 Microsoft Security Community YouTube 頻道上的YouTube 影片