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

如何在AWS Lambda中用非密钥JSON认证Google reCAPTCHA Enterprise客户端

在AWS Lambda中使用GCP工作负载身份初始化reCAPTCHA Enterprise Python客户端

基于你已完成的GCP工作负载身份配置,以下是在AWS Lambda中实现reCAPTCHA客户端初始化及核心操作的具体步骤:

1. 配置文件与依赖准备

  • 将生成的非密钥JSON配置文件重命名为gcp_workload_identity.json,放入Lambda代码包的根目录
  • 确保Lambda部署包包含必要依赖:
    • google-cloud-recaptchaenterprise(reCAPTCHA客户端库)
    • google-auth(处理外部账号身份验证)

2. 加载凭证并初始化客户端

使用Google Auth的外部账号凭证类加载配置,生成可直接用于reCAPTCHA客户端的凭证对象:

from google.oauth2.external_account import Credentials
import recaptchaenterprise_v1

# 加载GCP工作负载身份配置
credentials = Credentials.from_file('gcp_workload_identity.json')

# 初始化reCAPTCHA Enterprise客户端
client = recaptchaenterprise_v1.RecaptchaEnterpriseServiceClient(credentials=credentials)

3. Lambda执行角色权限配置

Lambda的IAM执行角色必须具备以下权限:

  • sts:GetCallerIdentity:用于生成AWS请求令牌,供GCP验证身份合法性
  • 允许出站访问以下服务端点:
    • GCP STS服务:sts.googleapis.com
    • GCP IAM凭证服务:iamcredentials.googleapis.com
    • AWS元数据服务:169.254.169.254(Lambda默认可访问,若使用私有VPC需配置对应路由或VPC端点)

4. 示例:创建并处理reCAPTCHA评估

以下是使用初始化后的客户端创建评估并返回风险结果的示例代码:

def lambda_handler(event, context):
    # 从事件中获取前端传入的reCAPTCHA令牌和站点密钥
    recaptcha_token = event['recaptcha_token']
    site_key = event['site_key']
    project_id = '<你的GCP项目ID>'

    # 构建评估请求
    assessment = recaptchaenterprise_v1.Assessment()
    assessment.token = recaptcha_token
    assessment.site_key = site_key

    request = recaptchaenterprise_v1.CreateAssessmentRequest(
        parent=f"projects/{project_id}",
        assessment=assessment
    )

    # 发送评估请求
    response = client.create_assessment(request=request)

    # 解析风险结果
    risk_score = response.risk_analysis.score
    return {
        'statusCode': 200,
        'body': {
            'risk_level': 'high' if risk_score >= 0.7 else 'low',
            'score': risk_score
        }
    }

关键注意事项

  • 若Lambda运行在私有VPC环境,需配置NAT网关或GCP服务的VPC端点,确保能访问GCP的API服务
  • 确认GCP服务账号的Workload Identity User角色已正确关联到Lambda执行角色的ARN(作为AWS身份提供商的主体)
  • 整个流程无需管理GCP服务账号密钥,身份验证通过AWS与GCP的工作负载身份联盟自动完成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:03:15