排解 mTLS 問題

本節提供疑難排解指引,說明設定及使用 Managed Service for Apache Kafka 的 mTLS 時,如何解決常見問題。

更新叢集時發生錯誤

執行 gcloud managed-kafka clusters updategcloud managed-kafka clusters create 指令時,可能會遇到下列錯誤。

無效的 SSL 主體對應規則

您會收到類似下列其中一則的錯誤訊息:

INVALID_ARGUMENT: The request was invalid: invalid SSL principal mapping
rule: \"RULE:INVALID-RULE\". The rule must be of the format DEFAULT or
RULE:pattern/replacement/[LU]
INVALID_ARGUMENT: The request was invalid: invalid SSL principal mapping
rules: \"RULE:\\nRULE:,DEFAULT\" contains a newline

發生錯誤訊息的原因是,ssl-principal-mapping-rules 旗標的值格式有誤或含有無效字元。

修正規則,使其符合必要格式,並確認規則字串不含任何換行字元。如要進一步瞭解 ssl-principal-mapping-rules 標記,請參閱「主體對應」。

無效的 CA 集區設定

您會收到類似下列其中一則的錯誤訊息:

INVALID_ARGUMENT: The request was invalid:
ca_pool: project/managed-kafka-test/locations/us-central1/test-ca-pool
doesn't match the expected format: projects/{project}/locations/{location}/caPools/{caPool}
INVALID_ARGUMENT: The request was invalid: maximum of 10 CA pools can be specified
INVALID_ARGUMENT: The request was invalid: duplicate CA pool:
projects/managed-kafka-test/locations/us-central1/caPools/test-ca-pool.
All CA pools must be unique

發生錯誤訊息的原因是為 mtls-ca-pools 旗標提供的 CA 集區清單無效。查看 CA 集區清單,並確認下列事項:

  • 所有 CA 集區名稱都採用完整資源格式:projects/PROJECT_ID/locations/LOCATION/caPools/CA_POOL_ID

  • 清單中不得有重複的 CA 集區。

  • 憑證授權單位集區總數不得超過 10 個。

叢集不支援 mTLS

您會收到類似以下的錯誤訊息:

FAILED_PRECONDITION: Invalid resource state for \"tls_config\": mTLS is not
supported for this cluster because it was created before the mTLS feature
was added. Please create a new cluster to use mTLS.

如果您嘗試在功能推出前建立的叢集上啟用 mTLS,就會收到這則錯誤訊息。如錯誤訊息所示,您必須建立新叢集才能使用 mTLS。您無法在 2025 年 6 月 24 日前建立的現有不合格叢集上啟用 mTLS。

用戶端連線失敗

如果用戶端應用程式無法連線至叢集的 mTLS 端點,請檢查下列常見設定問題:

  • 啟動位址有誤:請確認您使用的啟動位址是否正確。 您必須使用 mTLS 啟動位址,結尾為 9192,而非 9092

  • 用戶端憑證無效或不正確:確認用戶端憑證有效且未過期,並由叢集上設定的其中一個 CA 集區核發。

  • 用戶端金鑰儲存區設定不正確:確認用戶端應用程式的設定正確指向金鑰儲存區和信任儲存區檔案,且密碼正確無誤。

  • Kafka ACL 不正確:請確認您已為經過驗證的主體建立必要的 Kafka ACL。請注意,主體是憑證的主體名稱 (或對應的別名),前置字串為 User:。舉例來說,如果主體名稱為 test-user,則主體為 User:test-user

Cloud Logging 中的錯誤

您可能會在叢集的記錄中看到下列錯誤,這些記錄可在 Logging 中查看。如要進一步瞭解記錄功能,請參閱「使用記錄檔探索工具查看記錄檔」。

信任儲存區大小超過上限

您會看到類似下列內容的記錄項目:

Trust store size X bytes exceeds the maximum allowed size of 1000 KiB
and cannot be updated.

發生這個錯誤訊息的原因是,所設定 CA 集區中所有 CA 憑證的總大小超過 1000 KiB 的限制。

檢查 CA 集區中的憑證,縮減總大小。 這可能包括移除大型或不必要的憑證,或是最佳化 CA 鏈結。

無法從 CA 集區擷取憑證

您會看到類似下列內容的記錄項目:

Managed Service for Apache Kafka failed to fetch certificates from
CA pool <ca-pool-name>. Error: <error>.

如果 Managed Service for Apache Kafka 服務代理程式無法從指定的 CA 集區擷取憑證,就會顯示這則錯誤訊息。訊息的錯誤部分會提供更多詳細資料。這項失敗的常見原因是缺少 IAM 權限。

確認 Managed Service for Apache Kafka 服務代理在含有 CA 集區的專案中,具備「CA 集區讀取者」 (roles/privateca.poolReader) 角色。這在跨專案設定中尤其重要。 如要進一步瞭解設定 mTLS 的必要權限,請參閱「必要的角色和權限」。