データベースの暗号化をファイルと添付ファイルの暗号化と併用する
学習の目的
この単元を完了すると、次のことができるようになります。
- 組織の鍵を生成、循環、およびアーカイブするための権限を割り当てる。
- データベースの暗号化を有効にする。
- ファイル、項目、および添付ファイルの暗号化を有効にする。

Shield Platform Encryption を導入する
Carolyn、Calvin、Ernesto は、Calvin と Ernesto が Shield Platform Encryption について調べた内容を共有するために再び会議を行います。3 人は結果に満足しています。調べた内容から、ユーザーエクスペリエンスを妨げたり Salesforce への投資を損なったりすることなく、セキュリティレビューのすべての課題に対応できることがわかりました。Carolyn は、Calvin と Ernesto に Developer Edition 組織を設定して試すことを提案します。Calvin は Developer Edition 組織を作成して秘密の生成を管理します。Ernesto は権限と鍵の管理を担当します。
その後、2 つのグループで機能をテストする予定です。
- データベースの暗号化とファイルおよび添付ファイル。
- 項目レベルの暗号化、検索インデックスの暗号化、イベントバスデータの暗号化
Shield Platform Encryption を設定する
Ernesto と Calvin が Shield Platform Encryption 用に開発者組織を設定する手順を追っていきましょう。
権限を割り当てる
Ernesto はまず、「アプリケーションのカスタマイズ」と「暗号化鍵の管理」の権限を付与する手順を確認します。
- [Setup (設定)] から、[Quick Find (クイック検索)] ボックスに「
Permission Sets(権限セット)」と入力し、[Permission Sets (権限セット)] を選択します。
-
[新規] をクリックします。
- 次に、新しい権限セットの表示ラベルを作成します。この単元では、表示ラベルに
Key Bossを使用します。API 参照名には表示ラベルをもとにした名前が自動入力されます。
-
[保存] をクリックします。
- [Key Boss (鍵ボス)] ページの [System (システム)] セクションで、[System Permissions (システム権限)] を選択します。
-
[Edit (編集)] をクリックし、「アプリケーションのカスタマイズ」および「暗号化鍵の管理」権限を有効化します。
-
[Save (保存)] をクリックして設定を確認します。
- [設定] から、[クイック検索] ボックスに
Usersと入力し、[ユーザー] を選択します。
- ユーザーリストで必要な名前を選択します (この場合はあなたの名前)。
- [権限セットの割り当て] までスクロールダウンして、[割り当ての編集] を選択します。
-
[Key Boss (鍵ボス)] を選択し、[Enabled Permission Sets (有効化された権限セット)] リストに追加します。
-
[保存] をクリックします。
Ernesto は自分と Calvin のアカウントを追加し、2 人が Shield Platform Encryption の作業を行えるようにします。
データベースの暗号化を有効にする
権限が付与されましたので、Calvin はデータベースの暗号化を有効にできます。Shield Platform Encryption をすぐに使い始めたいのなら、データベース暗号化を有効にするのが一番の近道です。1 回の選択で、すべてのデータ項目、すべてのメタデータ、そしてデータベースに格納できるサイズのファイルの暗号化を開始できます。データベースの暗号化では、暗号化されたコンテンツの絞り込みや並べ替えが妥協なく行われるため、Calvin と Ernesto は満足しています。
Zephyrus が顧客データを暗号化するためには、データベースの暗号化を有効にする必要があります。
- [Setup (設定)] から、[Quick Find (クイック検索)] ボックスに「
Platform Encryption(プラットフォームの暗号化)」と入力し、[Encryption Settings(暗号化設定)] を選択します。![[Encryption Settings (暗号化設定)] ページ。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/spe_admins/use-database-encryption-with-files-and-attachments-encryption/images/ja-JP/60072266b6d34692ea85db5cdf5f8dbf_kix.72jfxo997uvm.png)
- [Encryption Policy (暗号化ポリシー)] セクションで、[Encrypt the Transactional Database (トランザクション型データベースを暗号化)] 切り替えをクリックします。これは永久的な変更であることが通知されます。[Encrypt the Transactional Database (トランザクション型データベースを暗号化)] ボタンをクリックします。

