この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

TenantSecret

このオブジェクトは、組織固有のデータ暗号化鍵を生成するために主秘密で使用される、暗号化された組織固有の鍵の部分を保存します。このオブジェクトは、API バージョン 34.0 以降で使用できます。

Data 型のテナントの秘密は、sandbox 組織では 4 時間に 1 回、本番組織では 24 時間に 1 回循環できます。SearchIndex 型のテナントの秘密は、7 日に 1 回循環できます。

この情報は、従来の暗号化ではなく Shield プラットフォームの暗号化について書かれています。

メモ

サポートされているコール

create()query()retrieve()update()

項目

項目名 詳細
Description
textarea
プロパティ
Create、Nillable、Update
説明

テナントの秘密の説明。

KeyDerivationMode
picklist
プロパティ
Create、Filter、Group、Restricted picklist、Sort
説明
顧客が指定した鍵素材に適用される鍵派生モード。モードは次のとおりです。
PBKDF2
顧客が指定した鍵素材を Shield KMS が使用して派生データ暗号化鍵を作成します。
NONE
顧客が指定した鍵素材を Shield KMS が最終的なデータ暗号化鍵として使用して、データの暗号化と複合化を直接行います。

API バージョン 43.0 以降で使用できます。

RemoteKeyCertificate
string
プロパティ
Create、Filter、Group、Nillable、Sort、Update
説明
リモート鍵のコールアウト中に SecretValue を暗号化するために使用される公開鍵が含まれる証明書の名前。

API バージョン 45.0 以降で利用できます。

RemoteKeyIdentifier
string
プロパティ
Create、Filter、Group、Nillable、Sort
説明
リモート鍵サービスから取得した鍵素材の一意の鍵識別子。

API バージョン 45.0 以降で利用できます。

RemoteKeyServiceID
reference
プロパティ
Create、Filter、Group、Nillable、Sort、Update
説明
リモート鍵サービスからリモート鍵素材を取得するために使用される指定ログイン情報。

API バージョン 45.0 以降で利用できます。

SecretValue
base64
プロパティ
Create、Nillable、Update
説明

base64 で符号化された、256 ビットの暗号化された秘密の値。

SecretValueCertificate
string
プロパティ
Create、Filter、Group、Nillable、Sort、Update
説明

顧客が指定したテナントの秘密をアップロードする必要のある証明書。各証明書には一意の名前があります。

SecretValueHash
base64
プロパティ
Create
説明

アップロード済みの顧客が指定したテナントの秘密と一致するテナントの秘密ハッシュ。

Source
picklist
プロパティ
Create、Default on create、Filter、Group、Restricted picklist、Sort
説明
暗号化鍵素材の供給元。値は次のとおりです。
HSM
Salesforce で生成されたテナントの秘密。
アップロード済み
顧客が指定したテナントの秘密またはデータ暗号化鍵。
リモート
Salesforce 外部の鍵サービスから取得したテナントの秘密またはデータ暗号化鍵。API バージョン 44.0 以降で利用できます。

Source 値が Remote のテナントの秘密は、[設定] の [鍵の管理] ページでは [取得済み] としてリストされます。

メモ

API バージョン 43.0 以降で使用できます。

Status
picklist
プロパティ
Filter、Group、Nillable、Restricted picklist、Sort、Update
説明
テナントの秘密の状況。値は次のとおりです。
有効
新規または既存のデータを暗号化および復号化する場合に使用される可能性があります。
アーカイブ済み
新しいデータを暗号化できません。鍵が有効であったときにこの鍵を使用して以前に暗号化されたデータを復号化する場合に使用される可能性があります。
破棄済み
データを暗号化および復号化することはできません。鍵が有効であったときにこの鍵を使用して暗号化されたデータを復号化することはできません。この鍵を使用して暗号化されたファイルおよび添付ファイルは、ダウンロードできなくなります。

バージョン 44.0 以降では、API を使用して Status 項目を更新できます。

Type
picklist
プロパティ
Create、Default on create、Filter、Group、Restricted picklist、Sort
説明
テナントの秘密の種別。Type 項目は、API バージョン 39.0 以降で使用できます。Type 選択リストには次の値が表示されます。
  • Data — Salesforce データベースに保存されているデータ。暗号化された項目、ファイル、および添付ファイルのデータを含みますが、検索インデックスファイルのデータは含まれません。API バージョン 34.0 で作成されたテナントの秘密は、Data 型にデフォルト設定されます。
  • SearchIndex — 検索インデックスファイル (API バージョン 39.0 以降で使用可能)。
  • Analytics — Tableau CRM データ (API バージョン 39.0 以降で使用可能)。
  • DeterministicData — Salesforce データベースに保存されているデータ。暗号化された項目、ファイル、および添付ファイルのデータを含みますが、検索インデックスファイルのデータは含まれません (API バージョン 39.0 以降で使用可能)。
  • EventBus — 変更データキャプチャイベントデータ (API バージョン 43.0 以降で使用可能)。変更データキャプチャはパイロットの一部です。
Version
int
プロパティ
Filter、Group、idLookup、Sort
説明

この秘密のバージョン番号。バージョン番号は組織内で一意です。

使用方法

このオブジェクトを使用して、組織固有のテナントの秘密または顧客が指定した鍵素材を作成または更新します。

