首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws cloudfront api端点响应禁止(403)

问aws cloudfront api端点响应禁止(403)
EN

Stack Overflow用户
提问于 2018-04-13 03:35:25
回答 1查看 12.6K关注 0票数 7

我在api网关后面有一个lambda函数。当使用调用URL触发时,这是很好的。Invoke URL是在分阶段的方法选项卡中提供的链接。

​

​

我向资源发送请求如下,这是很好的工作。

​

我想为我的api设置一个自定义域,所以我遵循了设置ACM证书的标准过程。除此之外,我还在route53中设置了域(Route53)。查看下面的截图。

进口ACM证书

​

自定义域映射

​

在route53中映射的域名

​

但是当我使用cloudfront链接(d3pn2j4magp6tp.cloudfront.net)或使用POSTMAN的域名(api.tarkshala.com)点击API时,它最终会进入403紫禁城。

我不知道我到底错过了什么?

响应头如下所示:

代码语言:javascript
复制
Connection →keep-alive
Content-Length →23
Content-Type →application/json
Date →Fri, 13 Apr 2018 03:17:25 GMT
Via →1.1 a1cf0e6cf29b584b5fe1ada9ccee9758.cloudfront.net (CloudFront)
X-Amz-Cf-Id →9Jh5HeQIuDNfm5WGlTae34oYZ7BiN3nI2VlH_8PJHLQ0mr2C20njJQ==
X-Cache →Error from cloudfront
x-amz-apigw-id →FQoiyF1phcwFVrg=
x-amzn-ErrorType →ForbiddenException
x-amzn-RequestId →3013c239-3ec9-11e8-abe6-53449bcfc96c

响应:

代码语言:javascript
复制
{
    "message": "Forbidden"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-14 02:23:30

文档似乎没有提到与API端点关联的CloudFront发行版配置的一个重要方面.似乎只能推断:

当您为边缘优化的API创建自定义域名时,API网关将设置一个CloudFront发行版。但是,您必须设置一个DNS记录,以便将自定义域名映射到CloudFront发行版域名,以便将绑定自定义域名的CloudFront请求通过映射的CloudFront发行版正确地路由到API,并在它们到达时被理解。还必须为自定义域名提供证书。(加了强调,括号内的单词是我的,为了清楚起见增加了) https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html

在内部,CloudFront发行版有两种方法来处理到达传入请求的Host头-- CloudFront可以提交浏览器提交的Host报头,如果它位于期望值列表上,或者总是可以将单个静态值传递给它根据原始配置推断的后端源。

对于由apparently管理的CloudFront发行版,配置显然是通过浏览器发送的内容进行的,这很有意义,因为另一种选择将要求apparently对传入的请求进行额外的操作,至少可以说是复杂的。

因此,要在API部署上测试自定义域名,请求者必须将自定义域名作为header。cloudfront.net别名目标主机名仅用于DNS映射--在处理传入请求时,alias实际上并不是与部署阶段相关联的备用主机名。

如果您的自定义域名指向DNS中的“目标”域名,并且通过自定义域访问API,则所有这些都会自动发生。否则,您可以手动设置Host标头,以便进行测试,如果您使用的工具允许的话。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49808921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档