You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现从本地环境安全访问部署于GKE的Cloud Auth代理?

实现本地到GKE部署的Cloud Auth代理的加密连接

两种可行方案

方案一:给Cloud Auth代理本身配置TLS加密

  1. 生成TLS证书
    用openssl生成自签名证书(生产环境建议用可信CA签发):

    openssl req -x509 -newkey rsa:4096 -keyout proxy-key.pem -out proxy-cert.pem -days 365 -nodes
    

    填写证书信息时,Common Name(CN)设为你本地访问代理用的域名或公网IP。

  2. 将证书挂载到GKE代理容器
    先把证书和密钥转成Kubernetes Secret:

    apiVersion: v1
    kind: Secret
    metadata:
      name: auth-proxy-tls
    type: kubernetes.io/tls
    data:
      tls.crt: <base64编码的proxy-cert.pem内容>
      tls.key: <base64编码的proxy-key.pem内容>
    

    再更新代理的Deployment,启用TLS监听:

    spec:
      containers:
      - name: cloud-sql-auth-proxy
        image: gcr.io/cloudsql-docker/gce-proxy:latest
        command:
        - "/cloud_sql_proxy"
        - "-instances=<你的Cloud SQL实例连接名>=tcp:0.0.0.0:8080"
        - "-tls-cert=/tls/tls.crt"
        - "-tls-key=/tls/tls.key"
        volumeMounts:
        - name: tls-secret
          mountPath: /tls
          readOnly: true
      volumes:
      - name: tls-secret
        secret:
          secretName: auth-proxy-tls
    
  3. 本地客户端配置证书信任
    连接时指定CA证书,以MySQL客户端为例:

    mysql -h <代理公网IP> -P 8080 -u <数据库用户名> -p --ssl-ca=proxy-cert.pem
    

    应用代码中需对应配置SSL根证书路径。

方案二:通过GKE Ingress实现HTTPS转发(生产环境推荐)

  1. 配置Ingress与SSL证书
    先申请Google管理的SSL证书(或上传自有证书),再创建Ingress资源转发HTTPS流量:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: auth-proxy-ingress
      annotations:
        networking.gke.io/managed-certificates: <你的证书名称>
        kubernetes.io/ingress.class: "gce"
    spec:
      rules:
      - host: <你的自定义域名>
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: <代理的Service名称>
                port:
                  number: 8080
    
  2. 配置代理的Service为ClusterIP
    确保代理Service为ClusterIP类型,让Ingress能正常转发:

    apiVersion: v1
    kind: Service
    metadata:
      name: cloud-sql-auth-proxy-service
    spec:
      type: ClusterIP
      selector:
        app: cloud-sql-auth-proxy
      ports:
      - port: 8080
        targetPort: 8080
    
  3. 本地通过HTTPS访问
    直接用https://<你的自定义域名>:443访问代理,Google管理的证书会被主流客户端自动信任,无需额外配置。

关键注意事项

  • 自签名证书需确保本地客户端信任,否则会触发SSL验证错误。
  • 方案二无需手动维护证书续期,更适合长期生产使用。
  • 需配置GKE防火墙规则,允许本地IP访问对应端口(方案一为8080,方案二为443)。

内容的提问来源于stack exchange,提问作者Alok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:35:08