Q95 — AWS SAA-C03 第14章
第 95/100 题 | ← 返回第14章
Q1095. 一家媒体公司在 AWS 上托管一个 Web 应用程序.该应用程序允许用户上传和查看视频.该应用程序将视频存储在 Amazon S3 存储桶中.该公司希望确保只有经过身份验证的用户才能上传视频.经过身份验证的用户必须拥有仅能在经过身份验证后的特定时间范围内上传视频.哪种解决方案能够以最少的运营开销满足这些要求?
- A. 配置应用程序为经过身份验证的用户生成 IAM 临时安全凭证.
- B. 创建一个 AWS Lambda 函数,在用户身份验证时生成预签名的 URL. ✓
- C. 开发与 Amazon Cognito 集成的自定义身份验证服务,以控制和记录直接 S3通过应用程序访问存储桶.
- D. 使用 AWS 安全令牌服务 (AWS STS) 承担预定义的 IAM 角色,授予经过身份验证的用户将视频直接上传到 S3 存储桶的临时权限.
正确答案: B. 创建一个 AWS Lambda 函数,在用户身份验证时生成预签名的 URL.
解析
为了确定媒体公司 Web 应用程序的最佳解决方案,该应用程序需要确保只有经过身份验证的用户才能在身份验证后指定的时间范围内上传视频,让我们分析每个选项:A. 配置应用程序为经过身份验证的用户生成 IAM 临时安全凭证.此选项涉及应用程序直接处理 IAM 凭证的生成,如果实施不当,这可能会很复杂,并且可能不安全.它要求应用程序具有创建和管理 IAM 凭证的权限,这可能会带来安全风险和运营开销.B. 创建一个 AWS Lambda 函数,在用户身份验证时生成预签名的 URL.预签名 URL 允许临时访问 S3 存储桶,使用户能够上传文件而无需直接访问存储桶.Lambda 可以在用户身份验证后生成这些 URL,并且可以为它们配置与指定时间范围一致的到期时间.这种方法可以最大限度地降低运营开销和安全风险,因为 Lambda 函数可以由身份验证事件触发,并且不需要在应用程序内进行复杂的 IAM 凭证管理.C. 开发与 Amazon Cognito 集成的自定义身份验证服务,以控制和记录通过应用程序直接访问 S3 存储桶.此解决方案涉及开发和维护自定义服务,这可能很复杂且成本高昂.它还需要与 Amazon Cognito 集成以进行身份验证,然后实施其他逻辑来控制和记录对 S3 存储桶的访问.这会增加大量的运营开销.D. 使用 AWS 安全令牌服务 (AWS STS) 承担预定义的 IAM 角色,该角色授予经过身份验证的用户将视频直接上传到 S3 存储桶的临时权限.虽然 AWS STS 可用于承担 IAM 角色并授予临时权限,但这种方法在管理 IAM 角色和策略时通常会涉及更多复杂性.它还要求应用程序处理角色的承担,如果不安全实施,这可能会增加运营开销和潜在的安全风险.考虑到需要尽量减少运营开销,同时确保只有经过身份验证的用户才能在指定的时间范围内上传视频,选项 B 是最合适的解决方案:选项 B 利用 AWS Lambda 在用户身份验证后生成预签名 URL,完全符合在指定时间范围内临时访问的要求.Lambda 函数是无服务器的,这意味着它们不需要服务器管理,从而降低了运营开销.预签名 URL 提供了一种安全且直接的方式来授予对 S3 的临时访问权限,而无需暴露存储桶凭据.因此,媒体公司应该使用选项 B,以最少的运营开销来满足要求.