TenantSecret
Data 型のテナントの秘密は、sandbox 組織では 4 時間に 1 回、本番組織では 24 時間に 1 回循環できます。SearchIndex 型のテナントの秘密は、7 日に 1 回循環できます。
項目
| 項目名 | 詳細 |
|---|---|
| Description |
|
| SecretValue |
|
| SecretValueCertificate |
|
| SecretValueHash |
|
| Status |
|
| Type |
|
| Version |
|
使用方法
このオブジェクトを使用して、組織固有のテナントの秘密を作成または更新します。たとえば、テナントの秘密の作成と有効化を自動化するソリューションを次のように作成できます。
- まず、新しいテナントの秘密を作成する 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); - ジョブがスケジュール設定されたことを確認します。
- ジョブの実行後にテナントの秘密が作成されたことを確認します。
顧客が指定したテナントの秘密をアップロードすることもできます。
- 顧客が指定した (BYOK) テナントの秘密と互換性のある証明書を作成します。「Platform Encryption REST API Developer Guide (プラットフォームの暗号化 REST API 開発者ガイド)」の「Generate a BYOK-Compatible Certificate (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; - テナントの秘密がアップロードされたことを確認します。
次に、Data 型のテナントの秘密をインポートする方法の例を示します。
1TenantSecret secret = [SELECT Id FROM TenantSecret WHERE Type = ‘Data’ AND Version = 2];
2secret.SecretValue = “<previously_exported_secret_as_a_String>";
3update secret;ファイルに secret.SecretValue を書き込んで、テナントの秘密をエクスポートすることもできます。次に、SearchIndex 型のテナントの秘密を使用する方法の例を示します。
1TenantSecret secret = [SELECT SecretValue FROM TenantSecret WHERE Type = ‘TenantSecret’ AND Version = 2];
2secret.SecretValue =...;
3update secret;次に、Data 型のテナントの秘密を破棄する方法の例を示���ます。
1TenantSecret secret = [SELECT Id FROM TenantSecret WHERE Type = ‘Data’ AND Version = 2];
2secret.SecretValue = NULL;
3update secret;