SAP データ コネクタ エージェントをホストしてるコンテナーをデプロイして構成する
この記事では、SAP データ コネクタ エージェントをホストするコンテナーをデプロイする方法と、それを使って SAP システムへの接続を作成する方法について説明します。 この 2 ステップのプロセスは、SAP アプリケーション向け Microsoft Sentinel ソリューションの一部として、SAP データを Microsoft Sentinel に取り込むために必要です。
コンテナーをデプロイして SAP システムへの接続を作成するには、Azure portal を使うことをお勧めします。 記事で説明しているこの方法については、YouTube のこちらのビデオでデモをご覧いただくこともできます。 また、この記事では、コマンド ラインから kickstart スクリプトを呼び出して、これらの目標を達成する方法も示します。
または、データ コネクタ Docker コンテナー エージェントを手動で Kubernetes クラスターなどにデプロイすることもできます。 詳細については、サポート チケットを開いてください。
重要
Azure portal を使ってコンテナーをデプロイし、SAP システムへの接続を作成する機能は、現在プレビュー段階です。 Azure プレビューの追加使用条件には、ベータ版、プレビュー版、またはまだ一般提供されていない Azure 機能に適用される追加の法律条項が含まれています。
Microsoft Sentinel は Microsoft Defender ポータルの Microsoft 統合セキュリティ オペレーション プラットフォーム内での一般提供を開始しました。 詳細については、「Microsoft Defender ポータルの Microsoft Sentinel」を参照してください。
デプロイのマイルストーン
SAP® アプリケーション向け Microsoft Sentinel ソリューションのデプロイは、次のセクションに分かれています。
複数のワークスペースでソリューションを操作する (プレビュー)
データ コネクタ エージェントをデプロイする ("現在はここです")
コンテンツ ハブから SAP アプリケーション®向け Microsoft Sentinel ソリューションをデプロイする
オプションのデプロイ手順
データ コネクタ エージェントのデプロイの概要
SAP アプリケーション向け Microsoft Sentinel ソリューションが正しく動作するには、最初に SAP データを Microsoft Sentinel に取り込む必要があります。 これを達成するために、ソリューションの SAP データ コネクタ エージェントをデプロイする必要があります。
データ コネクタ エージェントは、Linux 仮想マシン (VM) 上でコンテナーとして実行されます。 この VM は、Azure、サード パーティのクラウド、またはオンプレミスのいずれかでホストできます。 Azure portal を使って、このコンテナーのインストールと構成を行うことをお勧めします (プレビュー段階)。ただし、kickstart スクリプトを使ってコンテナーをデプロイすることもできます。 Kubernetes クラスターなどに、データ コネクタ Docker コンテナー エージェントを手動でデプロイしたい場合は、サポート チケットを開いて詳細を確認してください。
エージェントは、SAP システムに接続してそこからログとその他のデータをプルし、次にそれらのログを Microsoft Sentinel ワークスペースに送信します。 これを行うには、エージェントは SAP システムに対して認証を行う必要があります。そのために、前のステップで SAP システムにエージェントのユーザーとロールを作成しました。
SAP 認証シークレットなど、エージェントの構成情報を格納する方法と場所には、いくつかの選択肢があります。 どれを使うかは、VM をデプロイする場所と、使用する SAP 認証メカニズムによって、影響を受ける可能性があります。 オプションは次のとおりです (優先順位の高いものから順に示しています)。
- Azure Key Vault (Azure システム割り当てマネージド ID を使ってアクセス)
- Azure Key Vault (Microsoft Entra ID 登録済みアプリケーション サービス プリンシパルを使ってアクセス)
- プレーンテキストの構成ファイル
どのシナリオでも、SAP の Secure Network Communication (SNC) 証明書と X.509 証明書を使って認証を行う追加のオプションがあります。 このオプションを使うと、より高いレベルの認証セキュリティが提供されますが、限られた一連のシナリオにおいてのみ実用的なオプションです。
データ コネクタ エージェント コンテナーのデプロイは、次の手順で行います。
仮想マシンを作成し、SAP システムの資格情報へのアクセスを設定します。 この手順は、組織内の別のチームが行う必要があるかもしれませんが、この記事の他の手順より前に実行する必要があります。
前提条件
データ コネクタ エージェントをデプロイする前に、デプロイのすべての前提条件が満たされていることを確認してください。 詳しくは、「SAP アプリケーション用の Microsoft Sentinel ソリューションをデプロイするための前提条件」をご覧ください。
また、Secure Network Communications (SNC) を使ってセキュリティ保護された接続経由で NetWeaver/ABAP ログを取り込む場合は、関連する準備手順を実行します。 詳しくは、「SNC を使用して Microsoft Sentinel for SAP データ コネクタをデプロイする」をご覧ください。
仮想マシンを作成し、資格情報へのアクセスを構成する
SAP の構成と認証シークレットは、Azure Key Vault に格納するのが理想的です。 キー コンテナーへのアクセス方法は、VM がデプロイされている場所によって異なります。
Azure VM 上のコンテナーでは、Azure システム割り当てマネージド ID を使用して、Azure Key Vault にシームレスにアクセスできます。
システム割り当てマネージド ID を使用できない場合は、Azure Key Vault に対するコンテナーの認証を、Microsoft Entra ID 登録済みアプリケーション サービス プリンシパルを使って、または最後の手段として構成ファイルを使って、行うこともできます。
オンプレミス VM 上のコンテナーまたはサード パーティのクラウド環境内の VM では、Azure マネージド ID は使用できませんが、Microsoft Entra ID 登録済みアプリケーション サービス プリンシパルを使って Azure Key Vault に対する認証を行うことができます。
何らかの理由で登録済みアプリケーション サービス プリンシパルを使用できない場合、構成ファイルを使用できますが、これはお勧めしません。
Note
この手順は、組織内の別のチームが行う必要があるかもしれませんが、この記事の他の手順より前に実行する必要があります。
認証資格情報と構成データの格納とアクセスのために計画している方法に応じて、次のいずれかのタブを選んでください。
Azure VM でマネージド ID を作成する
次のコマンドを実行して 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": "" }
systemAssignedIdentity GUID をコピーします。これは後の手順で使用します。 これは、ご自分のマネージド ID です。
Key Vault を作成します
この手順では、SAP 認証シークレットなどのエージェント構成情報を格納するキー コンテナーを作成する方法について説明します。 既存のキー コンテナーを使う場合は、ステップ 2 にこのまま進んでください。
キー コンテナーを作成するには:
<placeholder>
の値を実際の名前に置き換えて、次のコマンドを実行します。az keyvault create \ --name <KeyVaultName> \ --resource-group <KeyVaultResourceGroupName>
キー コンテナーの名前と、そのリソース グループの名前をコピーしておきます。 次の手順でキー コンテナーのアクセス許可を割り当て、デプロイ スクリプトを実行するときに、これらが必要になります。
キー コンテナーのアクセス許可を割り当てる
キー コンテナーで、前に作成してコピーしたID に、次の Azure ロールベースのアクセス制御またはコンテナー アクセス ポリシーのアクセス許可を、シークレットのスコープで割り当てます。
権限モデル 必要なアクセス許可 Azure ロールベースのアクセス制御 Key Vault Secrets User コンテナー アクセス ポリシー get
、list
ポータルのオプションを使ってアクセス許可を割り当てるか、次のいずれかのコマンドを実行してキー コンテナー シークレットのアクセス許可を ID に割り当てます (
<placeholder>
の値を実際の名前に置き換えます)。 作成した ID の種類のタブを選んでください。好みの Key Vault アクセス許可モデルに応じて、次のいずれかのコマンドを実行し、キー コンテナー シークレットのアクセス許可を VM のシステム割り当てマネージド ID に割り当てます。 コマンドで指定されたポリシーを使って、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
同じキー コンテナーで、データ コネクタ エージェントを構成しているユーザーに、次の Azure ロールベースのアクセス制御またはコンテナー アクセス ポリシーのアクセス許可を、シークレットのスコープで割り当てます。
権限モデル 必要なアクセス許可 Azure ロールベースのアクセス制御 Key Vault Secrets Officer コンテナー アクセス ポリシー get
、list
、set
,delete
ポータルのオプションを使ってアクセス許可を割り当てるか、次のいずれかのコマンドを実行してキー コンテナー シークレットのアクセス許可をユーザーに割り当てます (
<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 システムに接続することです。
sudo 特権を持つユーザーとして、エージェントをインストールしている新しく作成した VM にサインインします。
マシンに SAP NetWeaver SDK をダウンロードまたは転送します。
マネージド ID または登録済みアプリケーションのどちらを使ってキー コンテナーにアクセスしているか、およびエージェントのデプロイに Azure portal またはコマンド ラインのどちらを使っているかに応じて、次のいずれかの手順を使います。
ヒント
Azure portal は、Azure キー コンテナーでのみ使用できます。 代わりに構成ファイルを使っている場合は、関連するコマンド ライン オプションを使います。
Azure portal のオプション (プレビュー)
キー コンテナーへのアクセスに使っている ID の種類に応じて、次のいずれかのタブを選んでください。
Note
前に SAP コネクタ エージェントを手動でインストールした場合、または kickstart スクリプトを使っている場合は、Azure portal でそれらのエージェントを構成または管理することはできません。 ポータルを使ってエージェントを構成および更新する場合は、ポータルを使って既存のエージェントを再インストールする必要があります。
この手順では、Azure portal を使い、マネージド ID で認証を行って、新しいエージェントを作成する方法について説明します。
Microsoft Sentinel のナビゲーション メニューから、 [データ コネクタ] を選択します。
検索バーに「SAP」と入力します。
検索結果から Microsoft Sentinel for SAP を選んで、[コネクタ ページを開く] を選びます。
SAP システムからデータを収集するには、次の 2 つのステップのようにする必要があります。
新しいエージェントを作成する
[Configuration] 領域で、[Add new agent (Preview)] を選択します。
右側の [Create a collector agent] で、エージェントの詳細を設定します。
名前 説明 エージェント名 エージェント名を入力します。次のどの文字でも使用できます。 - a-z
- A-Z
- 0-9
- _ (アンダースコア)
- 。 (ピリオド)
- - (ダッシュ)
サブスクリプション / キー コンテナー それぞれのドロップダウンから [サブスクリプション] と [キー コンテナー] を選びます。 エージェント VM 上の NWRFC SDK zip ファイル パス SAP NetWeaver リモート関数呼び出し (RFC) ソフトウェア開発キット (SDK) アーカイブ (.zip ファイル) が含まれる VM 内のパスを入力します。
このパスに、構文<path>/NWRFC<version number>.zip
の SDK バージョン番号が含まれていることを確認します。 (例:/src/test/nwrfc750P_12-70002726.zip
)。SNC 接続サポートを有効にする Secure Network Communications (SNC) を使ってセキュリティ保護された接続経由で NetWeaver/ABAP ログを取り込むことを選びます。
このオプションを選ぶ場合は、sapgenpse
バイナリとlibsapcrypto.so
ライブラリが含まれるパスを、[エージェント VM 上の SAP 暗号化ライブラリ パス] に入力します。Azure Key Vault に対する認証 マネージド ID を使ってキー コンテナーに対する認証を行うには、既定で選ばれる [マネージド ID] オプションのままにします。
事前にマネージド ID を設定しておく必要があります。 詳しくは、「仮想マシンを作成し、資格情報へのアクセスを構成する」をご覧ください。Note
SNC 接続を使う場合は、エージェントのデプロイを終えた後で戻って SNC 接続を有効にすることはできないため、この段階で [SNC 接続サポートを有効にする] を選んでください。 詳しくは、「SNC を使用して Microsoft Sentinel for SAP データ コネクタをデプロイする」をご覧ください。
次に例を示します。
[Create] を選択し、デプロイを完了する前にレコメンデーションを確認します。
SAP データ コネクタ エージェントをデプロイするには、Microsoft Sentinel Business Applications エージェント オペレーターと閲覧者のロールを使って、Microsoft Sentinel ワークスペースへの特定のアクセス許可を、エージェントの VM ID に付与する必要があります。
このステップでコマンドを実行するには、Microsoft Sentinel ワークスペースのリソース グループ所有者である必要があります。 ワークスペースのリソース グループ所有者でない場合は、エージェントのデプロイが完了した後でこの手順を実行することもできます。
ステップ 1 からロールの割り当てコマンドをコピーし、
Object_ID
プレースホルダーを VM ID のオブジェクト ID に置き換えて、エージェント VM で実行します。 次に例を示します。Azure で VM ID のオブジェクト ID を確認するには、[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動して、VM の名前を選びます。 コピーしたコマンドで使うため、[オブジェクト ID] フィールドの値をコピーします。
このコマンドは、Microsoft Sentinel Business Applications エージェント オペレーターと閲覧者の Azure ロールを、VM のマネージド ID に割り当てます。これは、ワークスペース内の指定されたエージェントのデータのスコープのみが対象です。
重要
CLI 経由で Microsoft Sentinel Business Applications エージェント オペレーター ロールと閲覧者ロールを割り当てると、ワークスペース内の指定されたエージェントのデータのスコープに対してのみ、ロールが割り当てられます。 これは最も安全であるため、推奨されるオプションです。
Azure portal 経由でロールを割り当てる必要がある場合は、Microsoft Sentinel ワークスペースのみなどの小さなスコープでロールを割り当てることをお勧めします。
ステップ 2 のエージェント デプロイ コマンドの横にある [コピー]
を選びます。 次に例を示します。
コマンド ラインをコピーした後、[閉じる] を選びます。
関連するエージェント情報が Azure Key Vault に展開され、新しいエージェントが [Add an API based collector agent] の下の表に表示されます。
この段階では、エージェントの [正常性] 状態は、[インストールが完了していません。指示に従ってください] です。 エージェントが正常にインストールされると、状態が [エージェントは正常] に変わります。 更新には最大で 10 分かかります。 次に例を示します。
Note
この表には、Azure portal を使ってデプロイしたエージェントのエージェント名と正常性状態のみが表示されます。 コマンド ラインを使ってデプロイされたエージェントは、ここには表示されません。
エージェントをインストールする VM でターミナルを開き、前のステップでコピーしたエージェント デプロイ コマンドを実行します。
このスクリプトは、OS のコンポーネントを更新し、Azure CLI、Docker ソフトウェア、その他の必要なユーティリティ (jq、netcat、curl など) をインストールします。
必要に応じてスクリプトに追加のパラメーターを指定し、コンテナーのデプロイをカスタマイズします。 使用可能なコマンド ライン オプションの詳細については、「Kickstart スクリプト リファレンス」を参照してください。
コマンドをもう一度コピーする必要がある場合は、[正常性] 列の右にある [表示]
を選択し、右下のエージェント デプロイ コマンドの横にあるコマンドをコピーします。
新しい SAP システムに接続する
SAP システムへの新しい接続を追加するすべてのユーザーは、SAP 資格情報が格納されているキー コンテナーに対する書き込みアクセス許可を持っている必要があります。 詳しくは、「仮想マシンを作成し、資格情報へのアクセスを構成する」をご覧ください。
[Configuration] 領域で、[Add new system (Preview)] を選択します。
[Select an agent] で、前の手順で作成したエージェントを選択します。
[System identifier] で、サーバーの種類を選択し、サーバーの詳細を指定します。
[次へ: 認証] を選択します。
基本認証の場合は、ユーザーとパスワードを入力します。 エージェントの設定時に SNC 接続を選択した場合は、[SNC] を選択し、証明書の詳細を入力します。
[Next: Logs] を選択します。
SAP からプルするログを選択し、[Next: Review and create] を選択します。
指定した設定を確認します。 [戻る] を選んで設定を変更するか、[デプロイ] を選んでシステムをデプロイします。
設定したシステム構成は、Azure Key Vault に展開されます。 システムの詳細が [Configure an SAP system and assign it to a collector agent] の下の表に表示されます。 この表には、Azure portal または別の方法を使って追加したシステムに関連付けられているエージェント名、SAP システム ID (SID)、正常性状態が表示されます。
この段階では、システムの [Health] 状態は [Pending] になっています。 エージェントが正常に更新されると、Azure Key Vault から構成がプルされ、状態が [System healthy] に変わります。 更新には最大で 10 分かかります。
SAP システムの正常性を監視する方法の詳細はこちらを参照してください。
コマンドライン オプション
キー コンテナーへのアクセスに使っている ID の種類に応じて、次のいずれかのタブを選んでください。
コマンド ラインを使って新しいエージェントを作成し、マネージド ID で認証を行います。
デプロイ 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 スクリプト リファレンス」を参照してください。
画面の指示に従って SAP とキー コンテナーの詳細を入力し、デプロイを完了します。 デプロイが完了すると、次の確認メッセージが表示されます。
The process has been successfully completed, thank you!
スクリプト出力の Docker コンテナー名を書き留めます。 VM 上の Docker コンテナーの一覧を表示するには、次を実行します。
docker ps -a
次のステップでは、Docker コンテナーの名前を使います。
SAP データ コネクタ エージェントをデプロイするには、Microsoft Sentinel Business Applications エージェント オペレーターと閲覧者のロールを使って、Microsoft Sentinel ワークスペースへの特定のアクセス許可を、エージェントの VM ID に付与する必要があります。
このステップでコマンドを実行するには、Microsoft Sentinel ワークスペースのリソース グループ所有者である必要があります。 ワークスペースのリソース グループ所有者でない場合は、後でこの手順を実行することもできます。
Microsoft Sentinel Business Applications エージェント オペレーターと閲覧者のロールを VM の ID に割り当てます。
次のコマンドを実行してエージェント ID を取得します。
<container_name>
プレースホルダーは、Kickstart スクリプトで作成した Docker コンテナーの名前に置き換えます。docker inspect <container_name> | grep -oP '"SENTINEL_AGENT_GUID=\K[^"]+
たとえば、
234fba02-3b34-4c55-8c0e-e6423ceb405b
のようなエージェント ID が返されます。次のコマンドを実行して、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>
プレースホルダーの値を次のように置き換えます。
プレースホルダー Value <OBJ_ID>
VM ID のオブジェクト ID。
Azure で VM ID のオブジェクト ID を確認するには、[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動して、VM の名前を選びます。 コピーしたコマンドで使うため、[オブジェクト ID] フィールドの値をコピーします。<SUB_ID>
Microsoft Sentinel ワークスペースのサブスクリプション ID <RESOURCE_GROUP_NAME>
Microsoft Sentinel ワークスペースのリソース グループ名 <WS_NAME>
Microsoft Sentinel ワークスペースの名前 <AGENT_IDENTIFIER>
前のステップでコマンドを実行した後に表示されたエージェント ID。 Docker コンテナーが自動的に起動するように構成するには、次のコマンドを実行します。
<container-name>
プレースホルダーは、コンテナーの名前に置き換えます。docker update --restart unless-stopped <container-name>
次のステップ
コネクタがデプロイされたら、SAP® 向け Microsoft Sentinel ソリューション アプリケーションのコンテンツのデプロイに進みます。
SAP コネクタの正常性と接続性の確認に関するガイダンスについては、Microsoft Security Community YouTube チャンネルの YouTube ビデオをご覧ください。