進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

秘密の保護の使用開始

学習の目的

この単元を完了すると、次のことができるようになります。

  • アプリケーションでの秘密の使用状況を把握する。
  • Salesoforce システム管理者にアプリケーションの秘密が露呈する 3 つのリスクを挙げる。

秘密の保護の概要

ほぼすべてのアプリケーションで何らかの機密データが扱われます。ユーザがアプリケーションに入力する認証パスワードであれ、データを保護する暗号化鍵であれ、攻撃者 (悪意のあるユーザ) が「秘密」を手に入れると、それを使用して機密情報やシステムにアクセスできてしまいます。

「いかに秘密を守るか?」は、Salesforce を含め、すべてのプラットフォームの開発者にとって重要な課題です。このモジュールでは、アプリケーションで使用されている秘密をどのようにして特定するのか、最も効果的な秘密の保存方法をどのようにして判断するのかを説明します。

秘密とは?

「秘密」という言葉を頻繁に使用してきましたが、実際にはどのような意味なのでしょうか? このモジュールでの「秘密」とは、アプリケーション内のあらゆる機密データを意味します。

次に、一般的な例をいくつか示します。

  • パスワードおよびパスフレーズ
  • 暗号化鍵
  • OAuth トークン
  • 支払い情報 (クレジットカード番号など)
  • 個人識別情報 (PII) (名前、電話番号、メールアドレス、アカウントユーザ名、住所、社会保障番号など)
  • 人口統計情報 (収入、性別、年齢、民族、学歴など)
  • 機械識別情報 (MAC アドレス、シリアル番号、IP アドレスなど)

何が機密データと見なされるのかは、国や州 (都道府県) によって異なります。通常、コンプライアンス基準 (ペイメントカード業界 (PCI) コンプライアンス基準など) には、保護する必要があるデータ、および機密データの収集時に講じるべき対策が規定されています。

このモジュールでは、暗号化鍵、API キー、パスワードなどのアプリケーションレベルの秘密を保護する方法に焦点を当てます。アプリケーションで認証または暗号化に使用される情報は、アプリケーションレベルの秘密です。

Salesforce 組織内の個人識別情報 (PII) または支払い情報データを保護する方法については「データセキュリティ」および「データ漏洩の防止」モジュールを参照してください。

誰から秘密を守るのか?

保護しなければならない対象がわかったところで、次はこの情報を誰から守るのかについて説明します。そう聞いて思い浮かぶのは攻撃者でしょう。外部から Salesforce インスタンスに侵入しようとする攻撃者から機密データを保護するのは言うまでもりませんが、他のユーザや Salesforce システム管理者、AppExchange 開発者の場合は、顧客に秘密が露呈するリスクを考慮してみましょう。

次のシナリオについて考えてみてください。

  1. ユーザが誤ってマルウェアをダウンロードし、Salesforce セッションが侵害される。
  2. 社内の従業員が好奇心または不満を抱いている、または失業する。
  3. コミュニティユーザが API にアクセスできることを発見する。

いずれのシナリオでも、アクセス権を持つべきではない人物に、不適切に保護された秘密が表示される可能性があります。そのため、秘密を次のユーザから保護することを検討してください。

  • 標準ユーザ: 通常の Salesforce ライセンスと平均的な権限を持つユーザ。
  • 外部ユーザ: コミュニティライセンスを使用したり、Force.com サイトからデータを参照したりする、平均よりも上の権限を持つユーザ。
  • システム管理者ユーザ: 通常の Salesforce ライセンスと平均よりも下の権限 (「すべてのデータの編集」まで) を持つユーザ。
  • 攻撃者: アカウントの侵害または内部関係者の脅威などにより、上記のいずれのユーザも攻撃者となり得ます。

すべての種別のユーザ (特にシステム管理者) からすべての秘密を保護する必要があるというわけではありませんが、このモジュールの目標は、最も機密度の高いデータでも Salesforce に安全に保存できるように、上記の一部またはすべてのユーザから秘密を保護するツールを提供することです。

