TenantSecret
Data 型のテナントの秘密は、sandbox 組織では 4 時間に 1 回、本番組織では 24 時間に 1 回循環できます。SearchIndex 型のテナントの秘密は、7 日に 1 回循環できます。
サポートされているコール
create()、query()、retrieve()、update()
項目
| 項目名 | 詳細 |
|---|---|
| Description |
|
| KeyDerivationMode |
|
| RemoteKeyCertificate |
|
| RemoteKeyIdentifier |
|
| RemoteKeyServiceID |
|
| SecretValue |
|
| SecretValueCertificate |
|
| SecretValueHash |
|
| Source |
|
| Status |
バージョン 44.0 以降では、API を使用して Status 項目を更新できます。 |
| Type |
|
| Version |
|
使用方法
このオブジェクトを使用して、組織固有のテナントの秘密または顧客が指定した鍵素材を作成または更新します。
例 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} - 指定された間隔で実行されるように 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); - ジョブがスケジュール設定されたことを確認します。
- ジョブの実行後にテナントの秘密が作成されたことを確認します。
- 顧客が指定した鍵素材と互換性のある証明書を作成します。Salesforce ヘルプの「BYOK 互換の証明書の生成」を参照してください。
- その後、一致する鍵素材と、鍵素材のハッシュをアップロードします。互換性のある証明書の一意の名前を含めます。鍵素材は暗号化形式でアップロードされます。
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: 鍵素材をアップロードするときに鍵ごとに鍵派生を除外します。鍵素材をアップロードする場合、‘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 型のテナントの秘密を破棄します。
1TenantSecret secret = [SELECT Id FROM TenantSecret WHERE Type = ‘Data’ AND Version = 2];
2secret.SecretValue = NULL;
3secret.Status = Destroyed;
4update secret;1TenantSecret secret = [SELECT Id FROM TenantSecret WHERE Type = 'Data' AND Version = 2];
2secret.Status = Destroyed;
3update secret;- 組織に、Salesforce が生成したか、顧客が指定した有効な「Salesforce のデータ」鍵が少なくとも 1 つあることを確認します。次に、[設定] の [詳細設定] ページから [BYOK でキャッシュのみの鍵を許可] をオンにします。
- 顧客が指定した鍵素材と互換性のある証明書を作成します。Salesforce ヘルプの「BYOK 互換の証明書の生成」を参照してください。
- 鍵素材の作成およびアセンブルを行います。
- 認証済みコールアウトメカニズムとして機能する指定ログイン情報を作成します。指定ログイン情報は、[設定] または Apex で直接定義できます。BYOK 互換の証明書と HTTPS エンドポイントを指定します。
- リモート鍵サービスへの接続を設定します。この接続では、指定ログイン情報とそれに関連付けられた証明書を使用して、指定されたキャッシュのみの鍵のテナントの秘密を取得します。
1remote_params = { ‘Source’: ‘Remote’, 2‘RemoteKeyIdentifier’: ..., 3‘RemoteKeyServiceId: ..., 4‘RemoteKeyCertificate’: ...} 5 6sf.TenantSecret.create(remote_params)