【问题标题】:Serverless Framework AWS 403 Forbidden Error with Domain Only无服务器框架 AWS 403 仅域的禁止错误
【发布时间】:2018-05-02 19:09:13
【问题描述】:

我正在为一个项目进行无服务器设置,但遇到了一个奇怪的错误。在我不得不删除旧证书并制作新证书之前,这一切正常。

简而言之,我正在关注 serverless-stack.com 上的教程系列以供参考,并且在运行 apig-test 命令时出现以下错误。

{ status: 403,
  statusText: 'Forbidden',
  data: { message: 'Forbidden' } }

这对我来说是政策错误。所以我去检查我的策略以确保它允许执行 AuthRole 并且确实如此。我在角色下的 IAM 部分验证了这一点,并查看了我在设置 Cognito 时创建的服务 Auth_Role。

我不想在这里提供过多的信息,但如果有人对下一步看哪里有任何想法,我将不胜感激,我会在此处提供您想查看的任何详细信息。

我要注意的一件事是,如果我使用 Lambda 函数的直接 URL 而不是我的域运行 apig-test 命令,它工作得非常好。

这证明我的代码没有任何问题,但更多的是关于我如何设置域的策略设置。

我相应地运行了 sls create_domain 并且我看到了 Route53 和 API 网关中的条目,它们在几个小时前已经完成了 40 分钟。自从我消灭了另一个证书后,我就使用正确的证书为其投保了。

我的自定义域过去一直有效多亏了我找到的插件和此处的本教程 (https://serverless.com/blog/serverless-api-gateway-domain/),直到最近,当我意识到我需要这样做时,它才停止工作向我的 SSL 证书添加更多域。

所以我认为政策错误在这附近的某个地方,但不确定在哪里看?

【问题讨论】:

  • 1.您的 api 网关设置中有授权人吗? 2.你尝试访问的路由在api网关资源中可见吗?
  • 对于 #2,在 API Gateway 的自定义域中,我确实看到了名称,并且他们不久前完成了配置。 cname 记录也在 Route53 中相应地设置为指定的目标域名。
  • 我不确定 API 网关设置中的授权人是什么?我如何检查那部分?
  • 哦,是的,在 API 下,我看到了我所有的路由,它们肯定可以工作,因为默认情况下它们会使用超长的超长域名,如果我在命令中使用该域名,它就可以工作,它只是由于某种原因不再适用于我的自定义域。
  • 就我而言,我只需要再次部署就可以了。

标签: amazon-web-services aws-lambda amazon-cognito serverless-framework serverless-plugins


【解决方案1】:

好的,我找到了答案。在自定义域下的 API Gateway 中有一个名为 Base Path Mappings 的部分,必须将其设置为您的函数之一,默认路径为 /(或不输入任何路径),然后是目标到您的 lambda 服务。这似乎使它对我有用。

【讨论】:

    猜你喜欢
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 2016-07-18
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多