問題
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
解決方案
您必須啟用GCM GCP的秘密密碼套件連接管理器服務。
如果你升級到磚上麵運行時10.4 LTS和GCM密碼套件默認是啟用的。
如果你呆在磚運行時9.1 LTS下麵,你應該遵循的指令使GCM密碼套件知識庫文章在集群上安裝GCM密碼套件。
一旦您啟用了GCM密碼套件,您可以連接到GCP的秘密管理器服務。