メインコンテンツまでスキップ

外部鍵管理 (EKM)

プレビュー

Salesforce Shield 連携はプレビュー段階であり、標準の DuoKey Cockpit テナントではまだ有効になっていません。このガイドでは仕組みと設定手順を説明します。プロジェクトでのご利用については DuoKey にお問い合わせください。

適用対象:
Salesforce ShieldAWS KMS IntegrationCache-Only KeysExternal Key Store

EKMとは​

Shield外部鍵管理 (EKM) は、Salesforce実装を外部KMSに保存された暗号鍵に接続します。鍵をSalesforceにアップロードする従来のBYOKとは異なり、EKMは必要なときにのみ外部KMSから鍵を取得し、メモリ内に一時的にキャッシュします。

究極の鍵管理

鍵は常に外部KMS内に留まります

オンデマンド取得

鍵は操作に必要なときにのみ取得されます

永続的な保存なし

SalesforceはキャッシュしたEKM鍵を決して永続化しません

即時失効

KMSからいつでもアクセスを取り消せます

Salesforce Shield EKMがDuoKeyと連携する仕組み​

EKMでは、Shield Platform EncryptionはDuoKey KMS(外部鍵管理サービス)に依存して、Shield Platform暗号化サービスが使用するデータ暗号鍵 (DEK) を生成・保護します。これらのDEKはラップされた状態でShield Platformの暗号化された鍵キャッシュとともに保持されます。暗号化または復号操作が必要になると、Shield PlatformサービスはラップされたDEKをDuoKey KMSに渡してアンラップします。

Edition/RequirementDetails
ExperienceLightning Experience and Salesforce Classic (not available in all orgs)
EditionsEnterprise, Performance, Unlimited, and Developer
LicenseSalesforce Shield or Shield Platform Encryption
ServiceEKM Service or Cache-Only Key Service
PermissionManage Encryption Keys

EKMセットアッププロセス​

このプロセスは、DuoKey KMSでルート鍵を作成することから始まります。SalesforceのリージョンごとのリージョナルKMSに重要な権限を付与するポリシーを作成します。

  • ルート鍵を使用してDEKを生成・ラップするようDuoKey KMSに要求する権限
  • 顧客ルート鍵を使用してDEKをアンラップするようDuoKey KMSに要求する権限

EKM セットアッププロセス

DuoKey KMS と Salesforce Shield 間の初期設定

1
DuoKey 管理者
ルートキーの作成
DuoKey KMS で 256 ビットのルートキーを生成
2
Salesforce 管理者
キーポリシーの設定
Salesforce にラップ/アンラップ権限を付与するキーポリシーを作成
3
Salesforce
DEK のリクエスト
暗号化サービスが新しいデータ暗号化キーをリクエスト
4
DuoKey KMS
DEK の生成とラップ
ルートキーが新しい DEK をラップし、TLS/mTLS 経由で返送
5
Salesforce
ラップされた DEK を保存
ラップされた DEK は TenantSecret テーブルに保存 — 平文では保存されません
1

ルート鍵の作成

DuoKey KMS管理者がDuoKey KMSでルート鍵を作成します

2

鍵ポリシーの構成

Salesforce管理者が鍵ポリシーを作成し、DuoKey KMSにコピーします

3

DEKの要求

ポリシーが設定された状態で、Salesforce暗号化サービスがローカルストレージ用のDEKを要求します

4

DEKのラップ

DuoKey KMSがルート鍵を使用して新しいDEKを作成・ラップし、セキュアなチャネル (TLS/mTLS) 経由で返送します

5

ラップされたDEKの保存

暗号化サービスがラップされたDEKをTenantSecretテーブルに保存します

EKM鍵取得プロセス​

Shield Platform暗号化サービスがEKM DEKを必要とする暗号化操作を検出すると、暗号化された鍵キャッシュを確認します。アンラップされたDEKがキャッシュに存在しない場合、Shield Platform暗号化サービスは鍵取得チェーン全体を通じてリクエストを開始します。

鍵取得チェーン

1
AWS KMS外部鍵ストア
2
XKS Proxyセキュアゲートウェイ
3
DuoKey Cockpitインテリジェントルーティング
4
DuoKey MPCしきい値暗号

キー取得フロー

Salesforce が DuoKey から暗号化キーを取得しキャッシュする方法

1
ユーザーの操作
暗号化されたデータの保存またはアクセス
▼
2
Shield 暗号化サービス
暗号化リクエストの処理
▼
DEK はキャッシュにありますか?
✓ キャッシュヒット
キャッシュされた DEK を使用
高速パス — 10ms 未満
✗ キャッシュミス
KMS から取得
フルチェーン: AWS → XKS → DuoKey
▼
3
ラップされた DEK を取得
TenantSecret テーブルから
▼
4
AWS KMS へのリクエスト
外部キーストア
▼
5
XKS プロキシ経由でルーティング
TLS 1.2+ セキュアチャネル
▼
6
DuoKey MPC アンラップ
しきい値暗号
▼
7
DEK をキャッシュ
メモリのみ、永続化されません
▼

