API网关身份验证:AWS sigv4与Cognito用户池JWT

时间:2018-10-10 01:04:53

标签: aws-api-gateway amazon-cognito amazon-iam

当我使用API​​-网关定义端点时,某些端点只能从登录用户访问。 (我正在使用Cognito用户池来管理我的用户)

我看到了实现这一目标的不同方法

  1. SigV4,请参见Page 19;

  2. 来自Cognito用户池的
  3. JWT令牌,请参见Page 23

现在,我正在使用选项2,但是我不知道何时应该使用选项1。它们是本质上只是实现同一目标的不同方法还是不同?

1 个答案:

答案 0 :(得分:2)

尽管付出了一些努力,但它们可以“半”互换使用,但每种方法背后都有不同的意图:

  • SigV4的目标用户是可以访问您的AWS账户中的IAM用户/角色。
  • Cognito / JWT旨在允许您创建和管理与您的AWS账户用户(即在Cognito中)不同的一组用户,并采用一种机制来验证这些身份。

对于大多数API网关使用,我希望Cognito(或API密钥)是最佳选择。尽管有一些架构模式,您可以通过这些模式使API用户通过临时IAM凭据直接访问帐户中的资源。