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

如何将AWS App Runner与AWS Cognito集成以保障API服务安全

AWS App Runner 集成 Cognito 实现 API 安全的方案

AWS App Runner本身没有内置类似API Gateway的授权器功能,但可以通过以下几种方式在不引入API Gateway的前提下,实现与Cognito的集成,保护你的API服务:

1. 应用层直接集成Cognito验证

这是最直接的方案,在容器化应用代码中加入Cognito身份验证逻辑:

  • 接收客户端请求中的JWT令牌(通常在Authorization头里,格式为Bearer <token>)
  • 使用AWS SDK或Cognito公钥,验证JWT的签名、有效期、受众(Audience)、发行方(Issuer)等核心字段
  • 验证通过后再处理业务请求,否则返回401/403错误

示例(Python伪代码):

import jwt
import requests

def validate_cognito_token(token):
    cognito_issuer = "https://cognito-idp.<region>.amazonaws.com/<user-pool-id>"
    jwks_url = f"{cognito_issuer}/.well-known/jwks.json"
    jwks = requests.get(jwks_url).json()
    
    try:
        header = jwt.get_unverified_header(token)
        public_key = next(k for k in jwks["keys"] if k["kid"] == header["kid"])
        decoded = jwt.decode(
            token,
            public_key,
            algorithms=["RS256"],
            issuer=cognito_issuer,
            audience="<client-id>"
        )
        return True, decoded
    except jwt.InvalidTokenError:
        return False, None

2. 容器代理层前置验证

如果不想修改应用代码,可以在容器中加入反向代理(比如Nginx、Envoy),在代理层完成Cognito JWT验证:

  • 配置Nginx使用ngx_http_auth_jwt_module模块,通过Cognito公钥验证令牌
  • 所有请求先经过代理层验证,通过后再转发给后端应用
  • 这种方式对应用代码无侵入,适合无法修改源码的场景

示例Nginx配置片段:

server {
    listen 8080;

    location / {
        auth_jwt "Cognito Protected API";
        auth_jwt_keyfile https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/jwks.json;
        auth_jwt_claim_set $cognito_sub sub;
        proxy_pass http://localhost:3000; # 你的应用监听端口
    }
}

3. 借助AWS WAF实现全局防护

将AWS WAF与App Runner服务关联,通过WAF规则检查请求中的Cognito JWT:

  • 创建WAF规则,使用AWS托管规则AWSManagedRulesCognitoAuthRule,或自定义规则验证JWT的签名和字段
  • 只有通过WAF验证的请求才能到达App Runner服务
  • 这种方式无需修改应用或容器配置,通过云服务层实现安全防护

需要注意:

  • WAF规则需准确匹配你的Cognito用户池和客户端信息
  • WAF会产生额外成本,但通常比API Gateway低,适合请求量不大的场景

总结:如果不想引入API Gateway,优先选择应用层直接集成或容器代理层验证的方案,成本最低且实现灵活;若需无侵入的全局防护,可考虑AWS WAF。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:12:10