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

这篇文章有用吗?