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

ECS部署的.NET应用无法从Cognito获取配置问题求助

问题排查方向
  • 验证容器内网络连通性

    • 进入ECS任务的容器,执行以下命令测试Cognito OIDC配置地址的访问情况:
      curl -v https://cognito-idp.eu-central-1.amazonaws.com/{userPoolId}/.well-known/openid-configuration
      
      观察输出是否有DNS解析失败、SSL握手错误或连接超时的信息。
    • 执行nslookup cognito-idp.eu-central-1.amazonaws.com确认容器能否正常解析Cognito服务域名。
  • 核对Cognito配置参数

    • 确认ECS环境中_config.Cognito.Authority和_config.Cognito.Metadata的取值与本地完全一致,重点检查userPoolId是否正确,避免环境变量或配置文件部署错误。
    • 直接访问MetadataAddress对应的URL,确认返回的OIDC配置内容格式正确。
  • 检查VPC与子网网络配置

    • 再次确认ECS任务所在公网子网的路由表已正确指向Internet网关(IGW),且IGW状态正常。
    • 检查子网的网络ACL是否允许出站443端口流量(即使同集群定时任务正常,也需排除子网ACL的差异限制)。
    • 确认容器所属安全组已开放出站到0.0.0.0/0的443端口,或至少允许访问Cognito服务的IP段。
  • 排查SSL/TLS相关问题

    • 验证容器内的CA证书是否完整:执行带CA证书路径的curl命令测试(以Debian/Ubuntu为例):
      curl --cacert /etc/ssl/certs/ca-certificates.crt https://cognito-idp.eu-central-1.amazonaws.com/{userPoolId}/.well-known/openid-configuration
      
      若报错证书信任问题,需确保容器镜像包含完整的AWS根CA证书。
    • 确认.NET应用启用了TLS 1.2及以上版本,可在代码中添加:
      ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13;
      
  • 检查IAM角色与权限限制

    • 确认ECS任务角色未附加拒绝出站网络请求的权限策略,虽然Cognito OIDC配置地址为公开端点,但严格的权限策略可能意外拦截请求。
    • 若VPC配置了Cognito的VPC端点,需确认端点策略允许任务访问该端点,且路由表已指向端点。
  • 排查中间网络设备

    • 确认VPC内是否存在NAT网关、代理服务器或AWS WAF等设备,检查这些设备是否有拦截Cognito域名请求的规则。
    • 对比同集群定时任务的网络配置(如安全组、子网、任务角色),排查是否存在配置差异导致请求失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:05:27