![データベースの暗号化が有効になった状態の [Shield Platform Encryption Settings (Shield Platform Encryption 設定)]。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/spe_admins/use-database-encryption-with-files-and-attachments-encryption/images/ja-JP/e29cca966424cd79857a458ced3b6db9_kix.ujfvhll4vvw9.png)
これだけです。データベースの暗号化で使用する最初のテナントの秘密が自動的に作成されます。これで、あらゆる種別の新しいトランザクションが保護されます。
データベースの暗号化の処理を学ぶ
データベースの暗号化の最小処理単位はデータベースフラグメント (つまりページ) です。暗号化済みのフラグメントを書き込める状態になるまで、常に発生する暗号化対象の更新を安全に管理します。このフラグメントベースのアーキテクチャにより、フラグメントは継続的に再暗号化され、その処理が進むにつれて、トランザクションデータベース全体へと自然に暗号化が広がっていきます。このため、データベースの暗号化が有効な場合、データ同期は不要となり、利用できなくなります。
データベースの暗号化の秘密について学ぶ
データベーステナントの秘密について見ていきましょう。
1. [Setup (設定)] サイドバーで [Key Management (鍵の管理)] を選択します。
2. [Database (データベース)] タブを選択します。
![データベースの暗号化用の [Key Management (鍵の管理)] ページ。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/spe_admins/use-database-encryption-with-files-and-attachments-encryption/images/ja-JP/d17eab36a6f3bb3a79c4408ba3b0d8b2_kix.2pno9g7tn7qu.png)
データベースの暗号化は、ほかの Shield Platform Encryption 機能とは異なる方法で秘密を管理および使用します。
まず、テナントの秘密、IV、KDF を使用して DEK を派生しますが、各 DEK は単一のデータベースフラグメントのみを対象とします。新規または既存のフラグメントを書き込むたびに、そのフラグメント専用の IV が生成されます。これはテナントの秘密と共に使用され、フラグメント専用の DEK が作成されます。これらの DEK はデータベースに安全かつ永久的に保存されます。
次に、このフラグメントベースの暗号化アーキテクチャのため、データベースの暗号化で使用するテナントの秘密はエクスポート、インポート、削除ができません。そのため、[Key Management (鍵の管理)] ページの [Database (データベース)] タブで利用できるオプションは、新しいテナントの秘密の生成と BYOK のアップロードのみです。さらに、データベースの暗号化のテナントの秘密は API からアクセスできません。
3 つ目として、組織で使用できる有効なテナントの秘密は、すべての Shield Platform Encryption 機能の合計で 50 件に制限されています。ただし、この数にはデータベースの暗号化で使用するテナントの秘密は含まれません。データベースの暗号化の秘密は別途管理され、削除できないため、カウントされません。
ファイルと添付ファイルを暗号化する
Zephyrus は多くの企業で従業員の海外リロケーションを支援しています。リロケーションでは、多数の契約書、マニフェスト、船荷証券のセットが作成されることがあります。数キロバイト未満のファイルはデータベースに保存されるため、データベースの暗号化によって保護されます。しかし、大きなファイルについては、ファイルと添付ファイルの暗号化を有効にする必要があります。では、その方法を確認しましょう。
ファイルと添付ファイルの暗号化を有効にする前に、テナントの秘密を作成する必要があります。同じテナントの秘密が項目、ファイル、添付ファイルの暗号化に使用されます。
テナントの秘密を生成する
単元 2 で学習したようにテナントの秘密は暗号化鍵の派生に使用されます。Salesforce が生成したプライマリ秘密と連動しますが、それぞれのテナントの秘密は組織固有です。このように、各組織のデータは組織固有の鍵を使用して暗号化されます。
そのため、Zephyrus がファイルと添付ファイルの暗号化を開始する前に、Calvin は最初のテナントの秘密を作成する必要があります。
- [Setup (設定)] から、[Quick Find (クイック検索)] ボックスに「
Platform Encryption(プラットフォームの暗号化)」と入力し、[Encryption Settings(暗号化設定)] を選択します。![[Generate Initial Probabilistic Tenant Secret (最初の確率的テナントの秘密の生成)] が表示されている [Encryption Settings (暗号化設定)] ページ。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/spe_admins/use-database-encryption-with-files-and-attachments-encryption/images/ja-JP/f161ea3264d88e972cf6b645db57ab76_kix.sto39axce684.png)
- [Generate Initial Probabilistic Tenant Secret (最初の確率的テナントの秘密の生成)] 切り替えをオンにします。
簡単でしょう。これで、Salesforce の鍵管理サービスが項目や小さなファイルを保護する DEK を生成するために使用するテナントの秘密が準備できました。
これで、より大きなファイルと添付ファイルの暗号化を有効にできます。
- [Encryption Policy (暗号化ポリシー)] セクションで [Encrypt Files and Attachments (ファイルと添付ファイルを暗号化)] を有効にします。
![[Encrypt Files and Attachments (ファイルと添付ファイルを暗号化する)] オプション。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/spe_admins/use-database-encryption-with-files-and-attachments-encryption/images/ja-JP/ce35ea89b00f9c7a7884f468288778ac_kix.ai1e082duckt.png)
切り替えをオンにすると、以降に追加される新規のファイルと添付ファイルが暗号化されます。
これで「アプリケーションのカスタマイズ」権限を持つユーザーは、サポートされているファイル形式や添付ファイルを暗号化できます。たとえば、Smith 氏がスウェーデンの在留ビザを持参した場合、Calvin はそのファイルを Smith 氏のレコードにアップロードして暗号化できます。
[Encrypt Files and Attachments (ファイルと添付ファイルを暗号化)] の切り替えをオンにした場合、それ以降に作成されたファイルと添付ファイルのみが暗号化の対象になります。すでに作成されていたファイルと添付ファイルは影響を受けません。ただし、データベースの暗号化とは異なり、[Encryption Statistics and Data Sync (暗号化統計およびデータ同期)] ページを使用して既存のファイルと添付ファイルを暗号化することができます。
★ Calvin と Ernesto は Developer Edition 組織を設定し、データベースの暗号化およびファイルと添付ファイルの暗号化を有効にしました。これにより、トランザクション型データベースおよびファイルと添付ファイルが暗号化されます。彼らはこれから数日間、これらの機能を徹底的にテストする予定です。
次の単元では、Calvin が項目レベルの暗号化とイベントバスデータの暗号化の設定を行います。
