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

CloudFront后的API Gateway是否不支持AWS_IAM认证?调用问题咨询

能否通过CloudFront调用启用AWS_IAM保护的REST API?

当然可以!你遇到的问题大概率是配置环节漏掉了几个关键步骤,我来帮你梳理核心要点和修正方案:

核心配置调整项

1. 给CloudFront配置适配API Gateway的源访问控制(OAC)

旧的Origin Access Identity(OAI)不适用于IAM认证的API Gateway场景,你需要创建Origin Access Control(OAC):

  • 在CloudFront控制台创建OAC时,类型选择「API Gateway」
  • 给CloudFront关联的服务角色添加权限,允许它调用你的API Gateway
  • 在API Gateway的资源策略中,添加允许该OAC对应的CloudFront分发访问的规则(示例策略见下文)

2. 配置CloudFront缓存行为,透传IAM签名相关请求头

因为你是用Cognito用户生成IAM签名后调用API,CloudFront需要完整透传这些签名相关的头到API Gateway:

  • 在CloudFront的缓存行为设置中,选择「允许的HTTP方法」包含你API用到的所有方法(比如GET、POST)
  • 选择不缓存的策略(比如Managed-CachingDisabled),因为每个用户的IAM签名都是唯一的,缓存会导致签名失效
  • 在「源请求策略」中,选择能转发所有必要请求头的规则(比如Managed-AllViewerExceptHostHeader),确保Authorization、X-Amz-Date、X-Amz-Security-Token这些IAM签名必备头被完整转发

3. 调整API Gateway的资源策略

你需要同时允许CloudFront作为代理访问,并且保留IAM认证的验证逻辑,示例资源策略如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudfront.amazonaws.com"
      },
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:你的区域:你的账号ID:你的API ID/*/*/*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "arn:aws:cloudfront::你的账号ID:distribution/你的CloudFront分发ID"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:你的区域:你的账号ID:你的API ID/*/*/*",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }
      }
    }
  ]
}

这条策略既允许CloudFront分发访问你的API,又要求所有请求必须通过HTTPS且携带有效的IAM签名(因为你已经在API方法上开启了AWS_IAM认证)。

4. 更新Amplify的API配置

把Amplify配置中的API端点从原来的API Gateway域名,改成你的CloudFront分发域名(或者Route53配置的自定义域名),确保是HTTPS协议。同时确认Amplify的Auth模块能正确从Cognito UserPool获取用户凭证,并生成有效的IAM签名。

常见排查点

  • 确认CloudFront分发已开启HTTPS(IAM签名要求请求必须是HTTPS)
  • 检查缓存策略是否设置为不缓存,避免缓存无签名的请求导致后续调用失败
  • 验证所有IAM签名相关的请求头都被CloudFront正确转发到API Gateway

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:28:46