なぜシステム管理者から秘密を保護するのか?

システム管理者はシステムへのアクセス権レベルが高いため、信頼度の高い立場にあります。システム管理者に暗号化鍵のような追加項目へのアクセス権を付与しても、問題がないように見えます。

次の点に考慮してください。

  • 保存されている秘密が外部サービスへのパスワードである場合、Salesforce システム管理者には、そのサービスに直接アクセスする権限がない可能性があります。
  • 保存された秘密が、システム管理者も含め、どのユーザもアクセスできない暗号化鍵である場合があります。
  • システム管理者が秘密を表示できる場合でも、攻撃者がシステム管理者のアカウントに不正アクセスして秘密を入手しようとする可能性があります。誰かが何かにアクセスできるからといって、それが推奨されるとは限りません。

Kingdom Management アプリケーションを使用した認証の概要

これらの概念を説明するために、Kingdom Management というサンプルアプリケーションを使用します。このモジュールでは、城の住人であるユーザがインベントリを追跡できるようにするアプリケーションの、リード Apex 開発者の役割をあなたが担います。王国への鍵を適切に保護する正しい方法を説明します。

注意: このトレイルの他のモジュールを完了している場合は、この組織にすでにサインアップしています。ただし、2017 年 7 月 24 日より前に Kingdom Management 組織にサンアップした場合は、再度サインアップする必要があります。最新のコンテンツを取得するために組織の新しいコピーが必要です。

Kingdom Management 開発者組織を開始できるようにするには、サインアップする必要があります。

  1. Kingdom Management 開発者組織のカスタムサインアップページ (https://developer.salesforce.com/promotions/orgs/trust-de) に移動します。

  2. 有効なメールアドレスを使用してフォームに入力し、[サインアップ] をクリックします。

    get-started-with-secret-protection

  3. 有効化を要求するメールを確認します。

  4. メールのリンクをクリックし、新しいパスワードと確認の質問を設定して登録を完了します。

Kingdom Management 開発者ユーザ名を設定したら、アプリケーションの秘密を保護する方法を学ぶための準備は完了です。

注意: Kingdom Management アプリケーションのコードには脆弱性があります。開発者組織ではこれらの脆弱性が問題になることはありませんが、Salesforce の本番環境に複製された場合、深刻な問題を引き起こす可能性があります。Kingdom Management アプリケーションは、教育目的でのみ使用してください。

Kingdom Management 開発者組織のナビゲーション

このモジュールを含め、このトレイルの各モジュールでは、Kingdom Management アプリケーションについて説明し、デモや課題を参照します。以下に、開発者組織をナビゲートするためのさまざまな機能を示します。

  • 右上のアプリケーションピッカーには、モジュールや単元で取り上げるさまざまなトピックを参照するアプリケーションが含まれます。同じトピックを共有している場合は、複数の単元で 1 つのアプリケーションを参照することもあります。
  • 各アプリケーションのタブバーには、デモや課題に固有のタブが含まれます。コンテンツでは、名前によってこれらのデモや課題を参照します。
  • 各タブの Visualforce ページには、デモ中の問題のコンテンツを示す [デモ] セクションがあります。
  • 各タブの Visualforce ページには、デモまたは課題に関連するコードへのクイックリンクを含む [コードリンク] セクションがあります。リンクをクリックすると、Visualforce ページ、Apex コントローラ、またはデモや課題に関連するその他の項目に移動できます。

この組織および基盤となるアプリケーションは更新されることがあります。最新のコピーを使用しているかどうかを確認するには、各カスタムアプリケーションの [概要] タブを確認します。

Kingdom Management 開発者組織の [概要] タブのスクリーンショット

メモ

メモ

組織が最新ではない場合、リリースノートを参照し、組織の新しいバージョンにサインアップしてください。

リソース