AES-256 で暗号化 / 復号

データは Salesforce 内で暗号化されます — DuoKey からのキー失効により、アクセスは即座に無効化されます

鍵取得のステップバイステップ​

  1. ユーザーが暗号化されたデータにアクセスまたは保存します
  2. Shield Platform暗号化サービスがTenantSecretテーブルからラップされたDEKを取得します
  3. 暗号化サービスがTenantSecretデータベースからラップされたDEKを取得します
  4. リクエストがExternal Key Storeで構成されたAWS KMSに送信されます
  5. AWS KMSがTLS 1.2以上でリクエストをXKS Proxyに転送します
  6. XKS ProxyがインテリジェントルーティングのためにリクエストをDuoKey Cockpitにルーティングします
  7. DuoKey CockpitがDuoKey MPCに転送し、しきい値暗号を使用してDEKをアンラップします
  8. アンラップされたDEKがセキュアなチャネルを通じてSalesforceに返送されます
  9. 暗号化サービスがアンラップされた鍵を鍵キャッシュに保存します(メモリのみ、決して永続化されません)
  10. サービスがAES-256を使用して暗号化/復号操作を実行します

アーキテクチャ概要​

DuoKeyによるEKMアーキテクチャ

完全なキー取得チェーン: Salesforce → AWS KMS → XKS Proxy → DuoKey MPC

SALESFORCE組織
アプリサーバー
暗号化 / 復号
キーキャッシュ
メモリのみ
永続化されません
データベース
暗号化されたデータ
セキュアな HTTPS / TLS 1.2+
▼
AWS KEY MANAGEMENT SERVICE
AWS KMS
外部キーストア
XKS Proxy
セキュアゲートウェイ
TLS 1.2+
DuoKey KMS へルーティング
▼
DUOKEY ソブリン KMS
DuoKey Cockpit
インテリジェントルーティング
MPC ボルト
しきい値暗号
HSM-Protected
監査ログ
完全なトレーサビリティ

インテリジェントルーティング

DuoKey Cockpitは鍵ポリシーに基づいて適切なボールトにリクエストをルーティングします

マルチボールトサポート

HashiCorp Vault、CyberArk、DuoKey MPC、またはAWS KMSに接続します

しきい値暗号

DuoKey MPCはセキュリティ強化のためのマルチパーティ計算を提供します

統合管理

異なるバックエンド全体で鍵を管理する単一のインターフェース

EKMによる暗号化プロセス​

1

ユーザーによるデータ送信

ユーザーがSalesforceの暗号化されたフィールドにデータを保存します

2

キャッシュ確認

アプリケーションサーバーがDEKが鍵キャッシュにあるかを確認します

3

鍵取得

キャッシュにない場合、Salesforceは外部KMSから安全に鍵を要求します

4

鍵のキャッシュ

鍵はメモリに一時的に保存されます(決してディスクに永続化されません)

5

データ暗号化

256ビットAES暗号化を使用してデータが暗号化されます

6

保存

暗号化されたデータがデータベースに保存されます

鍵取得フロー​

ScenarioDescriptionResponse Time
キャッシュヒット(高速パス)DEKは既にメモリキャッシュ内にあります。外部KMSへのネットワーク呼び出しは不要です。< 10ms
キャッシュミスDEKがキャッシュに見つかりません。鍵はAWS KMS/XKS Proxyから取得され、キャッシュされます。50-200ms

応答時間は目安であり、ネットワークレイテンシとバックエンドに依存します。

舞台裏:Shield Platform Encryption​

舞台裏: Shield 暗号化

テナントシークレット生成、キー導出、データ暗号化の 3 フェーズプロセス

1テナントシークレットの生成
HSM
256 ビットシークレットを生成
FIPS 140-2 L3
→
マスターキーで暗号化
AES-256-GCM
→
セキュアストレージ
保存時に暗号化
▼
2キー導出 (PBKDF2)
入力
シークレット + ソルト + 1 万回反復
→
PBKDF2-HMAC-SHA256
キー導出関数
→
DEK
256 ビットの導出キー
組織ごとに一意
▼
3データ暗号化
平文 + IV
レコードごとに一意の 128 ビット IV
→
AES-256-CBC
暗号化アルゴリズム
→
暗号文
データ + IV + キー ID
DB に保存
セキュリティのハイライト
  • 各レコードは一意の IV を使用(パターン分析を防止)
  • DEK は平文で保存されません
  • PBKDF2 により総当たり攻撃の計算コストが高くなります
  • データの再暗号化なしでキーローテーションをサポート

