gpt4 book ai didi

amazon-web-services - aws cloudfront api 端点响应 Forbidden(403)

转载 作者:行者123 更新时间:2023-12-03 23:54:59 27 4
gpt4 key购买 nike

我在 api 网关后面有一个 lambda 函数。这在用 触发时工作正常调用 URL .调用 URL 是阶段下方法选项卡中提供的链接。

enter image description here

我正在向资源发送请求,如下所示,这很好用。
enter image description here

我想为我的 api 设置一个自定义域,所以我按照标准程序设置了 ACM 证书。除此之外,我确实在 route53 中设置了域(api.tarkshala.com)。检查下面给出的屏幕截图。

导入ACM证书
enter image description here

自定义域映射
enter image description here

route53中映射的域名
enter image description here

但是当我使用 cloudfront 链接(d3pn2j4magp6tp.cloudfront.net)或使用 POSTMAN 的域名(api.tarkshala.com)访问 API 时,它最终变成了 403 禁止 .

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

响应头如下所示:

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

回复:
{
"message": "Forbidden"
}

最佳答案

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

When you create a custom domain name for an edge-optimized API, API Gateway sets up a CloudFront distribution. But you must set up a DNS record to map the custom domain name to the CloudFront distribution domain name [in order] for API requests bound for the custom domain name to be [correctly] routed to API Gateway through the mapped CloudFront distribution [and understood when they arrive]. You must also provide a certificate for the custom domain name. (emphasis added, bracketed words are mine, added for clarity)

https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html



在内部,CloudFront 分配有两种处理 Host 的方式。到达传入请求的 header -- CloudFront 可以移交 Host浏览器提交的 header ,如果它在预期值列表中,或者总是可以将单个静态值传递给它从源配置推断的后端源。

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

因此,要在 API 网关部署上测试自定义域名,请求者必须包含自定义域名作为 HTTP Host标题。 cloudfront.net 别名目标主机名仅用于 DNS 映射——它不是 API Gateway 在处理传入请求时实际与您部署的阶段相关联的备用主机名。

如果您的自定义域名指向 DNS 中的“目标”域名,并且您通过自定义域访问 API,这一切都会自动发生。否则,您可以设置 Host手动 header ,用于测试,如果您使用的工具允许它。

关于amazon-web-services - aws cloudfront api 端点响应 Forbidden(403),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49808921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com