2019.08.02

Salesforceのアクセスログ管理

アクセスログは、サーバやPC、システム等に対してどのような通信が行われていたか、どんな操作が行われたかなど、すべてのできごとを時系列で保存したもので、以下の効果があります。

・システムに情報漏洩があった際にアクセスログをたどって追跡調査できる
・アクセスログを取っていることをシステム利用者に周知することで、不正行為の抑止効果が
 期待できる
・障害発生時の前後のログをたどることで障害の原因究明や対策につなげる

業務システム内で重要な個人情報や営業情報を取り扱う場合は、適切にアクセスログ管理を行うことで大切な情報資産の流出を抑止し、万が一流出した際には流出経路を正確に素早く追跡する必要があります。

今回はSalesforceでアクセス管理を行うための仕組みについて調べてみました。

Salesforceの主なセキュリティ監視、監査機能

表内のSalesforce ShieldのEvent Monitoring (イベントモニタリング)については過去のブログでも取り扱っていますのでこちらをご参照ください。
Salesforceで用意されている主なセキュリティ監視、監査機能は以下のとおりです。

セキュリティ監視要件に対する対応

どの利用者がいつ、どの情報へ、どのような操作を経てアクセスしたのかを追跡する際には様々なイベントを監視する必要がありますが、今回は社内ユーザがどのような手順で検索、閲覧、ダウンロードしたのかを後からログで確認することを想定し、以下のイベントについてSalesforceのセキュリティ監視機能でどのように対応できるのかを見ていきたいと思います。

①ユーザのログイン、ログアウト
②検索
③対象オブジェクトに対する参照・更新
④対象レポートの閲覧・エクスポート
①ユーザのログイン、ログアウト

ログイン情報は、設定>ユーザの管理>ログイン履歴から取得できますが、
ログアウトの履歴は設定画面にはありませんので別途EventLogFileのログアウトイベントから取得する必要があります。
また、ログイン履歴をEventLogFileのログインイベントから取得することもできます。

ログイン履歴の保持期間は6か月、ログアウトイベントログは30日ですので、6か月以上保持する業務要件の場合は定期的にログイン履歴とログアウトイベントを別途保存しておく必要があります。

保存方法はログ用のカスタムオブジェクトを用意して、日次のApexバッチ等でログイン・ログアウトの履歴を添付ファイルとして保存する方法や、DataSpider Cloud等のEAIツールを使って外部ストレージに保管する方法があります。

②検索
誰がどの検索条件で顧客情報を抽出したのかを分析する際に、検索実行時のイベントを監視する必要がありますが、Visualforceで開発した検索画面の場合、自動的に検索条件がログファイルに吐き出されないため、別途検索条件を保存する仕組みが必要になります。

EventLogFileの「Visualforce イベント種別」に「QUERY」という項目があり、SOAP API 開発者ガイドには「SOQL クエリ (実行された場合)」との説明が書かれていますが、実際の「QUERY」項目にはSOQLのWhere句の内容ではなく、Getパラメータの内容が入っていますので、注意が必要です。

さらに「QUERY」項目の268文字目以降は省略されるようですので、検索条件項目が多数ある場合やGetパラメータに顧客情報などを含めたくない場合などは検索条件を別途保存する仕組みが必要となります。
③対象オブジェクトに対する参照・更新
具体的にどの顧客情報や案件情報へアクセスしたかを監視する場合は以下の方法で確認することができます。

・参照
 詳細画面への参照はLightning ExperienceやSalesforce アプリケーションの場合、EventLogFileの
 Lightningページビューイベントで誰が、いつ、どのSalesforceIDの詳細画面を閲覧したかを
 確認することができます。

・更新
 特定オブジェクトのデータ更新の追跡には項目変更履歴を使用しますが、
 無料版では保存期間18ヵ月で1オブジェクトあたりの監視項目は20項目まで、
 有料版は保存期間10年、60項目までとなっています。

変更履歴を10年以上保存したい場合や、60項目を超えるオブジェクトに対して全項目の変更履歴を管理したい場合は 更新操作毎に項目の変更前後の値を保管するオブジェクトを作成して保管するなどの開発が別途必要で、この場合は膨大なデータ量が想定されるため、日次処理で外部ストレージ等に更新履歴データを移動するなどの考慮が必要です。

④対象レポートの閲覧・エクスポート
 レポートの閲覧・エクスポートの監視はどちらもEventLogFileで確認可能です。

・レポートの閲覧
 EventLogFileのレポートイベントで誰が、いつ、どのレポートを閲覧したかを
 確認することができます。

・レポートのエクスポート
 レポートのエクスポートイベントで確認することができますが、
 レポートイベントからも取得可能です。
 このレポートイベントではCSV、Excel等の出力形式や行数、平均行サイズなども
 取得できるため、こちらの方が使い勝手が良いかと思います。

最後に

Salesforceの利用者が画面から操作する際の監視はSalesforce標準のセキュリティ監視、監査機能で多くをカバーできます、ただし以下に関しては別途考慮が必要です。

・Visualforceで開発した検索画面の検索条件
・EventLogFileの保持期間(30日)を超えてアクセスログの保存が必要な場合
・60項目以上の項目の更新履歴が必要な場合

また、EventLogFileに関しては「Salesforce Event Log Browser」の画面からCSV形式でダウンロードができるので、RPAを導入して毎日イベントログのバックアップを取る方法などを検討してもよいかと思います。

今回は社内ユーザが重要データの検索、詳細確認後にダウンロードするといった流れをあとからログで確認することを想定して、アクセスログを中心に調べましたが、今後は外部からの不正アクセスなどのセキュリティ監視、監査機能についても調べていきたいと思います。

それでは、また。

18 件
     
  • banner
  • banner

関連する記事