SSL連接GCP秘密管理器時例外

GCP秘密經理需要GCM密碼套件安裝在您的集群。磚上麵運行時10.4 LTS和GCM密碼套件默認啟用。

寫的John.Lourdu

去年發表在:2023年1月20日
刪除

信息

本文適用於集群使用磚運行時LTS LTS 7.3和9.1。

問題

GCP秘密秘密存儲在管理器服務可以檢索使用google-cloud-secret-manager客戶端庫。

您的代碼可能會失敗的SSLHandshakeException在磚運行時9.1 LTS和下麵的錯誤信息。

示例代碼:

進口com.google.cloud.secretmanager.v1.AccessSecretVersionResponse;進口com.google.cloud.secretmanager.v1.ProjectName;進口com.google.cloud.secretmanager.v1.Replication;進口com.google.cloud.secretmanager.v1.Secret;進口com.google.cloud.secretmanager.v1.SecretManagerServiceClient;進口com.google.cloud.secretmanager.v1.SecretPayload;進口com.google.cloud.secretmanager.v1.SecretVersion;進口com.google.protobuf.ByteString;進口com.google.cloud.secretmanager.v1.SecretName;進口com.google.cloud.secretmanager.v1。SecretManagerServiceSettings import com.google.api.gax.core.FixedCredentialsProvider; import com.google.auth.Credentials def access_secret_version(secret_id, version_id="latest"): # Create the Secret Manager client. client = secretmanager.SecretManagerServiceClient() # Build the resource name of the secret version. name = f"projects/{PROJECT_ID}/secrets/{secret_id}/versions/{version_id}" # Access the secret version. response = client.access_secret_version(name=name) # Return the decoded payload. return response.payload.data.decode('UTF-8') import hashlib def secret_hash(secret_value): # return the sha224 hash of the secret value return hashlib.sha224(bytes(secret_value, "utf-8")).hexdigest()

錯誤信息:

UnavailableException: io.grpc。StatusRuntimeException:不可用:io例外
通道管道:[SslHandler # 0, ProtocolNegotiators ClientTlsHandler # 0美元,WriteBufferingAndExceptionHandler # 0, DefaultChannelPipeline TailContext # 0]美元造成的:StatusRuntimeException:不可用:io異常通道管道:[SslHandler # 0, ProtocolNegotiators ClientTlsHandler # 0美元,WriteBufferingAndExceptionHandler # 0, DefaultChannelPipeline TailContext # 0]美元造成的:SSLHandshakeException:沒有合適的協議(協議被禁用或密碼組合不恰當)引起的:io.grpc。StatusRuntimeException:不可用:io異常通道管道:[SslHandler # 0, ProtocolNegotiators ClientTlsHandler # 0美元,WriteBufferingAndExceptionHandler # 0, DefaultChannelPipeline TailContext # 0]美元造成的:javax.net.ssl.SSLHandshakeException:不適當的協議(協議被禁用或密碼組合不恰當)sun.security.ssl.HandshakeContext。< init > (HandshakeContext.java: 171)

導致

GCM(伽羅瓦/計數器模式)密碼組合不磚上默認啟用運行時9.1 LTS下麵。

沒有GCM密碼套件,沒有協議建立SSL連接的預期GCP秘密經理。

您可以使用nmap工具來驗證密碼組合所需的外部服務器。

% sh nmap,腳本ssl-enum-ciphers - p 443 secretmanager.googleapis.com

刪除

信息

如果nmap沒有安裝,運行sudo apt-get安裝- y nmap將它安裝在您的集群。

解決方案

您必須啟用GCM GCP的秘密密碼套件連接管理器服務。

如果你升級到磚上麵運行時10.4 LTS和GCM密碼套件默認是啟用的。

如果你呆在磚運行時9.1 LTS下麵,你應該遵循的指令使GCM密碼套件知識庫文章在集群上安裝GCM密碼套件。

一旦您啟用了GCM密碼套件,您可以連接到GCP的秘密管理器服務。

這篇文章有用嗎?