【发布时间】:2019-08-31 11:16:18
【问题描述】:
我正在开发一个必须访问某些 AWS 资源的移动应用程序,因此它需要对 AWS 端点进行身份验证。该应用不管理用户(登录、注销、注册等)。
我的第一个解决方案是创建一个专用于移动应用程序的 IAM 用户,并将其凭证嵌入到移动应用程序代码中。该应用程序使用嵌入式凭证向 AWS 验证自身。它可以工作,但 AWS 建议避免将凭证直接嵌入应用程序中。
我认为更好的解决方案是 Cognito。因为我不需要用户管理,所以我应该使用未经身份验证的(访客)身份来请求临时 AWS 凭证。
但是我不明白为什么 guest Cognito 身份比嵌入式凭据更安全。移动应用程序通过发送 Cognito 身份池 ID 接收临时 AWS 凭证,该 ID 是移动应用程序中嵌入的长期“数字”。如果有人能够找到此身份池 ID,她可以接收 AWS 凭证并作为我的官方移动应用程序访问 AWS 资源。嵌入式 AWS 长期凭证和色调 Cognito 访问之间似乎没有区别。
为什么 Cognito 解决方案优于嵌入式 AWS 凭证?
【问题讨论】:
标签: amazon-web-services amazon-cognito amazon-iam