“フロー”の検索結果
- すべて
- おすすめリソース紹介
-
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
- コーポレートサイト
- 特集
-
この記事で学べることプラットフォーム暗号化の導入メリット、従来の暗号化項目との違い、暗号鍵の管理方法の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をお使いいただく事ができます。
-
この記事で学べること標準機能と比較して、拡張トランザクションセキュリティで何ができるのか学べます。拡張トランザクションセキュリティとはリアルタイムイベントを活用して特定条件にマッチする操作をブロックする、管理者へ通知をする、あるいは高保証セッションではないユーザに多要素認証を要求することを可能にする機能です。条件が記載される設定をトランザクションセキュリティポリシー(以下、ポリシー)と呼びます。誰に何をさせて良いかといった権限周りの設定は標準機能のプロファイルや権限セットで実施することが基本ですが、拡張トランザクションセキュリティを利用することでより細やかにユーザに禁止させたい操作、管理者へ通知をさせたい操作等について条件設定ができる様になります。トランザクションセキュリティポリシーの実装に当たっては、ローコードで実装できる条件ビルダーとプロコードでの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で実装できます。
-
この記事で学べることSandbox 環境に求められる条件と晒されるセキュリティリスク、Data Mask が提供する機能、および企業に提供する価値について学べますSalesforce Sandbox でアプリ開発を加速Sandbox とは、開発者や管理者が開発したアプリを検証するための、隔離された安全なテスト環境です。開発・テスト工程に応じて、Developer, Develop Pro, Partial, 及び Full Sandbox の種類があります。詳細はヘルプ記事を参照ください。Partial Sandbox および Full Sandbox では本番データの一部/全部がアプリケーションと一緒にコピーされます。本番データを使用するため、人為的に作成したテストデータでは発見できないデータパターンまでテストを行うことができ、効率的に品質向上を実現できます。また、実際のデータパターンとデータボリュームを使用することによりパフォーマンス問題を事前に予見することができます。テストデータの作成の手間がないため、開発工数・期間の削減、本番業務停止リスクの削減、といった効果も期待できます。Sandbox 環境のセキュリティリスクを理解するその一方で、Partial Sandbox および Full Sandbox では本番データの一部/全部がアプリケーションと一緒にコピーされるため、データの機密性を確保するために考慮すべき点があります。Sandbox 環境から重要情報が漏洩しないための対策を施し、業務のスピード・生産性の向上だけでなく、セキュリティ・プライバシーの確保と併せて適切なバランスとなるよう配慮することが重要です。Sandbox 環境のデータが晒される脅威とはPartial 及び Full Sandbox 環境のデータには、以下のようなセキュリティリスクがあることを認識しなければなりません。しかしながら、本番運用環境と同じセキュリティ施策を講じるための工数や費用をかけるのは現実的ではありません。システム開発プロジェクトの参画メンバーがアクセスする 自社のアプリケーション開発担当者、開発委託先(海外のオフショアベンダ含む)の要員、サプライヤ、ビジネスパートナーなど、本番稼働後であればシステムにアクセスしない様々な人が、システム開発のテスト工程では必要に応じて参画することがあります。本来アクセスすべきでない情報にも一時的にアクセス権が付与される場合もあり、全体的にアクセス管理は緩くなりがちです。そのような状況では、データ漏洩などのインシデントが発生するリスクが高くなっていることを認識しておく必要があります。個人情報保護規制に準拠するための管理体制の維持が求められる今日では個人情報保護に係る法規制が世界の国々・地域で厳格化される傾向にあります。Partial 及び Full Sandbox 環境には、本番運用環境のデータがアプリケーションと一緒にコピーされますが、コピーされたデータもそれらの法規制の対象になります。つまり、Partial 及び Full Sandbox 環境では、本番運用環境と同じように厳格に管理しなければならず、お客様が従うべき法令や業界ガイドラインなどに準拠するための対策を行う義務は、Sandbox 環境でもそのまま適用されます。個人情報や機密データを仮名化してリスクを低減Sandbox 環境では、個人情報や機密データの値を仮名化することによって、本番運用環境と比較して少ない工数と費用でセキュリティリスクを低減する方法が効果的です。また、この方法を採用することにより、仮名化されたデータは改正個人情報保護法で定める個人情報管理のスコープ外となります。Data Mask を利用すると、簡単なクリック操作のみで、各データ項目ごとに求められるビジネスニーズや規制等の要求事項に対応するデータの仮名化・削除を実行できます。これにより、セキュリティリスクを低減しながら、可能な限り本番環境に近いデータで、本番環境のボリュームと同等のデータを迅速に準備できます。Data Mask が提供するマスキングレベルは、(1) データをランダム化する、(2) データを同様の値で置き換える、(3) パターンを使用して生成されたデータで置換する、(4) データを削除する、の4つです。詳細はヘルプ記事を参照ください。生産性を向上してアジャイルなシステム開発を実現今日のビジネスはスピードが重要視されます。法令遵守が求められる一方で、経営陣は品質の高いアプリ・製品が迅速に市場に投入されることを期待しています。Salesforce に格納されているデータには、主従関係・参照関係が設定され、更に入力規則、ワークフローやトリガー、などの機能が実装されます。マスキング処理を実行する上でこれらの設定や機能を無視することはできません。単純な手作業によるマスキング処理を行なったために、これらの機能が正常に動作しなくなり、トラブルシューティングに時間がかかってしまうと、場合によってはテスト工程のスケジュールだけでなく、開発プロジェクト全体のスケジュールに影響が出てしまいます。Data Mask は Salesforce ネイティブなアプリケーションとして開発され、マスキング処理の実行時には、前処理としてデータの依存関係や有効化された自動処理の機能を一時的に無効にする処理が組み込まれています。マスキング処理が完了すると、再度データの依存関係や自動処理の機能が有効になるので、設定や実装された機能には変更を加えることなく、データのみが仮名化された状態でご利用いただけます。Data Mask を使用するメリット(定量的な効果)万一 Sandbox 環境からデータ漏洩事故が発生したら企業の損失額はいくらになるか、または Data Mask によりどのくらい開発の生産性が向上するか、といったことを金額に換算してみると、Data Mask が提供する価値がより明確になります。1. データ漏えいによる損失額を試算する情報漏えい事故などが発生すると、損害賠償を請求される可能性があるだけでなく、営業機会の損失や社会的信用の低下など、企業にとって致命的な影響を与えかねません。ここではデータの漏えい事故がもたらす企業の損失額の計算例を示します。ここで使用される要素は以下の3つです。下記の例で与えられた値をそのまま当てはめて計算すると、最大損失予測額は日本円で5千万円超になります。データ漏えい事故の発生確率(Crown Records Management, 2017. Probability of Data Breaches Increases)漏洩したレコードの平均損失額(IBM, 2019. Cost of a Data Breach Report 2019)個人情報や機密情報が含まれるレコード数2. 開発プロジェクト費用の削減効果を試算するテストデータのマスキング処理は想像するよりもはるかに大変な作業です。マスキング処理を自動化することによって、年間で節約することができる開発プロジェクト費用の計算例を示します。ここで使用される要素は以下の4つです。下記の例で与えられた値をそのまま当てはめて計算すると、想定されるメリットは日本円で年間5百万円超になります。年間に企業で実施される開発プロジェクト数Data Mask 導入前の開発/テスト工程にかかる時間(日数)Data Mask 導入によって開発/テスト工程において向上した生産性1日あたりに開発プロジェクトで発生する費用合計3. マスキングに係る作業工数の削減効果を試算する一旦マスキングポリシーを作成すれば、以降のマスキング作業はポリシーを実行するための数クリックの操作のみです。ここではマスキングにかかる作業工数の効率化により削減される費用を試算します。ここで使用される要素は以下の4つです。下記の例で与えられた値をそのまま当てはめて計算すると、日本円で年間2百万円超のコスト削減になります。新規で Sandbox 環境を作成する回数/年Sandbox 環境の設定に係る作業日数これらの作業に関与する開発要員数開発要員の人件費/日Data Mask を使用するメリット(定性的な効果)データは常に Salesforce データセンター内で保護されるData Mask はお客様組織にインストールする管理パッケージとして提供され、作成される Sandbox 環境のデータをマスキングします。つまり、お客様データはマスキング処理中も含めて常に Salesforce 社が運営するデータセンター内で保持され、機密性が確保されます。お客様自身でマスキング処理を手動で行う場合、またはサードパーティ製品を使用する場合は、Sandbox 環境に格納されている本番データのコピーを、一旦ローカル環境等にダウンロードしなければなりません。マスキング処理を実行するために必要な工程とはいえ、本番データのコピーをデータセンターの外に持ち出すことになってしまい、この間はデータが晒される脅威に対して管理者が制御する術はありません。仕事をする環境に合わせたセキュリティ対策を実施する新型コロナウィルスの影響で、開発プロジェクトや中途採用者のトレーニングを在宅で行うといったように、ここ数年で私たちの働き方が大きく変わりました。また、オフショアチームと連携して遂行する開発プロジェクトの機会も増しています。そのような環境では、これまでのように職場で周囲にいる同僚が相互にチェックする「人間による防御シールド」によって不正行為を抑止することはできません。データ漏えいリスクが排除された Sandbox 環境を提供することで、リモートで仕事をする際の障害を排除することができます。学習ツールヘルプ :Sandbox: カスタマイズとテストのためのステージング環境トレイルヘッド:Salesforce Data Mask動画:Full Sandboxを活用しよう!まとめData Maskにより、対策が遅れがちな本番運用環境以外の開発・テスト環境においても重要な個人データを効率的にマスキングすることにより、開発やテストの生産性の向上とともに情報漏えいリスクを減らすことができます。
-
この記事で学べることイベントモニタリングに含まれる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種類のログを理解し、パファーマンス分析のために、確認したいケースごとにどのログのどの項目を参照することにより、ボトルネックやチューニングのポイントを確認することができるか理解できます。
- 1