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

如何通过Serverless VPC Connector限制Cloud Run仅访问指定VPC资源

限制Serverless VPC Access Connector仅访问指定Memorystore实例

针对你遇到的Serverless VPC Access Connector默认防火墙规则权限过宽的问题,可以通过以下最小权限配置实现仅允许Cloud Run访问指定Memorystore实例:

步骤1:移除默认宽权限防火墙规则

创建连接器时自动生成的规则(命名格式通常为vpc-access-connector-<连接器ID>-allow)会允许连接器子网访问整个VPC内的所有资源,直接在VPC防火墙规则列表中找到并删除该规则。

步骤2:创建精准的双向防火墙规则

需要配置两条规则,确保仅连接器与目标Memorystore之间的流量被允许:

  • 出站规则(Cloud Run → Memorystore)
    • 方向:出站
    • 源:Serverless VPC Access Connector的子网CIDR
    • 目标:Memorystore实例的私有IP(或其所在的专属子网CIDR,若需覆盖同段多个实例)
    • 协议/端口:TCP,端口6379(若使用自定义Redis端口则替换)
    • 动作:允许
  • 入站规则(Memorystore → Cloud Run)
    • 方向:入站
    • 源:Memorystore实例的私有IP(或其所在的专属子网CIDR)
    • 目标:Serverless VPC Access Connector的子网CIDR
    • 协议/端口:TCP,端口6379
    • 动作:允许

步骤3:验证规则有效性

部署Cloud Run应用后,测试Redis连接是否正常;同时尝试访问VPC内其他资源(如VM、GKE Pod),确认无法建立连接,确保规则仅生效于目标Memorystore。

确认客户端配置

你的Node.js Redis客户端配置已符合要求,注意确保REDIS_HOST环境变量设置为Memorystore的私有IP:

const { createClient } = require('redis');

function getClient() {
    const client = createClient({
        socket: {
            host: process.env.REDIS_HOST
        },
        password: process.env.REDIS_PASS
    });
    client.on('error', (err) => {
        throw Error(`redis client error: ${err}`);
    });
    return client;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:15:39