1
0

Microsoft Sentinel の Salesforce Service Cloud データコネクターの送信元 IP アドレスを固定する!

Last updated at Posted at 2024-05-31

はじめに

Microsoft Sentinel の Salesforce Service Cloud データコネクターにて Salesforce Service Cloud のイベントモニタリングログ収集する機能が提供されています。データコネクターは Azure Functions のアプリケーションとして提供されますが、アプリケーション実行される送信元 IP アドレスが毎回変わる動作になっています。

image.png

Azure Functions は East US に展開しましたが、送信元 IP アドレスの場所として、United States だけでなく Germany や United Kingdom となっているものもあります。
そのため、今回は Azure Functions が REST API リクエストを送信する送信元 IP アドレスを固定化してみます!

Azure Functions の従量課金プラン

Salesforce Service Cloud データコネクターの Azure Functions は使用量ベースの従量課金プランで展開されます。
従量課金プランは、アプリケーション実行時に利用可能な IP アドレスを使って通信を行う仕様になっています。利用可能な IP アドレスは複数あり、アプリケーション実行毎に異なる IP アドレスがアサインされます。

image.png

情報
使用量プランでは AppService プランが Y1 と表示されます。

image.png

従量課金プランでは VNET 統合を利用できないため、送信元 IP アドレスをコントロールすることができません。
Flex 従量課金プラン (プレビュー) では VNET 統合をサポートしていますが、2024年5月時点では東日本リージョンは対象外になっています。

image.png

そのため、VNET 統合をサポートする Premium プランでデータコネクタを展開して送信元 IP アドレスを固定化してみます。

Azure Functions の料金プラン

Azure Functions の料金プランは、アプリケーションを実行した回数で課金する使用量課金と、アプリケーションを実行するコンピューティングリソースの vCPU やメモリの使用時間に対して課金する Premium プランの課金体系で提供されています。

Salesforce Service Cloud データコネクタ

Microsoft Sentinel のデータコネクタで提供されている方法(Option1, 2 どちらも)で展開すると、Azure Functions は使用量プランで展開されます。
Azure Functions の送信元 IP アドレスの要件が無い場合は、こちらから簡単に展開できます。

image.png

そのため、Premium プランの Azure Function を手動で作成し、Salesforce Service Cloud へ REST API でイベントモニタリングログを収集する関数アプリを展開していきます。

送信元 IP アドレスを固定する Azure Functions の作成

Sentinel で提供される Salesforce Service Cloud データコネクタと、先ほどのチュートリアルを参照しながら 送信元 IP アドレスを固定した Azure Functions を作成します。

構成イメージはこちらです。

image.png

  • Sentinel の Salesforce Service Cloud データコネクタの手順
    image.png

image.png

1. Azure Functions Premium プランの作成

まず、Azure ポータルから Premium プランで Azure Functions を作成します。

image.png

関数アプリは Python 3.8 で作成されているため、ランタイムスタックとバージョンを指定します。Premium プランは EP1 と表示されます。

image.png

それ以外は既定値のまま作成します。

image.png

2. SalesforceSentinelConnector アプリケーションの展開

Sentinel の Salesforce Service Cloud データコネクタから Azure Functions に展開するアプリケーションをダウンロードします。

Salesforce Service Cloud データコネクタページを開き、「Option 2 - Manual Deployment of Azure Functions」‐ 「Step 1 - Deploy a Function App」にリンクがありますが、こちらにも張っておきます。

image.png

ダウンロードしたアプリケーションは Visual Studio Code から Azure Functions に展開するので、Visual Studio Code を起動し、Azure Tools 拡張機能をインストールします。

image.png

Azure Tools にログインします。
image.png

VS Code でダウンロードしたアプリケーションのフォルダを開きます
image.png

Azure Tools の Workspace から 「Initialize project for us...」をクリックし、「Skip virtual environment」を選択して、Initialize を完了させます。
image.png