フェーズ1:テナントシークレットの生成​

  • ハードウェアセキュリティモジュール (HSM) が暗号学的に安全な256ビットのテナントシークレットを生成します
  • テナントシークレットはAES-256-GCMを使用してSalesforceのマスター鍵で暗号化されます
  • 暗号化されたテナントシークレットはデータベースに安全に保存されます
  • これにより、テナントシークレットが保存時に保護されることが保証されます

フェーズ2:鍵導出 (PBKDF2)​

  • テナントシークレット + プライマリシークレット + ソルト(組織ID)を組み合わせます
  • PBKDF2-HMAC-SHA256を10,000回の反復で使用します
  • ブルートフォース攻撃を防ぐため計算コストが高くなっています
  • 256ビットのデータ暗号鍵 (DEK) を生成します
  • DEKは組織ごとに一意であり、テナントシークレットがローテーションされると変更されます

フェーズ3:データ暗号化​

  • 各レコードは一意のランダムな128ビットの初期化ベクトル (IV) を取得します
  • 平文データ + IV + DEKがAES-256-CBCへの入力となります
  • 出力:暗号文 + IV + 鍵IDがデータベースに保存されます
  • IVはレコード間のパターン分析を防ぎます
  • 鍵IDによりデータ移行なしで鍵のローテーションが可能になります

サポートされる外部KMS​

AWS Key Management Service (AWS KMS)​

AWS KMSは、暗号鍵の作成と制御を容易にするマネージドサービスです。Salesforce EKMとシームレスに統合します。

FeatureDescription
HSM検証FIPS 140-2 Level 2検証済みHSM
鍵ローテーション自動鍵ローテーションのサポート
監査ログAWS CloudTrailによる詳細なログ記録
アクセス制御IAMポリシーによるきめ細かな制御
レプリケーションマルチリージョン鍵レプリケーション

EKMで暗号化できるものは?​

フィールドレベル暗号化

  • 標準フィールド:機密性の高い標準フィールドを暗号化
  • カスタムフィールド:テキスト、メール、電話、URLフィールド
  • 確率的:統計分析を防止
  • 決定論的:大文字小文字を区別しない検索が可能

Data Cloud暗号化

  • すべてのData Cloudデータ:データリソースを暗号化
  • 顧客管理鍵:EKMルート鍵を使用
  • 単一鍵ポリシー:すべてのデータに1つのルート鍵

検索インデックス暗号化

  • 検索インデックスファイル:EKMルート鍵で暗号化
  • 個別のDEK:インデックス用に個別のDEKを生成

EKMの前提条件​

前提条件

  • Salesforce ShieldまたはShield Platform Encryptionライセンス
  • 外部鍵管理サービスのアドオン
  • Manage Encryption Keysユーザー権限
  • Platform Encryption for Consumptionライセンス(Data Cloud用)
  • AWS KMS対称暗号鍵(256ビット)
  • 適切に構成されたAWS IAMポリシー
  • SalesforceからAWS KMSエンドポイントへのネットワークアクセス
  • AWS認証用に構成されたSalesforce Named Credential

鍵強度要件​

RequirementSpecification
最小鍵サイズ256ビット対称鍵
アルゴリズムサポートAES-256暗号化
鍵生成暗号学的に安全な乱数生成器

EKMのセットアップ​

1

AWS KMS鍵の作成

  1. AWS Management Consoleにログインします
  2. AWS Key Management Serviceに移動します
  3. 新しい対称暗号鍵(256ビット)を作成します
  4. Salesforceのアクセスを許可するように鍵ポリシーを構成します
  5. 鍵IDとAWSリージョンをメモします
2

Named Credentialの構成

AWSで認証するためのNamed Credentialを作成します。

  1. SalesforceのセットアップでNamed Credentialsに移動します
  2. AWS Signature Version 4認証を使用する新しいNamed Credentialを作成します
  3. 次を構成します:AWS Access Key ID、AWS Secret Access Key、AWSリージョン、AWSサービス(kms)
3

鍵連携ポリシーの設定

  1. Setup → Platform Encryption → Key Managementに移動します
  2. External Key Managementを選択します
  3. New EKM Keyをクリックします
  4. 次を指定します:鍵識別子 (ARN)、AWSリージョン、Named Credential、説明
4

データ暗号鍵の生成

  1. EKMルート鍵を作成した後、データ暗号鍵 (DEK) を生成します
  2. DEKはSalesforceで作成され、EKMルート鍵で暗号化されます
  3. 暗号化されたDEKはSalesforceに保存されますが、外部鍵を使用してのみ復号できます
