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

私有VPC环境下客户端无法访问AWS Cognito获取Token,求解决方案

私有VPC内访问AWS Cognito获取Token的可行方案

针对你遇到的「客户无公网访问权限,无法连接Cognito获取Token」问题,不建议直接弃用Cognito(会丢失其原生的安全管理、Token生命周期等核心能力),以下是更优的替代方案:

方案1:创建Cognito的VPC接口端点(推荐)

这是AWS原生的私有访问方案,无需额外搭建服务,让VPC内的资源通过私有IP直接访问Cognito服务:

  • 在VPC控制台中创建接口端点,选择服务类型为com.amazonaws.<你的区域>.cognito-idp
  • 配置端点关联客户侧资源所在的子网,同时确保安全组允许客户客户端访问端点的443端口
  • 修改客户客户端的Token请求地址为Cognito的私有端点域名(可在VPC端点详情中获取),替换原公网域名
  • 验证:在VPC内的测试实例中调用https://<cognito-idp-private-endpoint>/oauth2/token,确认能正常获取Token

方案2:部署中转代理/NAT网关(适用于允许部分资源出公网的场景)

如果客户允许VPC内存在少量可访问公网的资源,可以:

  • 在VPC的公有子网部署NAT网关,或在私有子网部署HTTPS代理服务器
  • 配置客户客户端通过该代理访问公网的Cognito Token端点
  • 注意:需严格限制代理的访问权限,仅允许客户侧IP发起请求,避免安全风险

方案3:内部Token分发服务(兼容现有Cognito认证流程)

保留Cognito作为认证核心,在VPC内搭建一个轻量内部服务:

  • 该服务拥有访问Cognito的权限(通过VPC端点或NAT)
  • 客户客户端调用这个内部服务获取Token,内部服务再转发请求到Cognito并返回Token
  • 优势:完全隐藏公网访问逻辑,同时保留Cognito的所有认证功能

临时方案的弊端说明

直接弃用Cognito改用基础认证+自定义授权器存在以下问题:

  • 基础认证无Token过期、刷新机制,安全性远低于OAuth2客户端凭证流
  • 丢失Cognito的用户池管理、多因素认证、Token吊销等高级功能
  • 需要从零开发自定义授权器,增加开发和长期维护成本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:10:53