VS Code の Workspace から Azure Functions のアイコンを選択し、「Deploy to Azure...」を選択します。
image.png

アプリケーションを展開するサブスクリプション、Azure Funstion を選択します。
image.png

ポップアップにてアプリケーションを展開する画面が出るため、「Deploy」をクリックします。
image.png

これで Salesforce Service Cloud に REST API でイベントモニタリングログを収集するアプリケーションの展開が完了です。
image.png

Azure ポータルからも確認できます。
image.png

3. アプリケーションのパラメータ設定

展開したアプリケーションに必要なパラメーターを確認します。

パラメーター
WorkspaceID Log Analytics ワークスペースID
WorkspaceKey Log Analytics ワークスペース Primary Key
logAnalyticsUri https://<"Log Analytics ワークスペースID">.ods.opinsights.azure.com
SalesforceTokenUri https://login.salesforce.com/services/oauth2/token
SalesforceUser Salesforce ユーザー名
SalesforcePass Salesforce パスワード
SalesforceSecurityToken Salesforce セキュリティトークン
SalesforceConsumerKey Salesforce コンシューマキー
SalesforceConsumerSecret Salesforce シークレット
timeInterval hourly
Schedule 0 0 * * * *

Log Analytics 関連の情報は、Log Analytics ワークスペースの「エージェント」から確認できます。
image.png

Salesforce のコンシューマーキーとシークレットは、アプリケーションマネージャからアプリケーションの「参照」から確認することができます。

image.png

セキュリティトークンは、ユーザーアイコンの設定から 「私のセキュリティトークンのリセット」をすることで取得することができます。
image.png

収集した情報を Azure Functions の環境変数に追加します。
image.png

このように各パラメーターを追加していきます。
image.png

すべてのパラメーターを入力するとこのようになります。
image.png

4. VNET 統合を設定

Azure Functions を VNET 統合することで、アウトバンド通信を NAT Gateway 経由にすることができます。

Azure Functions のネットワークを開きます。
image.png

仮想ネットワーク統合の追加をし、VNET 統合する仮想ネットワーク、サブネットを追加します。
すでに VNET 統合を有効化したサブネットを選択することもできます。
image.png

VNET 統合が有効化されるとこのような画面が表示されます。
image.png

5. NAT Gateway の作成

最後に NAT Gateway を作成します。

まず、パブリック IP アドレスを作成します。
image.png

次に NAT Gateway を作成します。
image.png

事前に作成した Public IP アドレスを指定します。
image.png

NAT Gateway 経由で通信させる VNET 統合したサブネットを指定します。
image.png

これで NAT Gateway を作成します。
image.png

6. 動作確認

Azure Functions に展開したアプリケーションを手動実行し、Salesforce Sercie Cloud にログインする IP アドレスを確認します。

Azure Functions 概要ページから、展開したアプリケーション 「SalesforceSentinelConnector」を選択します。
image.png

「テスト/実行」から 「実行」をクリックします。するとアプリケーションが実行されます。
image.png

設定に問題がなければ、アプリケーションが実行され Salesforce Service Cloud からログを収集するスクリプトが実行されたログが表示されます。
image.png

Salesforce 側のログイン履歴を確認し、NAT Gateway に設定した パブリック IP アドレスからアクセスが来ていることを確認します。

image.png

まとめ

Azure Functions を Premium プランで手動展開することで、送信元 IP アドレスを固定して Salesforce Service Cloud にログインしてログを収集することができるようになります。
Salesforce Service Cloud 側で IP アドレスによるログイン制限をしている場合、Nat Gateway にわりあてた 1つの IP アドレスからの通信を許可すればよいため、セキュリティリスクの軽減につなげることが可能です。
もし Salesforce Service Cloud のログを Sentinel に取り込む場合にご検討いただければと思います!

なお、Salesforce 側でイベントログ収集を有効化しないと、Sentinel にログは入ってきません。
こちらにイベントログの有効化手順がありますので、Salesforce に詳しくない方はぜひご参照ください!

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0