【问题标题】:API Key enabled, but requests without key still runningAPI 密钥已启用,但没有密钥的请求仍在运行
【发布时间】:2016-05-20 01:56:37
【问题描述】:

在我的 API Gateway 控制台中,我执行了以下操作:

  • 已创建 API 密钥
  • 将密钥与已部署的 API 阶段相关联
  • 选中密钥的“启用”复选框
  • 对于我的 API 的每个资源的每个方法,都需要 API 密钥进行身份验证

我预计 curl https://my-api-gateway-url/my-resource 为 403,因为我没有包含 x-api-key 标头,但它是 200。我在 API Gateway 后面的 Lambda 函数在没有 API 密钥的情况下不应该运行时最终运行。

如何确保验证所有请求都需要密钥?

编辑:我在这里关注文档:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html

【问题讨论】:

  • 你重新部署了吗?
  • 哦,你做到了..很高兴它起作用了:)

标签: amazon-web-services aws-api-gateway


【解决方案1】:

刚刚回答了我自己的问题。在这里发布我的答案,因为我知道我不是唯一对此感到疑惑的人,例如 this person

答案是重新部署您的 API。尽管重新部署听起来很明显,但文档完全跳过了至关重要的最后一步,因此很容易被忽略。

【讨论】:

  • 很高兴它对您有用。感谢您对文档的反馈。我会将其传递给我们的文档团队,以确保涵盖所有必要的步骤。最佳 Jurgen,API 网关
  • 太烦人了....花了 30 分钟试图弄清楚为什么我的 API KEY 验证不起作用...再次部署 API 并修复
  • 感谢分享。 @Jurgen:我认为我们需要一个警告,例如“警告:未部署的更改”
  • 此问题是 terraform 和 API Gateway 的特有问题。当您更改任何内容时,您几乎总是需要将 API 重新部署到一个阶段......并且 terraform 不会在发生更改时自动重新部署。有一些技术可以强制重新部署,但它们有点笨拙 - stackoverflow.com/questions/38910937/…
猜你喜欢
  • 2014-05-12
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
  • 1970-01-01
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多