4

在过去的一两天里,我阅读了一堆 AWS 文档,但还没有遇到任何真正回答以下问题的内容:

如果移动应用程序使用 AWS Cognito 作为身份验证/身份提供商,我知道我们可以编写 AWS IAM 策略来指定用户可以采取的 AWS 资源和操作。有一些简短的策略示例允许用户将文件直接上传到 S3,但只能上传到以其用户身份命名的“文件夹”中。有很多提到能够使用策略来控制对各种 AWS 资源的访问,包括 CloudSearch。

我的主要问题是:如何从移动客户端向 AWS 服务发出请求,以使它们具有这些策略起作用所必需的用户上下文(令牌或 w/e)?AWS 移动 SDK 可能会对此有所帮助,但在这种情况下,如何向 AWS 移动 SDK 中未包含的资源(如 CloudSearch)发出请求?CloudSearch 查询通过 REST Api 公开自身,那么在这种情况下,移动客户端将如何提供用户上下文,这是策略发挥作用所必需的?

4

1 回答 1

1

对 AWS API 的请求通过凭证进行身份验证。对于几乎所有服务,此身份验证通过签名版本 4进行,该版本使用请求有效负载的 HMAC,并使用凭证的访问密钥部分进行签名。

对于作为Amazon Cognito authflow的一部分出售的凭证,还包括一个 sessionKey,其中包含有关登录用户的上下文信息。在评估与这些凭证关联的策略时,可以将变量替换为这些上下文值(例如cognito -identity.amazonaws.com:sub用于标识 ID)以确定凭证是否具有指定的访问权限。

于 2015-02-12T16:42:57.820 回答