例 1: テナントの秘密の作成と有効化を自動化するソリューションを次のように作成します。

  1. まず、テナントの秘密を作成する Apex クラスを作成します。テナントの秘密の値を指定して、特定の型のデータを暗号化します。
    1global class CreateNewSecret implements Schedulable {
    2   global void execute(SchedulableContext SC) {
    3      TenantSecret secret = new TenantSecret ();
    4      secret.description = 'Created new secret from scheduled job';
    5      secret.type= ‘SearchIndex’;
    6      insert secret;
    7   }
    8}

    Type は、API バージョン 39.0 以降で使用できます。Type は省略可能です。すべてのテナントの秘密は Data 型にデフォルト設定されます。

    メモ

  2. 指定された間隔で実行されるように Apex クラスをスケジュール設定します。

    この Apex コードは、ジョブをスケジュール設定するために 1 回実行するだけで十分です。次のコードで、ジョブが 90 日ごとに実行されます。

    1CreateNewSecret secret = new CreateNewSecret();
    2String schedule = '0 0 0 1 JAN,APR,JUL,OCT ?';
    3String jobID = system.schedule('Automated secret creation and activation', schedule, secret);
  3. ジョブがスケジュール設定されたことを確認します。
  4. ジョブの実行後にテナントの秘密が作成されたことを確認します。
例 2: 顧客が指定したテナントの秘密または顧客が指定したデータ暗号化鍵をアップロードします。
  1. 顧客が指定した鍵素材と互換性のある証明書を作成します。Salesforce ヘルプの「BYOK 互換の証明書の生成」を参照してください。
  2. その後、一致する鍵素材と、鍵素材のハッシュをアップロードします。互換性のある証明書の一意の名前を含めます。鍵素材は暗号化形式でアップロードされます。
    1TenantSecret secret = new TenantSecret ();
    2      secret.description = 'New uploaded secret';
    3      secret.type= ‘Data’;
    4      secret.SecretValue = ...
    5      EncodingUtil.base64Decode('...');;
    6      secret.SecretValueCertificate = ...;
    7      secret.SecretValueHash = ...
    8      EncodingUtil.base64Decode('...');
    9      insert secret;

    このスクリプトを使用して、顧客が指定したテナントの秘密およびテナントの秘密ハッシュを生成できます

  3. 鍵素材がアップロードされたことを確認します。

例 3: 鍵素材をアップロードするときに鍵ごとに鍵派生を除外します。鍵素材をアップロードする場合、‘Source’:Uploaded および 'KeyDerivationMode':'NONE' を指定し、SecretValueCertificate、SecretValue、および SecretValueHash に null 以外の値を設定します。

例 4: Data 型のテナントの秘密をインポートします。

1TenantSecret secret = [SELECT Id FROM TenantSecret WHERE Type = ‘Data’ AND Version = 2];
2secret.SecretValue = “<previously_exported_secret_as_a_String>";
3update secret;

例 5: ファイルに secret.SecretValue を書き込んで、テナントの秘密をエクスポートします。次に、SearchIndex 型のテナントの秘密を使用する方法の例を示します。

1TenantSecret secret = [SELECT SecretValue FROM TenantSecret WHERE Type = ‘TenantSecret’ AND Version = 2];
2secret.SecretValue =...;
3update secret;

例 6: Data 型のテナントの秘密を破棄します。

テナントの秘密は、組織およびテナントの秘密を適用する特定のデータに対して一意です。テナントの秘密を破棄すると、以前にエクスポートした鍵を Salesforce にインポートし直さない限り、関連データにアクセスできなくなります。

警告

1TenantSecret secret = [SELECT Id FROM TenantSecret WHERE Type = ‘Data’ AND Version = 2];
2secret.SecretValue = NULL;
3secret.Status = Destroyed;
4update secret;
例 7: テナントの秘密の Status を Archived から Destroyed に変更します。SecretValue および新しいテナントの秘密の混在状況を含めます。
1TenantSecret secret = [SELECT Id FROM TenantSecret WHERE Type = 'Data' AND Version = 2];
2secret.Status = Destroyed;
3update secret;
Cache-Only Key Service の顧客は、キャッシュのみの鍵のテナントの秘密の Status を変更できます。たとえば、キャッシュのみの鍵を再有効化するには、その Status を Destroyed から Active に変更します。
例 8: Salesforce 外の鍵サービスからキャッシュのみの鍵のテナントの秘密を取得するコールアウト接続を作成します。
  1. 組織に、Salesforce が生成したか、顧客が指定した有効な「Salesforce のデータ」鍵が少なくとも 1 つあることを確認します。次に、[設定] の [詳細設定] ページから [BYOK でキャッシュのみの鍵を許可] をオンにします。
  2. 顧客が指定した鍵素材と互換性のある証明書を作成します。Salesforce ヘルプの「BYOK 互換の証明書の生成」を参照してください。
  3. 鍵素材の作成およびアセンブルを行います。
  4. 認証済みコールアウトメカニズムとして機能する指定ログイン情報を作成します。指定ログイン情報は、[設定] または Apex で直接定義できます。BYOK 互換の証明書と HTTPS エンドポイントを指定します。
  5. リモート鍵サービスへの接続を設定します。この接続では、指定ログイン情報とそれに関連付けられた証明書を使用して、指定されたキャッシュのみの鍵のテナントの秘密を取得します。
    1remote_params = {Source’: ‘Remote’, 
    2RemoteKeyIdentifier’: ...,
    3RemoteKeyServiceId: ...,
    4RemoteKeyCertificate’: ...}
    5
    6sf.TenantSecret.create(remote_params)