课程简介
探索本课程范围,该课程旨在帮助您为 AWS 认证开发者 – 助理 (DVA-C02) 考试做好准备。
示例考试题目
一位开发者正在创建一个移动应用程序,允许用户从 S3 存储桶中查看图片。用户必须使用其 Amazon 登录账户,以及 Facebook 和/或 Google 账户登录。开发者应如何提供此身份验证功能?
A. 使用 Amazon Cognito 与 Web 身份联合。
B. 使用 Amazon Cognito 与基于 SAML 的身份联合。
C. 在应用程序代码中使用 AWS IAM 访问密钥/秘密密钥,以允许对 S3 存储桶执行 Get* 操作。
D. 在应用程序代码中使用 AWS STS AssumeRole 并假设一个对 S3 存储桶具有 Get* 权限的角色。
正确答案
正确答案:A
下面解释为什么选项 A 正确,以及其他选项为什么不对。
解释
原因:
Amazon Cognito 与 Web 身份联合专门用于移动和网页应用程序。它允许用户通过 Amazon、Facebook、Google 和 Apple 等公共身份提供商进行登录。它会为访问 AWS 资源(如 S3)提供临时且权限受限的凭据,而无需应用程序直接管理用户凭据。
为何不选:
选项 B: 基于 SAML 的身份联合用于企业身份提供商(例如 Active Directory Federation Services),并非移动应用程序中社交身份登录的主要机制。
选项 C: 在移动应用程序中硬编码 AWS IAM 访问密钥/秘密密钥存在严重安全风险,因为这些密钥很容易被提取并被滥用。
选项 D: 尽管 AWS STS
AssumeRole用于获取临时凭据,但在具有社交登录的移动应用场景中,Amazon Cognito 会透明地处理联合和角色假设,因此是更合适且更安全的服务。