Skip to main content

秘密の保護入門

学習の目的

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

  • アプリケーションの秘密とは何かを説明する。
  • アプリケーションの秘密を誰から保護する必要があるかを説明する。
  • Salesoforce システム管理者にアプリケーションの秘密が露呈する 3 つのリスクを挙げる。

秘密とは?

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

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

次に「秘密」、つまり特定の状況でユーザーに与えられている権限を確認するために使用するデータの一般的な例をいくつか示します。

  • パスワードおよびパスフレーズ
  • 暗号化および API 鍵
  • OAuth トークン

上記の例に加え、他の形式のデータを秘密とみなし、保護を強化する対象とすることができます。たとえば、特定の種類のユーザーデータを暗号化する規制要件が適用される場合があります。

ログインページが表示されているラップトップ。(円の中) 電話で 2FA ログインを実行する鍵のアイコンを押している手。

誰から秘密を守るのか?

保護しなければならない対象がわかったところで、次はこの情報を誰から守るのかを考えます。そう聞いて攻撃者を思い浮かべた方もいっらしゃると思います。確かに、機密データは Salesforce インスタンスに侵入しようとする外部の攻撃者から保護する必要があります。でもここでは、他のユーザー (Salesforce システム管理者、AppExchange 開発者、顧客など) に秘密が露呈するリスクについて考えてみましょう。

次のシナリオを考えてみます。

  1. ユーザーが誤ってマルウェアをダウンロードし、Salesforce セッションが侵害される。
  2. ある従業員は最近解雇されたばかりで不満を募らせており、会社のシステムにまだアクセスできる。
  3. コミュニティ CRM ユーザーが API へのアクセス権があることを発見する。

いずれのシナリオでも、アクセス権を持つべきではない人物に、不適切に保護された秘密が表示される可能性があります。このような理由から、以下の種別を含むユーザーから秘密を保護することをお勧めします。

  • 標準ユーザー: 通常の Salesforce ライセンスと平均的な権限を持つユーザー。
  • 外部ユーザー: コミュニティライセンスを使用したり、Force.com サイトからデータを参照したりする可能性がある、権限のレベルが低いユーザー。
  • 管理アクセス権を持つ管理者ユーザー: 通常の Salesforce ライセンスを持っているが、平均より上の権限 (「Modify All Data (すべてのデータの編集)」まで) を持つユーザー。

すべての種別のユーザーからすべての秘密を保護する必要があるというわけではありません。このモジュールの目標は、最も機密度の高いデータでも Salesforce に安全に保存できるように、秘密を保護するツールを提供することです。

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

システム管理者はシステムへのアクセス権レベルが高いため、他のユーザーよりも信頼度の高い立場にあります。最小権限の原則を守り、ユーザー、プログラム、またはプロセスに割り当てられた機能を実行するために最小限必要な権限のみを付与します。システム管理者に暗号化鍵のような追加項目へのアクセス権を付与しても問題がないように見えますが、たとえば次のような場合を考えてみてください。

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

アクセスできるからといって、アクセスすべきとは限りません。

秘密を保護することの重要性が理解できたので、アプリケーション開発を進める中で、秘密を格納し、保護するための効果的な方法を判断できます。次は、Salesforce Platform のセキュリティ機能の使用方法を見ていきましょう。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む