问题
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的秘密管理器服务。