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

如何增强GCP Cloud Run链接的访问安全性?

GCP Cloud Run 实现IP限制与身份验证方案

一、限制仅特定IP地址访问

方法1:VPC连接器+防火墙规则

  • 创建VPC连接器,将Cloud Run实例接入你的VPC网络
  • 部署Cloud Run时选择内部访问模式,禁止公共网络直接访问
  • 在VPC的防火墙规则中,创建允许规则,仅放行目标IP/IP段对Cloud Run服务端口的请求
  • 注意:调用API的前端服务需处于同一VPC或可访问该VPC的网络环境中

方法2:Cloud Armor安全策略

  • 为Cloud Run实例创建Cloud Armor安全策略
  • 添加允许规则,指定需要放行的IP地址或地址段(如10.0.0.0/24)
  • 设置策略默认规则为拒绝所有请求
  • 将安全策略关联到你的Cloud Run服务,所有外部请求会先经过IP校验

二、添加用户名/密码验证

方法1:应用层实现基础认证

  • 在API入口处添加HTTP基础认证逻辑,校验请求头的Authorization字段
  • 示例(Python Flask):
from flask import Flask, request, abort
import os

app = Flask(__name__)

# 从环境变量读取认证信息,避免硬编码
VALID_USER = os.getenv('AUTH_USER')
VALID_PASS = os.getenv('AUTH_PASS')

def validate_auth(auth):
    return auth and auth.username == VALID_USER and auth.password == VALID_PASS

@app.before_request
def check_auth():
    auth = request.authorization
    if not validate_auth(auth):
        return ('请提供合法的用户名和密码', 401,
                {'WWW-Authenticate': 'Basic realm="API Access"'})

@app.route('/api/endpoint')
def protected_endpoint():
    return {'status': 'success', 'data': 'authorized content'}

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=int(os.getenv('PORT', 8080)))
  • 部署时通过Cloud Run的环境变量注入用户名和密码,保障敏感信息安全

方法2:Cloud Identity-Aware Proxy(IAP)

  • 为Cloud Run服务绑定自定义域名(IAP依赖自定义域名配置)
  • 启用IAP并关联到该Cloud Run服务
  • 在IAP权限设置中,添加允许访问的用户或用户组
  • 用户访问API时需通过Google账号完成身份验证,实现安全访问控制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:30:59