“レポート”の検索結果
- すべて
- おすすめリソース紹介
-
Sales
Cloud - Account Engagement(旧 Pardot)
-
Service
Cloud - Experience Cloud
- CRM Analytics
- Quip
- Engagement
- Intelligence
-
Commerce
Cloud - Tableau
- Sales Program
- MuleSoft
- Trusted Services
- Slack
- Data Cloud
- AI(人工知能)
- Digital Wallet(利用量の管理)
-
セキュリティ・
開発・運用 -
ユーザグループ・
コミュニティ - Premier Success Plan
- コーポレートサイト
- 特集
-
この記事で学べることイベントモニタリングに含まれる2種類のログの違いリアルタイムイベントモニタリングのログの取得方法イベントログファイル(EventLogFile)のログの取得方法イベントモニタリングに含まれる2種類のログの違いイベントモニタリングライセンスには、以下2種類のログが含まれます。リアルタイムイベントモニタリング:セキュリティインシデントの発生ログとレコードへのアクセスログイベントログファイル(EventLogFile):イベント発生 / エラー / パフォーマンス分析用のイベントログこの2種類のログの違いの詳細については、以下の記事をご参照ください。イベントモニタリングとは2種類のログは、取得方法が異なりますので、それぞれのログの取得方法について説明します。リアルタイムイベントモニタリングのログ取得リアルタイムイベントモニタリングでは、イベントデータをストリーミング視聴したり、Salesforceオブジェクトに保存してクエリしたりすることができます。保存イベントの多くは、大量データの最大6か月間(認証系ログは10年間)の保存に適したSalesforce Big Objectが対応します。Big Objectではデータが Salesforce ネイティブとして保存されるため、アクセスしてレポートやその他の用途に使用できます。一部の保存イベント(脅威検知イベントなど)は、標準 Salesforce オブジェクトが対応します。リアルタイムログの記録開始については以下の記事を参照してください。ログの記録開始リアルタイムログの取得に必要な権限の設定[設定] から、次のいずれかの操作を実行します。[クイック検索] ボックスに「権限セット」と入力し、[権限セット] を選択します。[クイック検索] ボックスに「プロファイル」と入力し、[プロファイル] を選択します。権限セットまたはプロファイルを選択します。権限セットとプロファイルのどちらを使用するかに応じて、次のいずれかの操作を実行します。権限セットまたは拡張プロファイルユーザインターフェースで、権限を選択します。[設定の検索] ダイアログボックスに、「リアルタイムイベントモニタリングデータの表示」と入力します。[編集] をクリックし、オプションを選択して、[保存] をクリックします。「アプリケーションのカスタマイズ」権限についても上記の手順を繰り返します。元のプロファイルユーザインターフェースで、プロファイル名を選択し、[編集] をクリックします。トランザクションセキュリティポリシーを作成する予定の場合は、[リアルタイムイベントモニタリングデータを表示] と [アプリケーションのカスタマイズ] を選択します。[保存] をクリックします。リアルタイムイベントモニタリングを有効にするのに加えて、リアルタイムイベントオブジェクトに対するユーザ権限を設定します。リアルタイムイベントモニタリングオブジェクトには機密データが含まれる場合があります。リアルタイムログのストリーミングログの取得ここでは“Streaming Monitor”を利用してストリーミングイベントを確認する方法を紹介します。Streaming MonitorはSalesforceから提供している管理パッケージとなり、誰でも無償でご利用いただけますがサポートの対象外です。AppExchangeの“Streaming Monitor”ページより、パッケージをインストールしてください。https://appexchange.salesforce.com/listingDetail?listingId=a0N3A00000FYEEWUA5&tab=eパッケージが正常にインストールされると、アプリケーションランチャーにて“Streaming Monitor”が表示されます。Streaming Monitorページにアクセスし、[Subscribe to a channel] → [Monitoring events] → [確認したいイベント]を順に選択し、[Subscribe]ボタンを押します。(Relay optionはデフォルトのままでOK)確認したいイベント分だけ、No.3の手順を繰り返します。[Subscriptions]カラムに、指定したイベントログが表示されていることを確認します。(ここでは、一例として“LightningUriEvent”と“ReportEvent”をSubscribeしています)この状態で実際のイベントが発生すると、画面上にキャプチャされたイベントログがグラフに表示されます。グラフ上の該当ログをクリックすることで、実際のログの内容を確認することができます。リアルタイムログのストレージログの取得リアルタイムイベントモニタリングの保存イベントの多くは、大量データの最大6か月間の保存に適したSalesforce Big Objectに保存されます。保存されたログデータはデータローダを用いてダウンロードすることが可能です。データローダは、データを一括でインポートまたはエクスポートするためのクライアントアプリケーションです。データローダのインストールや利用方法の詳細は『データローダガイド』をご参照ください。データローダを開きます。[Export (エクスポート)] をクリックします。アーカイブされた活動レコードと論理削除されたレコードもエクスポートする場合は、代わりに [Export All (すべてをエクスポート)] をクリックします。Salesforceユーザ名とパスワードを入力し、[ログイン] をクリックします。ログインしたら、[次へ] をクリックします。オブジェクトを選択します。オブジェクト名がリストに表示されない場合は、[すべてのオブジェクトを表示] を選択して、アクセス可能なオブジェクトをすべて表示します。データのエクスポート先とするCSVファイルを選択または新規作成します。[次へ] をクリックします。データエクスポート用のSOQLクエリを作成します。[完了] をクリックし、[はい] をクリックして確認します。[View Extraction (抽出を表示)] をクリックして CSV ファイルを表示するか、[OK] をクリックして閉じます。イベントログファイル(EventLogFile)のログについてイベントログファイルのログは、“EventLogFile”という名前の専用オブジェクトに格納されます。EventLogFileオブジェクトではイベント種別、対象日(または対象時間)ごとに1件のレコードが作成され、ログデータがBase64に符号化されてLogFile列に格納されています。EventLogFile でサポートされているイベント種別イベントログファイルの保存期間はSpring’24のアップデートにより30日間から1年間に拡張されました。この保管期間の拡張を有効にするには、[イベントモニタリング設定] より、[イベントログファイルを保持]にチェックを入れてください。イベントログファイルの取得に必要な権限の設定[設定] から、次のいずれかの操作を実行します。[クイック検索] ボックスに「権限セット」と入力し、[権限セット] を選択します。[クイック検索] ボックスに「プロファイル」と入力し、[プロファイル] を選択します。権限セットまたはプロファイルを選択します。権限セットとプロファイルのどちらを使用するかに応じて、次のいずれかの操作を実行します。権限セットまたは拡張プロファイルユーザインターフェースで、権限を選択(または新規作成)します。[設定の検索] ダイアログボックスに、「イベントログファイルを参照」と入力します。[編集] をクリックし、オプションを選択して、[保存] をクリックします。「API の有効化」権限についても上記の手順を繰り返します。元のプロファイルユーザインターフェースで、プロファイル名を選択し、[編集] をクリックし、[イベントログファイルを参照] と [API の有効化] を選択します。[保存] をクリックします。イベントログファイルのダウンロードイベントログファイルはSalesforceオブジェクトのレコードであるため、さまざまな方法でダウンロードできます。イベントログファイルブラウザーデータローダーcURLスクリプトPythonスクリプトetcここではイベントログファイルブラウザーを使用し、base64デコード済みのcsvファイルを直接ダウンロードする方法を紹介します。組織にログインします。[設定] から、クイック検索で“イベントモニタリング”と入力し、[イベントログファイルブラウザー] を選択します。検索する日付範囲を入力します検索するイベント種別を入力します間隔(すべて / 毎日 / 1時間ごと)を入力します[適用] をクリックしますこのリストには、指定した日付や時間、イベント種別に該当するイベントログファイルが表示されます。これらのログをブラウザアプリケーションで直接開くことはできませんが、csvファイルとして手元にダウンロードすることができます。右端の▼マークのアイコンをクリックして、[csvファイルとしてダウンロード] を選択します。今回は一例としてLightningページビューイベントのログファイルをダウンロードします。このファイルをスプレッドシートで開いて内容を確認します。PAGE_URL項目でアクセスしたページやレコードを示すURLを、USER_ID項目でユーザのIDを確認することが可能です。学習ツールTrailhead - リアルタイムイベントモニタリングTrailhead - イベントモニタリング動画 - イベントモニタリング設定動画_基礎編(ログの有効化と取得)まとめイベントモニタリングで取得できる二種類のログ(リアルタイムログおよびイベントログファイル)の取得方法はそれぞれ異なります。今回はストリーミングや取得方法の一例をご紹介しました。ご利用開始後、適切な方法でログを取得しイベントモニタリングを最大限にご活用ください。
-
この記事で学べることイベントモニタリングの目的と全体像イベントモニタリングでできることログの取得 - リアルタイムイベントモニタリングとEventLogFileによるイベントモニタリングについてログの活用 - イベントモニタリング各活用機能の概要イベントモニタリングの目的と全体像イベントモニタリングとは、データの安全性を確保するためにSalesforceに搭載されている有償のセキュリティアドオンツールの1つです。Salesforceでは組織のユーザアクティビティを「イベント」と称しますが、このツールを使用すると、システム管理者は、いつ、誰が、どのレコードにアクセスしたかといった個別のイベントに関する情報を細部まで確認することができるようになります。また、イベントモニタリングに含まれる様々なログの活用機能により、イベントのトレンドを追跡し異常な行動をすばやく特定したり、あらかじめ定義した条件に抵触するアクセスをブロックしたりすることができ、組織のデータを保護することができます。ログ記録監視の重要性と必要性Salesforceで標準機能として提供されるログ機能ではユーザのログイン履歴は記録されるものの、ページアクセスやレポートの実行、データエクスポートなどのアクセスログは記録されません。万が一、情報漏えいなどセキュリティインシデントを疑う事象が起きた際に、ログを用いて十分な調査を行い、企業として説明責任を果たすためにはイベントモニタリングが必須です。また、厳格なログ管理や証跡管理は多くの業界ガイドラインでも提言されているため、イベントモニタリングを導入しアクセスログを監視、管理することでこれらの要求事項を実現し、企業のコンプライアンスを強化することができます。ログの記録イベントモニタリングで取得できるログには、次の二種類があります。リアルタイムイベントモニタリングイベントモニタリング(EventLogFile)リアルタイムイベントモニタリングはセキュリティインシデントの発生ログとレコードへのアクセスログの記録と分析を目的としています。アクセスログでは、監視対象は主にアクセスしたレコードを特定するためのレコードID、さらにレポートやビューでは、出力された項目が特定できます。ログはリアルタイムで保存され、ログのタイプにより6ヶ月から10年保存されます。また一部のログタイプはストリーミング配信可能です。リアルタイムイベントモニタリングは、ログのタイプごとに有効化の設定を行う必要があります。一方、イベントモニタリングは、イベント発生 / エラー / パフォーマンス分析用のイベントログを保存することを目的としています。ログの保存はリアルタイムではなく、1時間ごと及び24時間ごとの2種類のログを30日間保存します。監視対象は主にイベントの発生を識別する情報で、URIや実行されたレポートや実行されたSQLなどで、イベントの発生頻度、パフォーマンスなどを分析するのに役立ちます。ライセンスをご購入いただくと自動的にログの記録を開始します。ログの記録開始、ログの取得方法(保存方法)は次の関連記事をご参照ください。ログの記録開始ログの取得方法アクセスログログの参照ガイドログの活用イベントモニタリングにはログの取得のほかに、ログを活用する機能として、次の3つの機能が含まれています。AIによる脅威検知 - Threat Detectionログの可視化・分析 - Event Monitoring Analyticsリアルタイム制御 - Transaction SecurityAIによる脅威検知機械学習アルゴリズムによって「パスワードリスト攻撃」「セッションハイジャック」「異常レポート出力」「API異常」に対応するリアルタイム監視イベントを生成し、組織への不正アクセスの兆候やユーザの行動の異常を検知する機能です。システム管理者は脅威検知用のイベント管理アプリケーションで検知された脅威を確認することができます。また、後でご紹介するトランザクションセキュリティを使用して、検知された驚異を管理者に通知することができます。また、検知された脅威イベントの詳細を確認し、「悪意あり」「脅威ではない」といった重大度に関するフィードバックをSalesforceに送信してAIに学習させることで、検知精度向上に役立てることができます。脅威検知の利用開始ログの可視化・分析イベントモニタリングのライセンスには、Event Monitoring Analyticsという名称で、ログおよび組織の情報の可視化、分析に特化した Tableau CRM(旧:Einstein Analytics)のライセンスが10ライセンス付属しています。Event Monitoring Analyticsに予め用意された16種類のダッシュボードで簡単にログの分析ができ、Salesforce組織の利用状況やセキュリティに関する脅威・傾向を素早く発見することができます。Event Monitoring Analyticsの利用開始Event Monitoring Analyticsの主要なダッシュボードリアルタイム制御分析によって得られた考察などをもとに、任意の標準オブジェクトまたはカスタムオブジェクトに対して標準機能で提供されているセキュリティ機能よりもさらに細かいアクセス条件(ポリシー)を設定し、ユーザのセキュリティコントロールができる機能です。ポリシーに抵触するアクセスを検知すると操作の実行を制御したり、管理者へ通知したりすることが可能です。この機能を活用することにより、システム管理者やセキュリティ担当者はアクセスログの確認や分析によりセキュリティインシデントの痕跡を事後に確認するだけでなく、疑わしい行為を検知し未然に防ぐことが可能になります。拡張トランザクションセキュリティの設定(準備中)動画を見るhttps://play.vidyard.com/3SjYC4K4K73yXfyTvB51sA学習ツールTrailhead - リアルタイムイベントモニタリングTrailhead - イベントモニタリング動画 - イベントモニタリング設定動画_基礎編(ログの有効化と取得)動画 - イベントモニタリング設定動画_応用編①(Event Monitoring Analytics)動画 - イベントモニタリング設定動画_応用編②(トランザクションセキュリティ)まとめイベントモニタリングを導入しログを収集・管理することにより、システム管理者はSalesforceの日々の利用状況を時系列で把握することができ、万が一、データ漏えいなどが起こった際には、速やかに原因や影響範囲の特定が可能になります。また、ログの記録だけでなく、専門家が不在でもAIによるログの分析により脅威を検知したり、ログを簡単に可視化・分析して利用状況やセキュリティに関する脅威を発見したり、さらには分析によって得られた考察からよりきめ細かいセキュリティコントロールを実装したりすることが可能になります。イベントモニタリングの活用にご興味をお持ちのお客様はぜひ以下のウェビナーもご視聴ください。「今注目!リモートワークのセキュリティ対策 〜Salesforce Shieldでリスクを未然に防ぐ〜」(オンデマンド視聴)
-
Event Monitoring Analyticsの主要なダッシュボード
この記事で学べることイベントモニタリングに含まれる2種類のログのうち、Event Monitoring Analyticsは、イベントモニタリングを分析対象としていることEvent Monitoring Analyticsで提供される主要なダッシュボードの使い方イベントモニタリングに含まれる2種類のログの違いイベントモニタリングライセンスには、以下2種類のログが含まれます。リアルタイムイベントモニタリング:セキュリティインシデントの発生ログとレコードへのアクセスログイベントモニタリング:イベント発生 / エラー / パフォーマンス分析用のイベントログこの2種類のログの違いの詳細については、以下の記事をご参照ください。イベントモニタリングとはEvent Monitoring Analyticsでは、イベントモニタリングのログからさまざまなダッシュボードが提供されています。Event Monitoring Analyticsで提供される主要なダッシュボードここでは特にセキュリティ観点で優先的に確認することが好ましいと考えられるダッシュボードのついて記載をしています。1.Login不審なログイン傾向を把握するために確認します。Who Logs In the Most 折れ線グラフで不審な傾向(不自然なスパイク等)を評価 します。不審なログインがあった場合、どういったユーザの動きであったか確認します。以降のダッシュボードについては是非お手持ちの環境で画面を操作しながら確認をいただけます様お願いいたします。2.Reports および Report Downloadsレポートの使用やエクスポートの傾向を把握するために確認します。Reportsダッシュボードの Report Trend by User折れ線グラフで不審な傾向を評価します。不審なユーザがあった場合、ユーザ名やアクセスしたレポートを確認します。グラフ左上の [▼ボタン] | [調査] から [条件タブ] を開き、ORIGINやRENDERING_TYPEの値からどのようにレポートにアクセスされたかフィルタをかける事ができます。値の意味についてはディベロッパーサイトを確認します。レポートのエクスポートに特化して評価する際にはReport Downloads を利用します3.Filesファイルがどの様な取り扱いをされたか傾向を把握するために確認します。How Many File Transactions Are Occurring in My Org? 折れ線グラフで不審な傾向を評価します。値の意味については ディベロッパーサイトを確認します。不審なトランザクションがあった場合、どういったファイルへのトランザクションがあったか、誰がトランザクションを発生させていたかを調査していきます。4.Page View(URIs)ユーザがどのIPからどのページへアクセスしたか傾向を把握するために確認します。Page View Trends By User 折れ線グラフで不審な傾向を評価 します。不審なユーザの傾向があった場合、どにIPアドレスアクセスされたかをShared IPs By Userグラフから、どのページを見ていたかをPage Views By Userから確認します。上記で代表的なダッシュボードの紹介をしてきましたが 2.Reports および Report Downloadsでも紹介した通り各グラフの左上に表示される ▼ボタン] | [調査] を選択することでより絞り込んだ条件で分析をすることができます。そしてより絞り込んだ条件で表示されたグラフから、詳細を確認したい領域を選択した上で、画面左上の [テーブルモード] | [値テーブル] を選択することでデータセットの値を確認することもできます。上記、確認観点や方法をご案内いたしました。ここで紹介した内容は一般的に必要と考えられる内容を記載したものですので、貴社において必要と考えられる観点がありましたら、積極的に調査観点を追加していただきたく存じます。まとめ不審な傾向を把握するためには通常の傾向を把握しておくことが重要です。定期的にダッシュボードを確認し組織の動きの傾向把握をぜひとも実施くださいます様お願いいたします。
-
Salesforce利用分析のためのイベントログの参照ガイド
この記事で学べることイベントモニタリングに含まれる2種類のログを理解し、活用に向けてユーザがどのようにSalesforceを利用しているか分析するために、確認したいケースごとにどこの情報を参照することにより、ユーザがどのようにSalesforceを利用しているかを確認することができることを理解できます。イベントモニタリングに含まれる2種類のログの違いイベントモニタリングライセンスには、以下2種類のログが含まれます。リアルタイムイベントモニタリング:セキュリティインシデントの発生ログとレコードへのアクセスログイベントモニタリング:イベント発生 / エラー / パフォーマンス/Event Monitoring Analytics分析用のイベントログこの2種類のログの違いの詳細については、以下の記事をご参照ください。イベントモニタリングとは利用状況の確認方法ログイン状況の確認(Event Monitoring Analytics から)利用状況確認の第一歩目としてログイン状況の確認が必要です。Event Monitoring Analytics のLoginsダッシュボードを活用すれば、数回のクリックで誰が頻繁にログインをしているか、また特定プロファイルや部門/役職(ロール)のユーザのログイン回数がどの程度か一目瞭然となります。従前の作業で必要であった、ログイン履歴のCSVファイルをダウンロード、表計算ソフトにインポート、関数やフィルタ機能を駆使して必要なデータを抽出しグラフ化、といった煩わしい作業が不要になります。あまりログインができていないユーザや部門があれば、ログインされない原因を確認して対応します。例えば、使い勝手が悪いとの事であればレコードタイプやページレイアウトのカスタマイズを実施する、使い方が分からないとの事であれば使用方法の従業員教育をする、そもそも使う理由や効果が納得できないとの事であれば導入目的を説明して理解を促す等の対応が考えられます。人気の高いレポート/ダッシュボード/ファイルの確認(Event Monitoring Analytics から)ログイン状況の改善がなされたら、次のステップとしてどの様な情報がよく参照されているかを把握します。利用頻度の高い情報は有益である可能性が高いと考えられるためです。例えば利用頻度の高いダッシュボードの情報をアナウンスすることで、ユーザやチームは今まで活用できていなかったダッシュボードに気付くことができるかもしれません。この様な利用傾向はEvent Monitoring Analyticsで提供されるダッシュボードから容易に確認ができます。Salesforceにおけるダッシュボードの利用傾向はDashboards、レポートの利用傾向はReportsまたはReport Downloads、ファイルの利用傾向はFilesのダッシュボードから確認ができます。また、この様な利用傾向を容易に共有できる機能をEvent Monitoring Analytics は有しています。どのキーワードで情報が検索されているか確認(Event Monitoring Analytics から)Event Monitoring Analytics においてダッシュボードではありませんが、データセットとして用意されているSearchデータセットのSEARCH_QUERY項目を調べる事によって、どのようなキーワードでSalesforce内の情報が検索がされたのかを確認ができます。Searchデータセットの内容についてはソースのログである検索イベント種別をご確認ください。Searchデータセットによってユーザが業務上どの様な情報に関心を持っているか分かり、効果的にナレッジを提供できる蓋然性が高まります。利用頻度の高いリストビューの確認(リアルタイムイベントモニタリングから)ユーザがどの様なフィルタ条件のリストビューを用いているかも重要な情報となり得ます。リアルタイムイベントモニタリングのListViewEventからFilterCriteria項目を確認することでフィルタ条件を確認できます。リアルタイムイベントモニタリングで確認できる内容についてはアクセスログの参照ガイドの記事も併せてご参照ください。レコードの作成や編集に要した時間を把握(リアルタイムイベントモニタリングから)ユーザが特定のレコードの作成や編集にどの程度の時間を要したか、リアルタイムイベントモニタリングのLightningUriEvent(Classic環境の場合はUriEvent)から、画面を開いた時刻と保存時の時刻の時間差で確認をする事ができます。具体的にどのオブジェクトに対する操作であったかはQueriedEntitiesを、どのレコードに対する操作であったかはRecordIdから確認をします。EventDate : 指定された URI イベントが捕捉された時間 (クエリの実行後)。たとえば、「2020-01-20T19:12:26.965Z」などです。最も細かい設定はミリ秒ですOperation : エンティティで実行されている操作。Read, Create, Update または Delete があります。作成および更新操作はペアで捕捉されます。つまり、操作ごとに 2 つのイベントレコードが予期されます。最初のレコードは操作の開始を表し、2 番目のレコードは操作が成功したかどうかを表します。2 つのレコードはRelatedEventIdentifier によって相互に関連付けられます。作成または更新操作に対して 2 番目のイベントが記録されていない場合、ユーザが操作をキャンセルしたか、クライアント側の検証で操作が失敗しています。(必須項目が空の場合など)。RecordId : 表示または編集されているレコードの IDQueriedEntities : URI によって参照されるオブジェクトの API 参照名Username : イベントが作成された時点での user@company.com 形式のユーザ名ハイパフォーマーの活用方法を共有ユーザによる利用状況の把握ができたら、次のステップとしてハイパフォーマーの活用方法を抽出して展開することが考えられます。ハイパフォーマーが良く使っているダッシュボードやレポート、ファイルなどを共有し、レコードの作成や編集にかける時間をどの様に短縮しているかといった工夫をヒアリングして展開します。ハイパフォーマーからのフィードバックを得る事で使い勝手の良いアプリケーションとなっていき、ログイン率が向上、改善のサイクルが回っていくことが期待できます。ケーススタディ太陽光発電システムを販売する米国最大のプロバイダーであるS社は、導入開始間もないモバイルアプリケーションの利用促進に課題を持っていましたが、イベントモニタリングを使用して課題を抱えているユーザーを特定し、的を絞ったコーチングを提供することで、モバイルアプリケーションの採用を加速しました。また、化粧品業界向けの特殊原料を製造する大手メーカーのT社は、一部の営業チームがCRMを使用していなかったことでが課題でしたが、イベントモニタリングにより、使用頻度と営業成績の観点から、営業チームの行動を追跡できるようになりました。 時間と使用の質を調べることで、Salesforceを頻繁に使用する営業担当者がそうでない営業担当者よりり成績が良いことを証明できました。Salesforceの利用が増えることで、その価値を売上高で示すことができるので、実際にSalesforceをもっと使おうという気にさせることができSalesforceをより多く使用するように営業担当を動機付けることができました。学習ツールプラットフォームイベント開発者ガイド- リアルタイムイベント監視オブジェクトSOAP API 開発者ガイド - EventLogFile でサポートされているイベント種別サクセスナビ - アクセスログの参照ガイドまとめイベントモニタリンクおよび、リアルタイムイベントモニタリングのログを分析することにより、ユーザのログイン状況、よく使用されるリストビュー、レポート、ダッシュボード、ファイルなどが理解でき、レコードの作成や編集に要した時間も把握するとこができます。また、利用状況と売上や勤務時間など他の情報との関係性を発見できるかもしれません。これで得られた洞察により、利用活用の障壁に対策を講じたり、利用の動機付けを行うことによりSalesforce の利用および活用促進につなげることが可能となります。
-
この記事で学べることイベントモニタリングに含まれる2種類のログの違いリアルタイムイベントモニタリングの取得開始方法ストリーミングとストレージの違いイベントモニタリングに含まれる2種類のログの違いイベントモニタリングライセンスには、以下2種類のログが含まれます。リアルタイムイベントモニタリング:セキュリティインシデントの発生ログとレコードへのアクセスログイベントモニタリング:イベント発生 / エラー / パフォーマンス分析用のイベントログこの2種類のログの違いの詳細については、以下の記事をご参照ください。イベントモニタリングとはこのうち、イベントモニタリングのログは組織へイベントモニタリングライセンスが付与されたタイミングから自動的に生成が開始されるようになっており、お客様側でログ取得を開始するための設定は必要ありません。一方で、リアルタイムイベントモニタリングのログについては、組織へライセンスが付与された後に管理者の方がログの取得開始設定を行う必要がございます。そのため、Salesforce組織にイベントモニタリングが初めて導入された際には、以下の手順を参考にしてリアルタイムイベントモニタリングのログ取得設定を行ってください。リアルタイムイベントモニタリングの取得開始方法リアルタイムイベントモニタリングのログを取得開始するためには、「アプリケーションのカスタマイズ」および「設定の参照」権限が必要となります(システム管理者の方であれば、初めから権限が付与されています)その後、権限を持つユーザにより、以下の手順にてリアルタイムイベントモニタリングの各ログを有効化していきます。[設定] から、[クイック検索] ボックスに「イベント」と入力し、[イベントマネージャ] を選択します。有効化するイベントの横にあるドロップダウンメニューをクリックします。イベントの [ストレージ を有効化] および [ストリーミング を有効化] を選択します。有効化したいログ種類分だけ、手順2,3を繰り返します。(特段の要件がなければ、全て有効化しておくことを推奨します)ログ取得設定の有効化後、組織に蓄積されたログへアクセスする方法については以下の記事をご参照ください。ログの取得方法ストリーミングとストレージの違いリアルタイムイベントモニタリングには、ストリーミング と ストレージ の2種類があります。ログインやレポートへのアクセスなど、一つの操作からストリーミングとストレージの両者に対して同一内容のログ(※)が生成されます。(※) 厳密にはログのレコードIDなどが異なります。以下の図は、Salesforce組織のレコードアクセス時に記録されるLightningUriイベントの生成例です。ストリーミングログは、ストリーミング API を用いて対象のイベントをリッスンしているクライアントに対し、イベント内容をプッシュします。そのため、イベントを受信する専用のクライアントがあり、ログ監視などSalesforceのイベントチャネルと接続しておくことで即時性を持ってイベントデータを受け取りたい用途がある場合に利用します。ストリーミングログは、最大3日間保持されます。ストレージログは、ログデータをBig Objectに配置することで、過去6か月分のリアルタイムイベントモニタリングログを組織に保管することができます。過去6か月(認証系のログは10年)までのログデータの保全や、SOQLを用いた特定の条件に絞ったログの検索に利用します。また6か月以上のログの長期保存などでイベントログをお客様側の環境へダウンロードする際にも、ストレージログを参照します。学習ツールHelp - リアルタイムイベントモニタリングイベントの管理動画 - イベントモニタリング設定動画_基礎編(ログの有効化と取得)まとめイベントモニタリングには、リアルタイムイベントモニタリング と イベントモニタリング の2種類のログが存在します。このうち、リアルタイムイベントモニタリングのログはライセンスが付与されただけではログの取得が開始されないため、管理者の方が組織の設定画面からログ取得の有効化作業を行って頂く必要があります。
-
この記事で学べること脅威検知機能の概要脅威検知アプリケーションの設定方法トランザクションセキュリティによる管理者への通知設定イベントモニタリングに含まれる2種類のログの違いイベントモニタリングライセンスには、以下2種類のログが含まれます。リアルタイムイベントモニタリング:セキュリティインシデントの発生ログとレコードへのアクセスログイベントモニタリング:イベント発生 / エラー / パフォーマンス分析用のイベントログこの2種類のログの違いの詳細については、以下の記事をご参照ください。イベントモニタリングとは脅威検知は、リアルタイムイベントモニタリングに含まれるログとなります。脅威検知機能の概要脅威検知機能はイベントモニタリングに含まれる機能の一つであり、統計および機械学習の手法を駆使してSalesforce組織に対する脅威を検知します。この機能により、組織内で発生しているアクティビティに対して、不審なもの・普段とは傾向が異なるものがないかどうかが自動で分析され、万が一異常な傾向があった場合には「脅威検知イベント」としてその内容をログに記録します。また、同じイベントモニタリングに含まれるトランザクションセキュリティ機能と組み合わせることで、脅威検知イベントが作成された際に管理者に対してメールやアプリ内通知で知らせることもできます。このように、AIの力を借りることでシステム管理者が蓄積されたログを逐一分析することなく、組織に対する脅威を確認する手助けを行ってくれます。設定は簡単ですので、ログを分析できる要員がいない組織でも有効な機能です。脅威検知機能にて検知できる機能は以下の4種類です。クレデンシャルスタッフィングクレデンシャルスタッフィングは、盗取したログイン情報を使用する一種のサイバー攻撃です。「パスワードスプレー」「クレデンシャル漏洩」ともいいます。攻撃者は、脆弱なウェブサービスに対するサイバー攻撃や、過去に流出した情報などから大量のユーザ名とパスワードを取得します。そして、取得したログイン情報を使用して、Salesforce などの Web アプリケーションに大規模な自動ログイン要求を仕掛け、ログイン出来るアカウントがないかどうか調査します。もし万が一ユーザ名とパスワードを使いまわしているユーザがいた場合、ユーザアカウントに不正にアクセスされてしまいます。セッションハイジャックセッションハイジャックは、ログイン中のユーザのセッションを乗っ取り、そのユーザに成りすましてアクセスを行う攻撃です。通常ウェブページにおいてログイン処理が正常に行われると、ユーザのクライアントはセッショントークンを受け取り、次回以降ログイン後の状態でアクセスが出来ます。攻撃者はそのセッショントークンを窃取して、クライアントのセッションを乗っ取ろうとします。万が一セッションが乗っ取られた場合、攻撃者はトークンを窃取されたユーザに成りすましてウェブページへアクセス出来るため、ログイン後にしかアクセスできないような機密情報にアクセス出来てしまう可能性があります。(注意) イベントモニタリングライセンスの有無にかかわらず、Salesforceのすべてのお客様はクレデンシャルスタッフィングおよびセッションハイジャックが発生した場合に、影響を受けたユーザに対してセッションの切断やID 検証、強制パスワード変更といった軽減措置が実施されます。ただし、これらの軽減措置はシステムによって自動で実行されるものであり、対象組織の管理者はその措置が発動されたかどうかを確認することは通常出来ません。イベントモニタリングの脅威検知機能により、これらの不正なアクティビティがイベントログとして記録されるため、お客様の組織に対して不正なアクセスがあったことを表面化させる(認知する)ことができ、システム管理者がその内容を確認することが出来るようになります。レポートの異常過去90日分のユーザのレポート生成とその周辺アクティビティの傾向を元に、ユーザーが普段とは異なる傾向でレポートを実行またはエクスポートしたかどうかを調査します。もしユーザのレポートアクティビティが普段とは異なる傾向であった場合、脅威検知イベントとしてその内容がログとして記録されます。システム管理者は生成されたログにより組織内の異常な行動について感知することができ、ログ内容を確認することで検知された行動が本当に悪意のあるものであったかどうかを確認していくことができます。API 異常レポートの異常と同じく、過去90日分のユーザのAPI生成とその周辺アクティビティの傾向を元に、ユーザーが普段とは異なる傾向でAPIを利用していないかどうかを調査します。脅威検知アプリケーションの設定方法脅威検知機能には、アプリケーションランチャーからアクセスができる専用のアプリケーションが用意されています。この脅威検知アプリケーションにアクセスし、組織内で発生した脅威検知イベントを確認するためには、以下の手順を実施して管理ユーザに表示できるようにしておく必要があります。イベントマネージャを使用して、4種類の脅威検知イベント (CredentialStuffingEvent, SessionHijackingEvent, ReportAnomalyEvent, ApiAnomalyEvent) のストリーミングとストレージを有効にします。詳細な手順はこちらの記事をご確認ください。Salesforce ライセンスに関連付けられた権限セットを作成します。権限セットについてはこちらの記事をご確認ください。権限セットの [システム権限] ページを編集し、[脅威検知イベントを表示] 権限を有効にします脅威検知アプリケーションを管理するユーザにこの権限セットを割り当てます。脅威検知アプリケーションを使用する各ユーザプロファイルの [タブの設定] を編集し、5 つのタブの表示を指定します。5 つのタブは、[セッションハイジャックイベントストア]、[クレデンシャルスタッフィングイベントストア]、[レポート異常イベントストア]、[API 異常イベントストア]、[脅威検知フィードバック] です。たとえば、システム管理者は通常 UI を使ってあらゆる機能にアクセスするため、システム管理者プロファイルでは 5 つのすべてのタブの表示を [デフォルトで表示] に設定します。脅威検知管理者プロファイルを作成した場合も、同じ表示を設定します。標準ユーザがフィードバックを表示できないようにする場合は、標準ユーザプロファイルの [脅威検知フィードバック] の表示を [タブを隠す] に設定します。[設定] で、[クイック検索] ボックスに「アプリケーションマネージャ」と入力し、Lightning Experience アプリケーションマネージャに移動します。脅威検知アプリケーションの右側にあるドロップダウンボックスで [編集] を選択し、このアプリケーションを編集します。もし [タブの選択] セクションに手順.5で設定した 5 つのタブが含まれていない場合は、適宜 [選択されたタブ] へ移動させます。[プロファイルへの割り当て] セクションで、脅威検知アプリケーションを表示可能にするプロファイルを選択し、設定を保存します。トランザクションセキュリティによる管理者への通知設定イベントモニタリングに含まれる「トランザクションセキュリティ」機能を利用し、脅威検知イベントを対象としたトランザクションセキュリティポリシーを作成することによって、新たに脅威検知イベントが生成された際に管理者に対してメールやアプリ内通知によってアラートをあげることができます。これにより、管理者は脅威検知アプリケーションの内容を確認し、新たな脅威が発生していないか定期的に確認する必要がなくなります。以下の例では、セッションハイジャックイベントが生成された際に、管理者に対してメール通知およびアプリケーション内通知を行うポリシーを条件ビルダーを用いて作成します。[設定] で、[クイック検索] ボックスに「トランザクション」と入力し、トランザクションセキュリティポリシーに移動します。(初回のみ) トランザクションセキュリティ画面の [有効化] ボタンをクリックします。新しくトランザクションセキュリティポリシーを作成するため、[新規] ボタンをクリックします。GUI操作でポリシーを作成していく場合は [条件ビルダー] を、予めトランザクションセキュリティ用に作成したApexクラスを指定する場合は [Apex] を選択します。(今回は条件ビルダーでの作成方法で解説します)ポリシー作成画面より、以下の条件を設定し、[次へ] をクリックします。[行動]:セッションハイジャックイベントストア[条件ロジック]:すべての条件に一致 (AND)※今回、設定する条件は1つのみなのでロジックどれでもOKです[条件]: “スコア” >= “0”アクション設定画面にて、以下の条件を設定し、[完了] をクリックします。[アクション]:なし[通知]:メール内通知・アプリケーション内通知のチェックをON[受信者]: 脅威検知イベントの通知を受け取る管理者を指定[名前]:Session Hijacking Trigger Alert※作成したポリシーの内容が分かる名前を任意につけてください[状況]: 有効ポリシーが有効な状態で、脅威検知機能により新たにセッションハイジャックイベントが生成された際には、以下のようなメール通知・アプリケーション内通知が指定された管理者に対して送信されます。各々のイベントが発生した場合、前述の通りクレデンシャルスタッフィングおよびセッションハイジャックについては既にシステムによって自動で対処は完了していますが、再度同様の攻撃を受け続けないためにも、該当ユーザに対して使いまわしているパスワードがないかどうかのヒアリングや、利用端末に対するウイルスチェックの実施などを行うことで、根治対処を行うことも重要となります。同様に、レポートの異常やAPI 異常についても該当ユーザへのオペレーション内容の確認やイベントモニタリングで生成されたログの確認を行うことで本当に脅威となるアクティビティであったかどうか確認を実施します。これらの調査については、以下のヘルプページが用意されておりますので合わせてご参照ください。セッションハイジャックの調査クレデンシャルスタッフィングの調査レポートの異常の調査API 要求の異常の調査機械学習アルゴリズムへのフィードバック脅威検出イベントが生成された後は、その検知内容が適切であったかどうか管理者によって機械学習アルゴリズムに対してフィードバックを送信することができます。不正なアクセスを正しく検知できていた(正検知)という場合と、通常の業務内容などによって発生した検知であり、不正なアクセスではなかった(誤検知)という場合の両方のケース対して送信が可能になっており、こまめにフィードバックを行うことで脅威検出機能の検知精度を高めることができます。詳細はこちらのヘルプをご確認ください。フィードバックを送信したい、誤検知となった脅威検出イベントへアクセスし、右上の [Provide Feedback] をクリックします。指定した脅威検出イベントの内容について Malicious(悪意あり)、Suspicious(疑わしい)、Not a Threat(脅威ではない)、Unknown(不明)の4つから選択し、保存ボタンを押してください。学習ツールHelp - 脅威検知Help - 脅威検知イベントの表示とフィードバックの提供Help - 拡張トランザクションセキュリティTrailhead - 拡張トランザクションセキュリティまとめ脅威検知機能により、Salesforce組織に発生した脅威を顕在化させることができ、組織の管理者はこれらに気付くことで追加の対応や対策を検討するきっかけを得ることが出来るようになります。ただし、本機能の活用に当たってはログの有効化やトランザクションセキュリティポリシーの活用など、いくつか事前に準備を行っておくことが重要となりますので、本記事をきっかけに対応を進めていただけると幸いです。
-
この記事で学べること標準機能と比較して、拡張トランザクションセキュリティで何ができるのか学べます。拡張トランザクションセキュリティとはリアルタイムイベントを活用して特定条件にマッチする操作をブロックする、管理者へ通知をする、あるいは高保証セッションではないユーザに多要素認証を要求することを可能にする機能です。条件が記載される設定をトランザクションセキュリティポリシー(以下、ポリシー)と呼びます。誰に何をさせて良いかといった権限周りの設定は標準機能のプロファイルや権限セットで実施することが基本ですが、拡張トランザクションセキュリティを利用することでより細やかにユーザに禁止させたい操作、管理者へ通知をさせたい操作等について条件設定ができる様になります。トランザクションセキュリティポリシーの実装に当たっては、ローコードで実装できる条件ビルダーとプロコードでのApex実装と2種類の方法が用意されています。どちらをご利用いただく場合でもトレイルヘッドの拡張トランザクションセキュリティを確認いただくことで作成方法を学ぶことができます。ここからは拡張トランザクションセキュリティで設定できる各ポリシーについて、そもそもプロファイルでどの様な制御ができるのか、そしてどの様な場合に本機能の実装を検討するべきなのかを記載していきます。条件ビルダーで設定できる条件については各ポリシーのリンク先をご確認ください。Apexを利用する際にはApex を使用する拡張トランザクションセキュリティポリシーの作成をご参照ください。ApiEventポリシーユーザは外部のアプリケーションと連携する等の目的でAPIを利用することができます。標準機能ではプロファイルで[システム管理者権限]配下の[APIの有効化]をオフにすることですべてのAPIの使用をブロックすることができます。本ポリシーは[APIの有効化]権限を持つユーザに対して更に細やかに参照系APIの使用条件を定めて利用させたい場合、あるいは条件にマッチする利用があった時に通知を受けたい場合に実装を検討します。BulkApiResultEventStoreポリシーBulk APIの実行結果は[設定]画面で[一括データ読み込みジョブ]を開く事で確認することができます。標準機能ではプロファイルで[システム管理者権限]配下の[データインテグレーションの管理]、[APIの有効化]、[設定・定義を参照する]のいずれかをオフにすることで[一括データ読み込みジョブ]へのアクセスをブロックすることができます。本ポリシーは上記3つの権限を持つユーザに対してさらに細やかにBulk APIのダウンロード実行結果へのアクセス条件を定めたい場合、あるいは条件にマッチする利用があった時に通知を受けたい場合に実装を検討します。Bulk APIの実行を制御をするポリシーではない点にご注意ください。ListViewEventポリシーユーザはリストビューからデータを一覧で表示することができます。標準機能では参照権限を持つオブジェクトに対するリストビューの閲覧を制限する機能はありません。本ポリシーは特定の条件にマッチするリストビューを表示をさせたくない、あるいは条件にマッチする利用があった時に通知を受けたい場合に実装を検討します。LoginEventポリシーユーザはアプリケーションを利用するためにログインをする必要があります。標準機能ではユーザの無効化及び凍結の機能を用いてログインをブロックすることができます。またプロファイルで[ログインIPアドレスの制限]や[ログイン時間帯の制限]の制限をかけることもできます。更にはログインフロー用いてログインの制限をかけることも可能です。本ポリシーはログインフローで使用するフローに馴染みがなく、レポートやリストビューの条件設定のように簡単に設定管理できる条件ビルダーを使用したい場合や、逆に複雑なポリシーや処理をApexでコーディングしたい場合に実装を検討します。ReportEventポリシーユーザはレポート機能を利用してデータを表示、またはデータをエクスポートすることができます。標準機能ではプロファイルで[一般ユーザ権限]配下の[レポートの実行]をオフにすることでレポートの使用を制限することができます。また[レポートのエクスポート]をオフにすることでエクスポートのブロックも可能です。本ポリシーはレポートの機能自体をブロックするのではなく、特定の条件にマッチするレポートの使用やエクスポートをブロックしたい場合や通知を受けたい場合に実装を検討します。PermissionSetEventStoreポリシーユーザに権限を割り当てる機能に権限セットがあります。標準機能ではプロファイルで[システム管理者権限]配下の[権限セットの割り当て]をオフにすることで権限セットの割り当てをブロックすることができます。また[プロファイルと権限セットの管理]をオフにすることで権限セットの作成をブロックすることもできます。本ポリシーはヘルプサイトに記載のある特定の権限を制御(有効化や無効化またはユーザへの割り当てや割り当て解除)したい場合、特定の条件にマッチする権限セットの操作をブロックしたい場合、あるいは条件にマッチする利用があった時に通知を受けたい場合に実装を検討します。脅威検知に関するポリシー類標準機能で脅威検知に関するイベントの通知を受ける機能はありません。脅威検知のイベントが発生した通知を受けたい場合に本機能の実装を検討します。併せて脅威検知の利用開始の記事もご確認ください。ApiAnomalyEventStore ポリシーCredentialStuffingEventStore ポリシーReportAnomalyEventStore ポリシーSessionHijackingEventStore ポリシー学習ツールヘルプ:拡張トランザクションセキュリティヘルプ:Apex を使用する拡張トランザクションセキュリティポリシーの作成トレイルヘッド:拡張トランザクションセキュリティまとめトランザクションセキュリティでは、標準機能の権限コントロールでは実現できない細かい条件設定によってブロックだけではなく、通知を要求するなどのアクションをローコートの条件ビルダーや複雑な条件設定をプロコードのApexで実装できます。
-
この記事で学べることイベントモニタリングに含まれるトランザクションセキュリティ機能により、お客様はご自身で定義されたルールに沿って、組織内の特定のアクセスを検知・遮断することができるようになります。本記事では、このトランザクションセキュリティ機能を使い始めるにあたってどのような用途で活用できるのか、実際の条件例を交えながら具体的なポリシー例をご紹介します。(おさらい) イベントモニタリングに含まれる2種類のログの違いイベントモニタリングライセンスには、以下2種類のログが含まれます。リアルタイムイベントモニタリング:セキュリティインシデントの発生ログとレコードへのアクセスログイベントモニタリング:イベント発生 / エラー / パフォーマンス分析用のイベントログこの2種類のログの違いの詳細については、以下の記事をご参照ください。イベントモニタリングとはこのうち、今回ご説明するトランザクションセキュリティポリシーはリアルタイムイベントモニタリングログを利用します。トランザクションセキュリティ機能の概要については、以下の記事をご参照ください。トランザクションセキュリティとは条件ビルダーによるポリシー作成例ApiEvent ポリシー例[特定のオブジェクトにて照会に○○ミリ秒以上かかったAPIクエリを検出]ポリシー設定 (“リード”オブジェクトの例)イベント: ApiEvent条件ロジック: すべての条件に一致 (AND)条件: 条件 / 演算子 / 値照会されるエンティティ / [次の文字列と一致する] / “Lead” (任意のオブジェクト名)Elapsed Time / [>=] / “1,000” (任意の経過ミリ秒)[2つ以上の特定のオブジェクトのデータローダによるエクスポートの検出]ポリシー設定 (“取引先責任者”もしくは“リード”オブジェクトの例)イベント: ApiEvent条件ロジック: カスタム条件ロジックに一致 → (1 OR 2) AND 3 AND 4条件: 条件 / 演算子 / 値1. 照会されるエンティティ / [次の文字列と一致する] / “Contact” (任意のオブジェクト名)2. 照会されるエンティティ / [次の文字列と一致する] / “Lead” (任意のオブジェクト名)3. クエリ / [次の文字列と一致する] / “Select”4. Client / [次の文字列で始まる] / “DataLoader”ListViewEvent ポリシー例[APIを使用して照会されたリストビューの検出]ポリシー設定イベント: ListViewEvent条件ロジック: すべての条件に一致 (AND)条件: 条件 / 演算子 / 値イベントソース / [次の文字列と一致する] / “API”メモ: API の代わりに Classic または Lightning を指定することで、UIを利用したリストビューの照会についても追跡することができます。[2つ以上の特定のオブジェクトのリストビュー実行の検出]ポリシー設定 (“取引先責任者”もしくは“リード”オブジェクトの例)イベント: ListViewEvent条件ロジック: いずれかの条件に一致 (OR)条件: 条件 / 演算子 / 値照会されるエンティティ / [次の文字列と一致する] / “Contact” (任意のオブジェクト名)照会されるエンティティ / [次の文字列と一致する] / “Lead” (任意のオブジェクト名)[特定ドメインのユーザによるすべてのレコードもしくは特定のリストビュー実行の検出]ポリシー設定イベント: ListViewEvent条件ロジック: カスタム条件ロジックに一致 → (1 OR 2) AND 3条件: 条件 / 演算子 / 値1. 範囲 / [次の文字列と一致する] / “Everything”2. 名前 / [次の文字列と一致する] / “SuperSecureListView” (任意のリストビュー名)3. ユーザ名 / [次の文字列で終わる] / “@spy.mycompany.com” (任意のドメイン名)LoginEvent ポリシー例[特定のIPアドレスからのログインを検出]ポリシー設定イベント: LoginEvent条件ロジック: すべての条件に一致 (AND)条件: 条件 / 演算子 / 値アクセス元 IP / [次の文字列と一致する] / “12.34.56.78” (任意のIPアドレス)メモ: [次の文字列で始まる] や [次の文字列を含む] 演算子を使用することで、特定のIPアドレス以外にも、社内ネットワークなど特定のサブネットに所属するIPアドレスからのログインを追跡することができます。[特定のブラウザからのログインを検出]ポリシー設定イベント: LoginEvent条件ロジック: すべての条件に一致 (AND)条件: 条件 / 演算子 / 値ブラウザ / [次の文字列を含む] / “Chrome” (任意のブラウザ名)メモ: 文字列を変えることで、Safari や Firefox ブラウザからのログインについても追跡することもできます。ReportEvent ポリシー例[特定のオブジェクトで○○件以上のレコードを表示したレポート実行の検出]ポリシー設定 (“リード”オブジェクトの例)イベント: ReportEvent条件ロジック: すべての条件に一致 (AND)条件: 条件 / 演算子 / 値処理行 / [>=] / “2,000”照会されるエンティティ / [次の文字列と一致する] / “Lead” (任意のオブジェクト名)[出力にメールアドレスが含まれる列を持つレポート実行の検出]ポリシー設定イベント: ReportEvent条件ロジック: すべての条件に一致 (AND)条件: 条件 / 演算子 / 値列名 / [次の文字列を含む] / “Email” (任意の列名)メモ: [次の文字列を含む] 演算子を使用することで、Email、Customer Email、 Email of Customer など、列名に“Email”を含む項目を全て当てはめることができます。[2つ以上の特定のオブジェクトを元にしたレポートのエクスポートの検出]ポリシー設定 (“取引先責任者”もしくは“リード”オブジェクトの例)イベント: ReportEvent条件ロジック: カスタム条件ロジックに一致 → (1 OR 2) AND 3条件: 条件 / 演算子 / 値1. 照会されるエンティティ / [次の文字列と一致する] / “Contact” (任意のオブジェクト名)2. 照会されるエンティティ / [次の文字列と一致する] / “Lead” (任意のオブジェクト名)3. 演算子 / [次の文字列と一致する] / “ReportExported”[高保証セッションレベルセキュリティがないセッションからの機密レポート参照を検出]ポリシー設定イベント: ReportEvent条件ロジック: カスタム条件ロジックに一致 → (1 OR 2) AND 3条件: 条件 / 演算子 / 値セッションレベル / [次の文字列と一致する] / “LOW”セッションレベル / [次の文字列と一致する] / “STANDARD”名前 / [次の文字列を含む] / “AccountList” (任意のレポート名)PermissionSetEvent ポリシー例[“パスワード無期限”権限のユーザへの割り当てを検出]ポリシー設定イベント: PermissionSetEvent条件ロジック: すべての条件に一致 (AND)条件: 条件 / 演算子 / 値権限リスト / [次の文字列を含む] / “PasswordNeverExpires”演算子 / [次の文字列と一致する] / “AssignedToUsers”Apexによるポリシー作成例ReportEvent ポリシー例[特定のプロファイルに属するユーザによるレポートのエクスポートを検出]ポリシー設定イベント: ReportExportApexコード例global class BlockSpecificProfileReportExport implements TxnSecurity.EventCondition { public boolean evaluate(SObject event) { switch on event{ when ReportEvent reportEvent { return evaluate(reportEvent); } when null { return false; } when else{ return false; } } } private boolean evaluate(ReportEvent reportEvent) { // Retrieve User's profile id. User results = [SELECT Id, ProfileId FROM User WHERE Id = :reportEvent.UserId]; // Check ProfileId and report export operation. if (results.ProfileId.equals('00eXXXXXXXXXXXXXX') && reportEvent.Operation.contains('ReportExport')) { return true; } return false; }}学習ツール拡張トランザクションセキュリティポリシーの種別条件ビルダーの例Apex トランザクションセキュリティの高度な実装例まとめトランザクションセキュリティを活用することにより、プロファイルや権限セットでは表現できないような細かなユーザアクセスの検出や制御を実現し、リアルタイムで検知・遮断することが可能となります。条件ビルダーでは画面操作により誰でも簡単にポリシーを作成することができる一方で、より複雑な要件に対してはApexコードによるコーディングを用いたポリシーの作成にも対応しており、用途やシステム管理者の習熟度に応じて使い分けることが出来るようになっています。
-
この記事で学べることイベントモニタリングに含まれる2種類のログを理解し、パファーマンス分析のために、確認したいケースごとにどのログのどの項目を参照することにより、ボトルネックやチューニングのポイントを確認することができるか理解できます。イベントモニタリングに含まれる2種類のログの違いイベントモニタリングライセンスには、以下2種類のログが含まれます。リアルタイムイベントモニタリング:セキュリティインシデントの発生ログとレコードへのアクセスログイベントモニタリング:イベント発生 / エラー / パフォーマンス分析用のイベントログこの2種類のログの違いの詳細については、以下の記事をご参照ください。イベントモニタリングとはここでは、パフォーマンス分析用のログとしてイベントモニタリングのログを対象に説明しています。パフォーマンス監視の重要性生産性向上を実現するために導入したせっかくのシステムもレスポンスが悪く利用にストレスがあると利用が促進されない場合があります。パフォーマンスはシステムを利用するにあたって重要な要因です。しかしパフォーマンスは様々な要因で劣化してしまいます。例えば、大量データの取り扱い、データベースのインデックス、冗長なロジックのコード、またお客様環境においてもネットワークやクライアントの環境によってもパフォーマンス劣化が発生します。そのため継続的なパフォーマンスの監視はシステムの導入を成功に導くために重要なポイントとなります。イベントモニタリングによるログの取得多くのイベントログに要求の完了にかかった CPU 時間 (CPU_TIME)が記録されます。また、APEX実行に関するログにはデータベースのパフォーマンスに係る数値(DB_TOTAL_TIME)が記録されます。パフォーマンスの問題が発生した際は、イベントログから要求の完了に係ったCPU時間とデータベースの処理にかかった時間を比較することで、パフォーマンス上の問題が独自のコードの部分にあるかデータベースレイヤのどちらにあるか、またはクライアント環境に起因するものか判断することが出来ます。また、大まかに処理に時間がかかった部分を判断した上で、デバッグログの設定をしていただく事でより具体的にどの処理に時間を要したか、効率よく確認をしていく事が可能となります。ヘルプ : デバッグログの設定取得するべきイベントログファイル以下にパフォーマンスに関する調査において参考となるイベントログファイルおよびその項目について例示をします(表中黄色いハイライト部分は、ログ対象のイベントを特定する項目です)。各イベントログファイルの内容については以下をご参照ください。SOAP API開発ガイド:EventLogFile でサポートされているイベント種別Lightning ページビューイベント種別Lightning Experience および Salesforce モバイルアプリケーションでイベントが発生したページに関する情報を表します。Lightning ページビューイベントは、ユーザがアクセスしたページ、そのページにユーザが滞在した時間、ページの読み込み時間を追跡します。Summer ‘22のリリースで、EFFECTIVE_PAGE_TIME_DEVIATION、EFFECTIVE_PAGE_TIME_DEVIATION_ERROR_TYPE、および EFFECTIVE_PAGE_TIME_DEVIATION_REASONの3項目が追加されました。これらの項目によりページのロードに時間がかかる原因の特定が容易になります。項目名説明PAGE_URLユーザが開いた最上位の Lightning Experience ページまたは Salesforce モバイルアプリケーションページの相対 URL。ページには、1 つ以上の Lightning コンポーネントを含めることができます。複数のレコード ID を PAGE_URL に関連付けることができます。EFFECTIVE_PAGE_TIMEページを読み込んでからユーザがページの機能を操作できるようになるまでにかかった時間 (ミリ秒) を示します。実効ページ時間は、複数の要素 (ネットワーク速度、ハードウェアパフォーマンス、ページの複雑さなど) の影響を受けます。60 秒を超える有効なページ時間が検出された場合、この項目の値は null に設定されます。EFFECTIVE_PAGE_TIME_DEVIATION逸脱が検出されると EFFECTIVE_PAGE_TIME_DEVIATION はtrueを記録します。デフォルト値はfalseです。EFFECTIVE_PAGE_TIME_DEVIATION_REASONページ読み込み時間の逸脱の理由が記録されます。値の意味についてはLightning ページビューイベント種別からAPI version v55.0以降をご確認くださいEFFECTIVE_PAGE_TIME_DEVIATION_ERROR_TYPEこのフィールドはEFFECTIVE_PAGE_TIME_DEVIATION_REASONにPAGE_HAS_ERRORが記録された場合に入力されます。入力されうる値はCUSTOMまたはSYSTEMとなります。・CUSTOM : 顧客システムまたはネットワークに起因するエラー・SYSTEM : セールスフォースに起因するエラーLightning パフォーマンスイベント種別Lightning Experience および Salesforce モバイルアプリケーションのパフォーマンスのトレンドを追跡します。レコードに対するユーザアクションに関する所要時間が把握できます。項目名説明UI_EVENT_SOURCEレコードに対するユーザアクション(作成/編集/削除/参照など)。この項目の値は、ユーザのアクションが 1 つのレコードに対して実行されたか複数のレコードに対して実行されたかを示します。たとえば、read は (レコード詳細ページなどで) 1 つのレコードが参照されたことを示し、reads は (リストビューなどで) 複数のレコードが参照されたことを示します。DURATIONページ開始時刻からの時間 (ミリ秒)。Apex 実行イベント種別実行された Apex クラスに関する詳細が含まれます。項目名説明URI要求を受信しているページの URI。NUMBER_SOQL_QUERIESイベント中に実行された SOQL クエリ数。IS_LONG_RUNNING_REQUEST要求が実行時間が長い組織の同時 Apex 要求の上限にカウントされるか (true)、否か (false) を示します。CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。この項目は、アプリケーションサーバレイヤで実行されているアクティビティ量を示します。DMLの実行中には、レコードロックや処理中のレコードのロック解除待ち、apexコードのコンパイルなど、(開発者が制御できない)他の動作が行われます。この時間はすべて、CPU使用率にカウントされません。DB_TOTAL_TIME要求のすべての操作について、データベース処理の待機にかかった時間の集計 (ミリ秒)。この項目を CPU_TIME と比較して、パフォーマンス上の問題がデータベースレイヤと独自のコードのどちらで発生しているかを判断します。EXEC_TIMEエンドツーエンドの Apex 実行時間 (単位: ミリ秒)。RUN_TIME要求にかかった時間 (ミリ秒単位)。要求の値が 5 秒を超える場合、同時長時間実行の Apex 制限により、長時間実行の要求と見なされます。Salesforce/第三者へのリクエストにかかる時間で、HTTPコールアウト、REST/SOAPコールなどが含まれる場合があります。Apex REST APIイベント種別すべての Apex REST API 要求に関する情報を取得します。項目名説明URI要求を受信しているページの URI。ROWS_PROCESSED要求で処理された行数。CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。この項目は、アプリケーションサーバレイヤで実行されているアクティビティ量を示します。DMLの実行中には、レコードロックや処理中のレコードのロック解除待ち、apexコードのコンパイルなど、(開発者が制御できない)他の動作が行われます。この時間はすべて、CPU使用率にカウントされません。DB_CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。要求時にデータベースレイヤで実行されているアクティビティ量を示します。DB_BLOCKSデータベースで発生しているアクティビティ量を示します。この項目の値が高い場合、クエリにインデックスまたは検索条件を追加するとパフォーマンスが向上します。DB_TOTAL_TIMEデータベース往復処理の時間 (ナノ秒単位)。JDBC ドライバー、データベースへのネットワーク、および DB_CPU_TIME で費やされた時間を含みます。この項目を CPU_TIME と比較して、パフォーマンス上の問題がデータベースレイヤと独自のコードのどちらで発生しているかを判断します。RUN_TIME要求にかかった時間 (ミリ秒単位)。Apex SOAP イベント種別Web サービス API コールに関する詳細が含まれます。項目名説明CLASS_NAMEApex クラス名。クラスが管理パッケージの一部である場合、この文字列にはパッケージ名前空間が含まれます。CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。この項目は、アプリケーションサーバレイヤで実行されているアクティビティ量を示します。DMLの実行中には、レコードロックや処理中のレコードのロック解除待ち、apexコードのコンパイルなど、(開発者が制御できない)他の動作が行われます。この時間はすべて、CPU時間にカウントされません。DB_TOTAL_TIME要求のすべての操作について、データベース処理の待機にかかった時間の集計 (ミリ秒)。この項目を CPU_TIME と比較して、パフォーマンス上の問題がデータベースレイヤと独自のコードのどちらで発生しているかを判断します。RUN_TIME要求にかかった時間 (ミリ秒単位)。要求の値が 5 秒を超える場合、同時長時間実行の Apex 制限により、長時間実行の要求と見なされます。Salesforce/第三者へのリクエストにかかる時間で、HTTPコールアウト、REST/SOAPコールなどが含まれる場合があります。Apex トリガイベント種別組織で起動されたApexトリガに関する詳細が含まれます。項目名説明TRIGGER_ID起動されたトリガの 15 文字の ID。CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。この項目は、アプリケーションサーバレイヤで実行されているアクティビティ量を示します。DMLの実行中には、レコードロックや処理中のレコードのロック解除待ち、apexコードのコンパイルなど、(開発者が制御できない)他の動作が行われます。この時間はすべて、CPU時間にカウントされません。DB_TOTAL_TIME要求のすべての操作について、データベース処理の待機にかかった時間の集計 (ミリ秒)。この項目を CPU_TIME と比較して、パフォーマンス上の問題がデータベースレイヤと独自のコードのどちらで発生しているかを判断します。EXEC_TIMEエンドツーエンドの Apex 実行時間 (単位: ミリ秒)。Salesforce/第三者へのリクエストにかかる時間で、HTTPコールアウト、REST/SOAPコールなどが含まれる場合があります。RUN_TIME要求にかかった時間 (ミリ秒単位)。要求の値が 5 秒を超える場合、同時長時間実行の Apex 制限により、長時間実行の要求と見なされます。Salesforce/第三者へのリクエストにかかる時間で、HTTPコールアウト、REST/SOAPコールなどが含まれる場合があります。非同期レポート実行イベント種別非同期レポート実行イベントは、スケジュールされたレポート要求に対して作成されます。このカテゴリには、ダッシュボードの更新、非同期レポート、スケジュールレポート、分析スナップショットが含まれます。項目名説明REPORT_ID実行されたレポートの 15 文字の ID。ROW_COUNT非同期レポート実行イベントで処理された行数。CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。この項目は、アプリケーションサーバレイヤで実行されているアクティビティ量を示します。DMLの実行中には、レコードロックや処理中のレコードのロック解除待ち、apexコードのコンパイルなど、(開発者が制御できない)他の動作が行われます。この時間はすべて、CPU時間にカウントされません。DB_BLOCKSデータベースで発生している活動量を示します。この項目の値が高い場合、クエリにインデックスまたは検索条件を追加するとパフォーマンスが向上します。DB_TOTAL_TIME要求のすべての操作について、データベース処理の待機にかかった時間の集計 (ミリ秒)。この項目を CPU_TIME と比較して、パフォーマンス上の問題がデータベースレイヤと独自のコードのどちらで発生しているかを判断します。RUN_TIME要求にかかった時間 (ミリ秒単位)。要求の値が 5 秒を超える場合、同時長時間実行の Apex 制限により、長時間実行の要求と見なされます。Salesforce/第三者へのリクエストにかかる時間で、HTTPコールアウト、REST/SOAPコールなどが含まれる場合があります。実行時間が長い同時 Apex 制限イベント種別組織の同時実行制限に達した後に Salesforce によって終了された、組織内の実行時間が長い同時 Apex 要求に関する情報が含まれます。確立された Apex コンテキストが 5 秒間実行される要求は、実行時間が長い同時要求の組織の制限に含まれます (非同期要求は制限に含まれません)。実行時間が長い要求数が 10 (組織のデフォルトの制限) を超えた場合、その他の実行時間が長い要求は終了されます。項目名説明REQUEST_URISalesforce によって終了された実行時間が長い Apex 要求の URI。継続コールアウトサマリーイベント種別トランザクション中に実行されたすべての非同期コールアウト、その応答状況コード、実行時間、および対象の URL エンドポイントに関する情報が含まれます。項目名説明URLコールアウトエンドポイント URL。継続で使用された HTTP 要求数によっては、この項目に最大 3 個のスペース区切り値が含まれる可能性があります。DURATION合計継続時間 (ミリ秒)。外部のカスタム Apex コールアウトイベント種別Salesforce Connect のカスタムアダプタを介した外部データコールアウトを表します。項目名説明ENTITYアクセスされる外部オブジェクトの名前。ACTIONコールアウトによって実行されるアクション(query/upsert/delete)。ROWS_FETCHEDコールアウトによって取得された行の数ROWS結果セットの総レコード数FETCH_MS外部システムからクエリ結果を取得するのに要した時間 (ミリ秒)。THROUGHPUT1 秒間で取得されたレコード数。EXECUTE_MSSalesforce がクエリの準備および実行に要した時間 (ミリ秒)。TOTAL_MSクエリの準備、実行、およびクエリ結果の取得に要した時間 (ミリ秒)外部の OData コールアウトイベント種別Salesforce Connect の OData 2.0 および OData 4.0 アダプタを介した外部データコールアウトを表します。項目名説明ENTITYアクセスされる外部オブジェクトの名前。ACTIONコールアウトによって実行されるアクション(query/upsert/delete)。ROWS_FETCHEDコールアウトによって取得されたレコードの数。コールアウトによって取得されたレコードは、大きな結果セットのサブセットである場合がありますROWS結果セットの総レコード数FETCH_MS外部システムからクエリ結果を取得するのに要した時間 (ミリ秒)THROUGHPUT1 秒間で取得されたレコード数。EXECUTE_MSSalesforce がクエリの準備および実行に要した時間 (ミリ秒)TOTAL_MSクエリの準備、実行、およびクエリ結果の取得に要した時間 (ミリ秒)レポートイベント種別ユーザがレポートを実行したときの動作に関する情報が含まれます。このイベント種別には、レポートのエクスポートイベント種別のすべての活動とその他の活動が含まれます。項目名説明REPORT_ID実行されたレポートの 15 文字の ID。ROW_COUNTレポートイベントで処理された行数。行数が多く、かつ AVERAGE_ROW_SIZE も大きい場合は、ユーザが詐欺目的で情報をダウンロードしている可能性があります。たとえば、競合他社に転職する前にすべてのセールスリードをダウンロードする営業担当などがこれに該当します。CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。この項目は、アプリケーションサーバレイヤで実行されているアクティビティ量を示します。DMLの実行中には、レコードロックや処理中のレコードのロック解除待ち、apexコードのコンパイルなど、(開発者が制御できない)他の動作が行われます。この時間はすべて、CPU時間にカウントされません。DB_CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。要求時にデータベースレイヤで実行されている活動量を示します。DB_BLOCKSデータベースで発生しているアクティビティ量を示します。この項目の値が高い場合、クエリにインデックスまたは検索条件を追加するとパフォーマンスが向上します。DB_TOTAL_TIMEデータベース往復処理の時間 (ナノ秒単位)。JDBC ドライバー、データベースへのネットワーク、および DB_CPU_TIME で費やされた時間を含みます。この項目を CPU_TIME と比較して、パフォーマンス上の問題がデータベースレイヤと独自のコードのどちらで発生しているかを判断します。RUN_TIME要求にかかった時間 (ミリ秒単位)。フロー実行イベント種別合計実行時間、インタビューの数、エラーの数などの詳細を含む、実行されたフローに関する情報が含まれます。項目名説明FLOW_VERSION_ID実行されたフローバージョンの ID。FLOW_LOAD_TIMEフローのメタデータの読み込みにかかった時間 (ミリ秒単位)。TOTAL_EXECUTION_TIMEすべてのフローインタビューの開始と終了にかかった合計時間 (ミリ秒単位)。Wave パフォーマンスイベント種別Analytics パフォーマンスのトレンドを追跡するのに役立ちます。項目名説明RECORD_IDTableau CRM オブジェクトの Salesforce ID。TAB_IDユーザインターフェースの特定の [分析] タブの ID。CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。この項目は、アプリケーションサーバレイヤで実行されているアクティビティ量を示します。DMLの実行中には、レコードロックや処理中のレコードのロック解除待ち、apexコードのコンパイルなど、(開発者が制御できない)他の動作が行われます。この時間はすべて、CPU時間にカウントされません。RUN_TIME要求にかかった時間 (ミリ秒単位)。EPT体験ページ時間 (ミリ秒単位)。Visualforce 要求イベント種別Visualforce 要求に関する詳細が含まれます。要求はブラウザ (UI) から実行できます。項目名説明PAGE_NAME要求された Visualforce ページの名前。CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。この項目は、アプリケーションサーバレイヤで実行されているアクティビティ量を示します。DMLの実行中には、レコードロックや処理中のレコードのロック解除待ち、apexコードのコンパイルなど、(開発者が制御できない)他の動作が行われます。この時間はすべて、CPU時間にカウントされません。DB_CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。要求時にデータベースレイヤで実行されている活動量を示します。DB_BLOCKSデータベースで発生している活動量を示します。この項目の値が高い場合、クエリにインデックスまたは検索条件を追加するとパフォーマンスが向上します。DB_TOTAL_TIMEデータベース往復処理の時間 (ナノ秒単位)。JDBC ドライバー、データベースへのネットワーク、および DB_CPU_TIME で費やされた時間を含みます。この項目を CPU_TIME と比較して、パフォーマンス上の問題がデータベースレイヤと独自のコードのどちらで発生しているかを判断します。RUN_TIME要求にかかった時間 (ミリ秒単位)。コンソールイベント種別Salesforce コンソールのパフォーマンスと使用に関する情報が含まれます。サイドバーコンポーネントで [コンソール] タブが開かれるたびに、コンソールイベントがログに記録されます。それ以外は、Salesforce Classic の場合と同様に、[コンソール] タブが開かれると、通常のレコードの詳細の表示イベントが記録されます。項目名説明COMPONENT_IDコンポーネントの 15 文字の ID。CONSOLE_IDコンソールの 15 文字の ID。RECORD_IDコンソールに関連付けられたレコードの 15 文字の ID。CPU_TIME要求の完了にかかった CPU 時間 (ミリ秒単位)。この項目は、アプリケーションサーバレイヤで実行されているアクティビティ量を示します。DMLの実行中には、レコードロックや処理中のレコードのロック解除待ち、apexコードのコンパイルなど、(開発者が制御できない)他の動作が行われます。この時間はすべて、CPU時間にカウントされません。DB_TOTAL_TIMEデータベース往復処理の時間 (ナノ秒単位)。JDBC ドライバー、データベースへのネットワーク、および DB_CPU_TIME で費やされた時間を含みます。この項目を CPU_TIME と比較して、パフォーマンス上の問題がデータベースレイヤと独自のコードのどちらで発生しているかを判断します。RUN_TIME要求にかかった時間 (ミリ秒単位)。学習ツールSOAP API開発ガイド:EventLogFile でサポートされているイベント種別ヘルプ : デバッグログの設定トレイルヘッド:Lightning Experience のパフォーマンスの最適化ヘルプ:技術要件とパフォーマンスのベストプラクティスまとめパフォーマンス分析に関するログは、イベントモニタリングのログに記録され、対象のログと項目を確認することにより、パフォーマンス問題がどこで発生しているのか、またどこがボトルネックになっているのか確認することができます。この記事で学べることイベントモニタリングに含まれる2種類のログを理解し、パファーマンス分析のために、確認したいケースごとにどのログのどの項目を参照することにより、ボトルネックやチューニングのポイントを確認することができるか理解できます。
-
この記事で学べること項目監査履歴は、データの正確性を維持し、第三者に改ざん等がされていないことを証明するための更新ログの記録という本来の目的とは別に万一のデータ漏えい事故において、漏えい時期の絞り込みに寄与し、インシデントレスポンスにおける効率的なログ調査を実現できることが新たに注目されています。本記事ではとあるオフィスにおける架空の情報漏えい事故の対応を見て行くことで、効率的な対応が可能である理由を学べます。とあるオフィスでの一幕とある架空企業A社はDXに関する提案・開発支援・運用支援のサービスを手掛ける企業で、多くの見込み客、顧客、商談、プロジェクト情報、サポート状況など、様々な情報をSalesforceで管理している。A社はとある官庁との取引があり、当該官庁向けのプロジェクト情報もステークホルダー管理(個人情報)をした上でSalesforceに保管していた。ある日、A社の営業が顧客でとある官庁から一通のメールを受信した。メールには、当該官庁のセキュリティ運用を担っているベンダーの調査で、ダークWebで取引される情報のサンプルデータ(犯罪者が取引する情報の信ぴょう性を喧伝するために窃取したデータの一部を公開したもの)に当該官庁向けプロジェクトの情報が確認されたこと、プロジェクト情報には個人情報であるステークホルダー情報を含んでいたこと、データの内容からA社より情報が漏えいしたと思われること、また緊急で調査をしてほしい旨が書かれていた。サンプルデータを確認するとA社とお客様でしか知り得ないプロジェクト情報がA社のSalesforce環境のデータと一言一句違わずに書かれており、また個人情報もA社が管理している内容とほぼ同等な内容であることが確認された。A社はCSIRTを中心としたインシデントレスポンスを即時開始。CSIRTは過去に遡ってSalesforce環境におけるアクセスログの調査を開始した。アクセスログの記録についてアクセスログはイベントモニタリングで提供される機能の一つであるリアルタイムイベントモニタリングで確認することができます。詳細はアクセスログの参照ガイドをご参照ください。再びオフィス(本記事のメイントピック)A社はイベントモニタリングを契約の上、リアルタイムイベントモニタリングを有効化し、また定期的にアクセスログの保管をしていたことから、アクセスログを調査できる目途は立った。しかしアクセスログの量は膨大で、またサンプルデータからは漏えい時期を隠匿するためか、レコードの作成日や更新日等の監査項目は記載されていなかった。そのためデータの漏えいした時期や漏えいに関与したユーザアカウントの絞りこみといった調査には相当な時間を要すると思われた。CSIRTに招集された官庁向けプロジェクトのプロジェクトマネージャが漏えいしたサンプルデータを見ると、いくつか古い状態のデータがあるのに気付いた。このデータが古い状態であった期間が特定できればログの絞り込みは容易になるのではないかと考え履歴の調査を開始した。項目監査履歴の特徴項目監査履歴は項目履歴管理の機能を拡張する製品となります。詳細は項目監査履歴とはをご参照ください。ここでは漏えいが発覚しCSIRTによる調査を開始した日を2020/12/31 として、サンプルデータや本番環境のデータの状態例を見ながら項目履歴管理を設定していない場合、項目監査履歴が無い場合、項目監査履歴がある場合の調査対象ログの絞り込み方を確認していきます。【漏えいしたサンプルデータから確認できた古い情報】【本番環境にある情報】※黄色はサンプルデータからの変更点、また日時データは簡略化のため年月以外は1日午前0時に統一、またデータの変更は、値から変更前後がわかりやすいように常に1が加算されるものとしています。例:99(変更前)→100(漏えい値)→101(変更後)項目履歴管理の設定をしていない場合それぞれのレコードでは作成日、最終更新日の監査情報しかありませんので、ログの調査対象期間は、漏えいしていた4つのレコードの中で一番最近に登録されたレコードの作成日(レコード4の2018/04/01)から、漏えい値から変更のあったレコード(レコード1,2,3)のうち、最も古い最終更新日(レコード2の2019/10/01)までの18ヶ月に絞り込まれます。この期間より古いと、レコード4が存在していませんし、また新しいとレコード2の項目Aの値が漏えいした値と異なることになるため調査対象期間から除外されるからです。青:レコードの値が確定できない時期 薄い緑:レコードの値が確定できる時期項目履歴管理の設定を実施していた場合項目履歴管理の設定をしている場合、項目レベルで変更履歴を確認することができます。A社の場合、項目Aに項目履歴管理の設定をしていた為、以下の履歴を確認することができました。【本番環境から確認できるレコード1の履歴】【本番環境から確認できるレコード2の履歴】このログによるとレコード1及びレコード2の項目Aの値が漏えい値から現在の値に変更された日時の特定ができましたが、24カ月より前の変更履歴が既に確認できないため、前の値から漏えい値に変更された日時の特定はできませんでした。また、A社においては履歴を管理できる項目の数が1オブジェクトあたり20項目という上限に抵触したために優先度の低い項目Bには履歴管理の設定ができていませんでした。青:レコードの値が確定できない時期 薄い緑:レコードの値が確定できる時期 濃い緑:漏えい値であったと確定した期間このログにより、レコード1とレコード2の項目Aが同時に漏えい値であった時期は2019年2月1日より前であることになり、調査期間も10ヶ月分に絞り込むことができました。2019年2月1日以降は、レコード1の項目Aが漏えい値と異なるため除外されるからです。項目監査履歴がある場合項目監査履歴があれば、1オブジェクトあたり項目履歴管理の3倍の60項目まで履歴管理を設定できるため、優先度の低かった項目Bの履歴管理も設定でき、またログの保存期間も無期限であるため、以下の情報が追加で確認することができます。【本番環境から確認できるレコード1の履歴】【本番環境から確認できるレコード2の履歴】【本番環境から確認できるレコード3の履歴】薄い緑:レコードの値が確定できる時期 濃い緑:漏えい値であったと確定した期間このログにより、すべてのレコードが存在し、各レコードの項目の値が漏えい当時の値であったのがいつであったのか、すなわちその期間にデータが抜き出されたことを特定できます。今回のお話では、各レコードの漏えい値がSalesforce内に存在していた期間は、2018年1月の僅か1ヶ月間であったことが判明、その調査対象期間のイベントモニタリングのログを解析することにより、漏えいに関与したユーザアカウントの特定と同時に漏えいしたデータの全貌が短期間で特定することが可能となりました。今回のお話では、外部から入手できたレコードが4件と項目も2つのみというシンプルなストーリーでしたが、実際には、外部から入手されたデータが多いほど、漏えい値の存在期間の被っている時期、つまり漏えいした時期がピンポイントで絞り込み可能となりますので、イベントモニタリングの導入には、ぜひセットで項目監査履歴の導入を検討いただければと思います。学習ツールヘルプ:項目履歴管理ヘルプ:項目監査履歴まとめ項目監査履歴は、更新頻度の多い項目に数多く設定しておくことにより、万一の情報漏えいに対してイベントモニタリングと合わせて効率的にインシデントレスポンスを行うことができます。
-
この記事で学べることプラットフォーム暗号化の導入メリット、従来の暗号化項目との違い、暗号鍵の管理方法の4つの違い、確率的暗号化と確定的暗号化の違いを理解できます。プラットフォーム暗号化の導入メリットSalesforceに格納されるデータは、データベースを取り巻くインフラレベルの物理的なセキュリティやマルチテナントデータベースの仕組み、そして内部脅威に対する厳格なアクセスコントロールによって常に高いセキュリティで守られています。また、多くのお客様は、認証やシングルサインオン、きめ細かいアクセス制御、ログイン監視などの標準機能により、データの安全性を十分に保っています。一方で、個人情報や機密データなどの慎重に扱うべきデータをSalesforceに保存するお客様の増加に伴い、外部および内部のデータコンプライアンスポリシーやガイドラインへの対応のため、標準のセキュリティ対策に加え「保存データの暗号化」が必要となるケースが増えています。 お客様の業種は金融サービス、ヘルスケア、製造、テクノロジー、公共団体など多岐にわたりますが、このようなケースでは、主に以下のような要件への対応を求められます。クラウドサービスに保存する個人情報や機密データの暗号化暗号化鍵のライフサイクルの制御アプリケーションの機能の維持プラットフォーム暗号化は、検索、フロー、検証ルールなど、主要なアプリケーション機能を阻害しないよう設計されており(注)、お客様にて暗号化鍵のライフサイクルを制御しながら、Salesforceに保存されているデータをネイティブに暗号化することができます。外部および内部のデータコンプライアンスポリシーやガイドラインの要求を満たし、お客様のコンプライアンス対応における有効な追加レイヤーになる。これがプラットフォーム暗号化の導入メリットです。(注)プラットフォーム暗号化にはデータが暗号化されて保存されることに伴う機能制限やトレードオフがあります。また、AppExchangeアプリをご利用の場合、互換性の問題により一部または全部のサービスが制限される場合がございます。アプリの提供元にご確認いただくか動作をテストしてから本番環境でご利用いただくことを推奨します。プラットフォーム暗号化で暗号化できる項目Shield Platform Encryption のトレードオフおよび制限事項従来の暗号化とプラットフォーム暗号化との違い標準機能において、カスタム項目作成時に「テキスト(暗号化)」のデータ型で作成した項目のデータは保存時に暗号化されます。これを「従来の暗号化」と呼びます。従来の暗号化では、「テキスト(暗号化)」のデータ型で作成したカスタム項目のデータのみを保護できるのに対し、プラットフォーム暗号化は、広く使用されているさまざまな標準項目、一部のカスタム項目、および種々のファイルを暗号化できます。また、プラットフォーム暗号化では、個人取引先、ケース、検索、承認プロセス、およびその他の主要なアプリケーション機能やお客様による暗号化鍵のライフサイクルの管理もサポートしています。カスタム項目の従来の暗号化従来の暗号化と Shield Platform Encryption との違い4つの鍵管理方法と鍵の循環プラットフォーム暗号化を使用すると、4つの方法でデータの暗号化に使用される鍵素材の管理および循環が可能になります。デフォルトの鍵管理方式では、お客様はSalesforceを使用して「テナントの秘密」を生成し、それをSalesforceが管理するリリースごとの「主秘密」と結合してデータ暗号化鍵を抽出できます。抽出されたデータ暗号化鍵は、暗号化と復号化の両方の機能で使用されます。また、Bring Your Own Key(BYOK)サービスを使用して独自の鍵素材を使用する方法として、アップロードした鍵素材とSalesforceが管理する「主秘密」を結合してデータ暗号化鍵を抽出するBYOK 1、アップロードした鍵素材を「主秘密」と結合せず暗号化鍵として使用するBYOK 2、更に、鍵素材をSalesforce の外部に保存し、キャッシュのみの鍵サービスで鍵素材をオンデマンドで取得するBYOK 3の方法が用意されています。いずれの方式においても、お客様はテナントの秘密や鍵素材のライフサイクルを制御することで、データ暗号化鍵のライフサイクルを制御することが可能です。鍵の管理と循環確率的暗号化と確定暗号化プラットフォーム暗号化は、各データが暗号化されるたびに完全にランダムな暗号文字列に変換される「確率的暗号化」を基本としていますが、一部のデータ型の項目では、同じデータ文字列は同じ暗号文字列に変換される「確定的暗号化」を選択することが可能です。確率的暗号化は、ランダム初期化ベクトル(IV)とCBCモードでのAES-256bit暗号アルゴリズムを使用します。各データが暗号化されるたびに完全にランダムな暗号文字列に変換されるため、並べ替え操作などの一部の機能が失われますが、これはセキュリティを優先するための妥当なトレードオフと考えられています。一方、確定的暗号化は、静的初期化ベクトル(IV) を使用することで、同じデータ文字列は同じ暗号文字列に変換される仕組みを実現しており、暗号化されたデータを特定の項目値と照合できるようにしています。これにより絞り込みなどの制限が緩和され、ビジネス要求を最大限確保した暗号化が実現できます。確定的暗号化には、大文字と小文字を区別するものと、大文字と小文字を区別しないものの2種類があります。大文字と小文字を区別する暗号化では、取引先責任者オブジェクトに対するSOQLクエリでLastName = Jonesとすると、Jonesのみが返され、jonesやJONESは返されません。大文字と小文字を区別しない場合には、LastName = Jonesとすると、Jones、jonesまたはJONESが返されます。採用すべき暗号化方式について、米国政府機関やPCI DSSなどの米国発のガイドラインでは、NIST Special Publication 800-57 Part 1「鍵管理における 推奨事項」が参照されています。また、日本においては多くの企業が「電子政府における調達のために参照すべき暗号のリスト(CRYPTREC暗号リスト)」が参照しています。これらのガイドラインでは確定的暗号化の暗号方式は推奨されていません。電子政府推奨暗号リストに含まれる暗号方式を採用する必要がある項目や、お客様のPCI DSS認証において当社のPCI DSS AoC(準拠証明書)を利用する場合の対象項目には確定的暗号化は利用することができませんのでご注意ください。学習ツールTrailhead - モジュール Shield Platform Encryptionホワイトペーパー - Shield Platform Encryption Architecture(英語)まとめプラットフォーム暗号化は、企業に求められるデータコンプライアンス要件や業界基準、ガイドラインなどの暗号化要件を満たし、コンプライアンスにおける追加のレイヤーとして、クラウド上の非公開データの保護というステークホルダーとの契約上の義務を果たしていることを証明するために有効なオプションです。暗号化鍵の管理方法においては、鍵の生成及び管理を完全にお客様側でコントロールするといった厳しい要求にも対応が可能です。なお、機能上の制限は従来の暗号化と比較してかなり緩和されていますが、データが暗号化されて保存されることに伴うトレードオフがあるため、注意が必要です。
-
Event Monitoring Analyticsの利用開始
この記事で学べることイベントモニタリングをご利用いただいているお客様にはEvent Monitoring Analyticsという分析を目的としたアプリケーションをご利用いただけます。本記事はEvent Monitoring Analytics を利用開始するまでの手順を紹介します。活用については別途、以下の記事もご確認をお願いします。Event Monitoring Analyticsの主要なダッシュボードイベントモニタリングに含まれる2種類のログの違いイベントモニタリングライセンスには、以下2種類のログが含まれます。リアルタイムイベントモニタリング:セキュリティインシデントの発生ログとレコードへのアクセスログイベントモニタリング:イベント発生 / エラー / パフォーマンス分析用のイベントログこの2種類のログの違いの詳細については、以下の記事をご参照ください。イベントモニタリングとはEvent Monitoring Analyticsは、この2種類のログの中で、イベントモニタリングのログを対象に分析するツールです。Event Monitoring AnalyticsとはEvent Monitoring Analytics アプリケーションは、イベントモニタリングログからユーザや組織の動作に関するインサイトを提供します。アプリケーションの作成は簡単で、事前作成済みのダッシュボードやデータセットが付属しているため、すぐに探索を開始できます。このアプリケーションを使用することにより、組織のデータの詳細を調べ、不審な行動、ページのパフォーマンスの低下、ユーザ導入の低下などをすばやく特定できます。Event Monitoring Analyticsの利用開始方法1.CRM Analyticsとイベントモニタリングの有効化注:CRM Analyticsの有効化を行うユーザには、先に「Event Monitoring Analytics 管理者」権限セットの割り当てが必要ですSalesforce の [設定] メニューの [管理] で、[機能設定] | [分析] | [Analytics Cloud] | [始めましょう] を選択し、[分析の有効化] をクリックします。[設定] 画面の [クイック検索] ボックスに「イベント」と入力し、[イベントモニタリング設定] を選択し、[Analytics アプリケーションでイベントログデータを表示] を有効にします。2.Event Monitoring Analytics アプリケーション権限設定と権限セットの割当Event Monitoring Analyticsを利用するユーザに割り当てられたプロファイルの設定で、割り当てられたアプリケーションからAnalytics Studio (standard__Insights)の参照可能にチェックが付いている事を確認します。もしチェックが無い場合、カスタムプロファイルまたは、権限セットの割り当てられたアプリケーションから本権限を付与します。次にEvent Monitoring Analyticsを利用するユーザに「 Event Monitoring Analytics ユーザ」又は「Event Monitoring Analytics 管理者 」の権限セットのどちらかを割り当てます。ダッシュボードやデータセットを表示するユーザには「 Event Monitoring Analytics ユーザ」権限セットを、アプリケーション、ダッシュボード、データセットの作成や、Event Monitoring アプリケーション操作環境のカスタマイズを行うユーザには「Event Monitoring Analytics 管理者」権限セットを割り当てます。3.Event Monitoring Analytics アプリケーションの作成と共有Analytics Studioを開きます。アプリケーションランチャーから[Analytics Studio]を選択します。アプリケーションを作成します。Analytics Studio ホーム画面の右上の[作成]ボタンから[アプリケーション]を選択します。新規アプリケーションを作成ウィンドウのすべてのテンプレートから[Event Monitoring Analytics App]を選択し、ウィンドウ右下にある[次へ]をクリックします。ステップ1からステップ6までは、作成したいデータセットと何日分のデータを格納するかを入力するガイダンスが表示されるのですべての質問に“Yes”と入力し追加表示されるオプションにはすべて“30”と入力していきます。作成されたダッシュボードが少ない、また見れるデータが少ないと問い合わせを多く受けますが、原因は、こちらですべての項目が入力されていないためです。ステップ7ではチェックを入れずに[次へ]をクリックします。チェックを入れてこの機能を有効にすると、ネットワークの負荷が軽減され、大規模なデータセットのデータフロージョブを高速化できます。この機能の検証を希望する場合はチェックを入れて[次へ]をクリックします。この機能は2023年6月時点でベータ機能のため、この機能をオンにしてアプリケーションを作成された場合、Salesforceサポートでの調査を実施させていただけない場合がございます。任意のアプリケーション名を入力します。ログレベルはデフォルトのままで構いません。こちらのオプションは、今回のアプリケーション作成ログに関するもので、イベントモニタリングのログとは関係ありません。ガイダンスへの入力が全ステップ完了すると作成中の画面に切り替わります。作成が完了するとメールが届きます。データマネージャーを開きます。アプリケーションの作成が完了したらAnalytics Studioのホーム画面下にある[データマネージャ]をクリックします。開いた画面の左ペインの下側にある[データフローを管理]をクリックします。データフローからスケジュールを設定します。左ペインから[データフローとレシピ]を選択します。開いた画面から[データフロー]を選択します。開いた画面から、作成した[アプリケーション名_AppendDataflow]があるので右側の▼ボタンから[スケジュール]を選択します。アプリケーションに最新データが取り込まれ、更新による中断を最小限に抑えるには、イベントログファイルが生成されてから数時間後にデータフローが実行されるようにスケジュールする必要があります。そのため推奨の時刻はAM6:00~AM7:00程度となります。スケジュールを設定したら[保存]をクリックします。また古いバージョンの画面ではありますが、動画の説明資料もありますのでご確認をお願いします。動画 - イベントモニタリング設定動画_応用編①(Event Monitoring Analytics)4.Event Monitoring Analytics アプリケーションのアップグレード画面に新しバージョンのリリースを案内するバナーが表示されることがあります。その際に[現在のアプリケーションをアップグレード] と[新規アプリケーションを作成] を選択することができます。ただし、 [現在のアプリケーションをアップグレード] を選択した場合、カスタマイズが削除されるので実施には注意が必要です。学習ツールHelp - Event Monitoring Analytics の日次データフローのスケジュールHelp - 1 時間ごとのイベントログと 24 時間のイベントログの違いTrailhead - Event Monitoring Analytics アプリケーション 動画 - イベントモニタリング設定動画_応用編①(Event Monitoring Analytics)まとめ適切な権限設定を行い、分析を有効化した上で、 すべてのログの取り込みを“Yes”にした上でアプリケーションの作成と共有を行えば、Event Monitoring Analyticsをお使いいただく事ができます。
- 1
- 2