キャッシュのみの鍵のトラブルシューティング
| アドオンサブスクリプションとして使用可能なエディション: Enterprise Edition、Performance Edition、および Unlimited Edition。Salesforce Shield の購入が必要です。Summer '15 以降に作成された Developer Edition 組織は無料で使用できます。 |
| Salesforce Classic および Lightning Experience の両方で使用できます。 |
- 鍵サービスへのコールアウトが正常に終了しません。どうすればよいですか?
-
コールアウトが失敗する原因はいくつかあります。表示されたエラーメッセージを確認し、次のヒントに従って問題を解決してください。すべてのコールアウトは RemoteKeyCalloutEvent オブジェクトに記録されます。
表 1. キャッシュのみの鍵サービスのエラーと状況コード RemoteKeyCalloutEvent 状況コード エラー 問題修正のヒント DESTROY_HTTP_CODE The remote key service returned an HTTP error: {000}. (リモート鍵サービスから次の HTTP エラーが返されました: {000}。)A successful HTTP response will return a 200 code. (成功すると HTTP 応答コード 200 が返されます。) 問題を調べるには、HTTP 応答コードを確認します。 ERROR_HTTP_CODE The remote key service returned an unsupported HTTP response code: {000}. (リモート鍵サービスからサポートされていない次の HTTP 応答コードが返されました: {000}。)A successful HTTP response will return a 200 code. (成功すると HTTP 応答コード 200 が返されます。) 問題を調べるには、HTTP 応答コードを確認します。 MALFORMED_CONTENT_ENCRYPTION_KEY The remote key service returned a content encryption key in the JWE that couldn't be decrypted with the certificate's private key. (リモート鍵サービスから JWE で返されたコンテンツ暗号化鍵を証明書の非公開鍵で復号化できませんでした。)Either the JWE is corrupted, or the content encryption key is encrypted with a different key. (JWE が破損しているか、コンテンツ暗号化鍵が別の鍵を使用して暗号化されています。) 指定ログイン情報が適切に設定され、正しい BYOK 互換の証明書を使用していることを確認します。 MALFORMED_DATA_ENCRYPTION_KEY The content encryption key couldn't decrypt the data encryption key that was returned in the remote key service's JWE. (リモート鍵サービスの JWE で返されたデータ暗号化鍵をコンテンツ暗号化鍵で復号化できませんでした。)The data encryption key is either malformed, or encrypted with a different content encryption key. (データ暗号化鍵が不正な形式であるか、別のコンテンツ暗号化鍵で暗号化されています。) 指定ログイン情報が適切に設定され、正しい BYOK 互換の証明書を使用していることを確認します。指定ログイン情報は HTTPS エンドポイントをコールアウトする必要があります。 MALFORMED_JSON_RESPONSE We can't parse the JSON returned by your remote key service. (リモート鍵サービスから返された JSON を解析できません。)Contact your remote key service for help. (リモート鍵サービスにお問い合わせください。) リモート鍵サービスに問い合わせます。 MALFORMED_JWE_RESPONSE The remote key service returned a malformed JWE token that can't be decoded. (リモート鍵サービスから返された JWE トークンが不正な形式であるため、復号化できません。)Contact your remote key service for help. (リモート鍵サービスにお問い合わせください。) リモート鍵サービスに問い合わせます。 EMPTY_RESPONSE The remote key service callout returned an empty response. (リモート鍵サービスのコールアウトで空の応答が返されました。)Contact your remote key service for help. (リモート鍵サービスにお問い合わせください。) リモート鍵サービスに問い合わせます。 RESPONSE_TIMEOUT The remote key service callout took too long and timed out. (リモート鍵サービスのコールアウトに時間がかかりすぎてタイムアウトしました。)Try again. (もう一度お試しください。) 複数回コールアウトを試行しても鍵サービスを使用できない場合は、リモート鍵サービスに問い合わせます。 UNKNOWN_ERROR The remote key service callout failed and returned an error: {000}. (リモート鍵サービスのコールアウトが失敗し、次のエラーが返されました: {000}。) リモート鍵サービスに問い合わせます。 INCORRECT_KEYID_IN_JSON The remote key service returned JSON with an incorrect key ID. (リモート鍵サービスから誤った鍵 ID を含む JSON が返されました。)Expected: {valid keyID}. (想定値: {valid keyID}。)Actual: {invalid keyID}. (実際の値: {invalid keyID}。) 指定ログイン情報が適切に設定され、正しい BYOK 互換の証明書を使用していることを確認します。 INCORRECT_KEYID_IN_JWE_HEADER The remote key service returned a JWE header with an incorrect key ID. (リモート鍵サービスから誤った鍵 ID を含む JWE ヘッダーが返されました。)Expected: {valid keyID}. (想定値: {valid keyID}。)Actual: {invalid keyID}. (実際の値: {invalid keyID}。) 指定ログイン情報が適切に設定され、正しい BYOK 互換の証明書を使用していることを確認します。 INCORRECT_ALGORITHM_IN_JWE_HEADER The remote key service returned a JWE header that specified an unsupported algorithm (alg): {algorithm}. (リモート鍵サービスから次のサポート対象外のアルゴリズム (alg) が指定された JWE ヘッダーが返されました: {algorithm}。) JWE ヘッダー内のコンテンツ暗号化鍵を暗号化するアルゴリズムは RSA-OAEP 形式である必要があります。 INCORRECT_ENCRYPTION_ALGORITHM_IN_JWE_HEADER The remote key service returned a JWE header that specified an unsupported encryption algorithm (enc): {your enc}. (リモート鍵サービスから次のサポート対象外の暗号化アルゴリズム (enc) が指定された JWE ヘッダーが返されました: {your enc}。) JWE ヘッダー内のデータ暗号化鍵を暗号化するアルゴリズムは A256GCM 形式である必要があります。 INCORRECT_DATA_ENCRYPTION_KEY_SIZE Data encryption keys encoded in a JWE must be 32 bytes. (JWE 内のエンコードされたデータ暗号化鍵は 32 バイトである必要があります。)データ暗号化鍵が {value} バイトです。 データ暗号化鍵が 32 バイトであることを確認します。 ILLEGAL_PARAMETERS_IN_JWE_HEADER Your JWE header must use {0}, but no others. (JWE ヘッダーで使用できるのは {0} のみです。)Found: {1}. (見つかった値: {1}。) サポート対象外のパラメータを JWE ヘッダーから削除します。 MISSING_PARAMETERS_IN_JWE_HEADER Your JWE header is missing one or more parameters. (JWE ヘッダーで 1 つ以上のパラメータがありません。)Required: {0}. (必須の値: {0}。)Found: {1}. (見つかった値: {1}。) JWE ヘッダーに必須の値がすべて含まれていることを確認します。たとえば、リプレイ検出が有効になっている場合は、JWE ヘッダーにキャッシュのみの鍵のコールアウトから抽出された nonce 値が含まれている必要があります。 AUTHENTICATION_FAILURE_RESPONSE Authentication with the remote key service failed with the following error: {error}. (リモート鍵サービスでの認証が次のエラーで失敗しました: {error}。) 選択した指定ログイン情報の認証設定を確認します。 POTENTIAL_REPLAY_ATTACK_DETECTED The remote key service returned a JWE header with an incorrect nonce value. (リモート鍵サービスから誤った nonce 値を含む JWE ヘッダーが返されました。)Expected: {0}. (想定値: {0}。)Actual: {1} (実際の値: {1}) コールアウトに含まれている RequestID が JWE ヘッダーに含まれていることを確認します。 UNKNOWN_ERROR The remote key service callout failed and returned an error: java.security.cert.CertificateExpiredException: NotAfter: {date and time of expiration} (リモート鍵サービスのコールアウトが失敗し、次のエラーが返されました: java.security.cert.CertificateExpiredException: NotAfter: {date and time of expiration}) キャッシュのみの鍵の証明書の期限が切れています。有効な BYOK 互換の証明書を使用するようにキャッシュのみの鍵素材を更新します。 -
次の鍵サービスエラーによってコールアウトを完了できなくなることがあります。これらの問題に関連するエラーが表示されたら、鍵サービスのシステム管理者にお問い合わせください。
- JWE が破損しているか、不正な形式である。
- データ暗号化鍵が不正な形式である。
- 鍵サービスから不正な形式の JWE トークンが返された。
- 鍵サービスから空の応答が返された。
- Apex でリモートコールアウトを実行できますか?
-
はい。Apex コールアウトで指定ログイン情報をコールアウトエンドポイントとして指定するすべての認証が Salesforce によって管理されるため、コードでこれらを行う必要はありません。コールアウト定義から指定ログイン情報を参照するには、指定ログイン情報 URL を使用します。指定ログイン情報 URL にはスキーム callout、指定ログイン情報の名前、必要に応じて追加されたパスが含まれます。例: callout:My_Named_Credential/some_path。
詳細は、『Apex 開発者ガイド』の「コールアウトエンドポイントとしての指定ログイン情報」を参照してください。
- コールアウト履歴を監視できますか?
-
キャッシュのみの鍵イベントを確認または追跡する場合は、RemoteKeyCalloutEvent 標準オブジェクトを使用します。describeSObjects() コールを使用してイベント情報を表示するか、after insert Apex トリガを使用して各コールアウトの後にカスタムオブジェクトを実行します。たとえば、RemoteKeyCallout イベントをカスタムオブジェクトに保存するトリガを作成できます。RemoteKeyCallout イベントをカスタムオブジェクトに保存すると、コールアウト履歴を監視できます。詳細は、『SOAP API 開発者ガイド』の RemoteKeyCalloutEvent エントリを参照してください。
設定変更履歴では、鍵素材の状態と指定ログイン情報設定の変更が追跡されます。コールアウト履歴はログファイルには記録されません。
- キャッシュのみの鍵で暗号化されたデータにアクセスしようとすると、データではなく「?????」と表示されます。なぜですか?
- マスクは、次の 2 つのいずれかを意味します。鍵サービスへの接続が切断されて鍵を取得できないか、データが破棄された鍵で暗号化されているかです。鍵サービスが使用可能で、指定ログイン情報が正しいエンドポイントを参照していることを確認します。鍵サービスが失敗したために鍵バージョンが「破棄済み」とマークされている場合、接続を回復して手動でその鍵バージョンを有効化します。
- 鍵を循環させるたびに新しい指定ログイン情報を作成する必要がありますか?
- いいえ。1 つの指定ログイン情報を複数の鍵で使用できます。既存の指定ログイン情報で指定されたエンドポイントで鍵素材をホストしている限り、他に必要はありません。鍵素材を循環させるときは、一意の鍵識別子項目の鍵 ID を変更します。新しい鍵が指定ログイン情報で指定されたエンドポイント URL に保存されていることを再確認します。
- まだ鍵に関する問題があります。どこに問い合わせすればよいですか?
- 上記以外にも質問がある場合は、アカウントエグゼクティブまたは Salesforce カスタマーサポートまでお問い合わせください。この機能を専門とするサポートチームをご紹介します。