5

有効化とテスト

  1. SalesforceでEKM鍵を有効化します
  2. Salesforceが鍵を取得できることを確認するために接続をテストします
  3. 鍵を暗号化ポリシーに適用します
  4. テストフィールドを暗号化してセットアップを検証します

鍵管理操作​

EKM鍵のローテーション​

注記

ローテーションはダウンタイムなしで実行できます。古い鍵はアーカイブされ、既存データの復号のために保持されます。新しいデータは新しい鍵で暗号化され、バックグラウンドプロセスが既存データを再暗号化します。

EKM鍵接続の確認​

  1. Setup → Platform Encryption → Key Managementに移動します
  2. EKM鍵を選択します
  3. Check Connectionをクリックします
  4. 接続ステータスとエラーメッセージを確認します

EKM鍵使用状況の監査​

SourceEvents Tracked
Salesforce Setup Audit Trail鍵の作成、有効化/無効化、ローテーション、接続確認
AWS CloudTrail鍵アクセス要求、復号操作、ポリシー変更、認証試行

EKM鍵の無効化​

警告

鍵を無効化すると、直ちにSalesforceのキャッシュから削除され、新しい暗号化操作が防止されます。既存の暗号化されたデータは暗号化されたままで、鍵が外部KMSで利用可能であれば引き続き復号できます。

  1. EKM鍵の設定に移動します
  2. Deactivateをクリックします
  3. 操作を確認します

サンドボックス環境でのEKM​

重要

本番鍵はサンドボックスでは復号にのみ使用できます。サンドボックス環境専用の別のルート鍵を常に作成してください。

サンドボックスのベストプラクティス​

  1. サンドボックス環境用に別のAWS KMS鍵を作成します
  2. サンドボックス用に別のNamed Credentialを構成します
  3. サンドボックスの更新後、サンドボックス用に新しいEKMルート鍵を作成します
  4. サンドボックス内のすべてのDEKをローテーションして新しいルート鍵を使用します
  5. サンドボックスの暗号化操作に本番鍵を決して使用しないでください

重要な考慮事項​

警告

鍵の可用性:Salesforceアプリケーションは外部鍵に依存します。鍵が利用不可になると、ユーザーは暗号化されたデータへのアクセスを永久に失う可能性があります。

警告

鍵損失の防止:計画外の鍵損失に対する保護策として、堅牢な鍵ローテーションおよび鍵バックアップ戦略を実装してください。

警告

鍵無効化の影響:鍵が利用できない場合、暗号化も復号もできません。ユーザーにはデータの代わりに3つの疑問符 (???) が表示され、書き込み操作は失敗します。

ベストプラクティス​

EKMベストプラクティスチェックリスト

バックアップ戦略外部鍵のバックアップコピーを安全に維持
監視アクセス要求と障害のアラートを設定
鍵ローテーション定期的なローテーションスケジュールを確立
テスト鍵の可用性を定期的にテスト
ドキュメント鍵と認証情報の詳細なドキュメントを維持
アクセス制御MFAを備えた厳格なIAMポリシーを実装
高可用性マルチリージョン鍵レプリケーションを使用

Data Cloud固有の考慮事項​

注意
  • 単一鍵:Data Cloudはすべてのデータに1つのルート鍵のみを使用します
  • 新規データのみ:顧客管理からEKMへの移行は新規データにのみ影響します
  • 完全な再暗号化:顧客管理鍵への移行を戻すと、すべてのData Cloudデータの再暗号化がトリガーされます
  • ライセンス必須:Platform Encryption for Consumptionライセンスが必要です

EKMのトラブルシューティング​

サポートの利用​

  1. 最近の構成変更についてSalesforce Setup Audit Trailを確認します
  2. KMSアクセス試行とエラーについてAWS CloudTrailログを確認します
  3. 接続の問題を診断するためにSalesforceのCheck Connection機能を使用します
  4. 次の情報を添えてSalesforceサポートに連絡します:組織ID、EKM鍵識別子、エラーメッセージ、タイムスタンプ、監査証跡の抜粋

比較:EKM vs. BYOK vs. Cache-Only Keys​

FeatureEKMBYOKCache-Only Keys
鍵の場所外部KMSSalesforceにアップロード顧客のサービス
鍵の保存SFに保存されないSFに暗号化して保存SFに保存されない
鍵のキャッシュメモリ内に一時的保存されたシークレットから導出メモリ内に一時的
失効即時(KMSで無効化)鍵ローテーションが必要即時
ネットワーク依存取得に必要アップロード後は不要取得に必要
複雑さ高中高
最適な用途厳格なコンプライアンス制御と簡便性のバランス最大限の制御

移行パス​

次のステップ​