Q84 — AWS SAA-C03 第15章

第 84/100 题 | ← 返回第15章

Q1184. 一家公司使用一组 Amazon EC2 实例来托管一个网站。该网站使用 Amazon S3 存储桶来存储图片和媒体文件。该公司希望自动化网站基础设施创建,以将网站部署到多个 AWS 区域。该公司还希望为 EC2 实例提供对 S3 存储桶的访问权限,以便实例可以使用 AWS 身份和访问管理 (IAM) 存储和访问数据。哪种解决方案能够最安全地满足这些要求?

正确答案: C. 创建一个 IAM 角色和一个 IAM 访问策略,允许 Web 服务器 EC2 实例访问 S3 存储桶。为 Web 服务器 EC2 实例创建一个 AWS CloudFormation 模板,其中包含引用 IAM 角色和 IAM 访问策略的 IAM 实例配置文件实体。

解析

为了满足跨多个 AWS 区域自动创建网站基础设施的需求,同时安全地为 EC2 实例提供对 Amazon S3 存储桶的访问权限,最安全的解决方案是 C。创建一个 IAM 角色和一个 IAM 访问策略,以允许 Web 服务器 EC2 实例访问 S3 存储桶。为 Web 服务器 EC2 实例创建一个 AWS CloudFormation 模板,其中包含引用 IAM 角色和 IAM 访问策略的 IAM 实例配置文件实体。选项分析:选项 A:为 Web 服务器 EC2 实例创建 AWS CloudFormation 模板。将 IAM 访问密钥保存在 CloudFormation 模板中 AWS::EC2::Instance 实体的 UserData 部分。限制:将 IAM 访问密钥直接存储在 CloudFormation 模板的 UserData 部分中是不安全的。访问密钥是长期凭证,如果泄露,可能会导致未经授权访问 AWS 资源。这种方法违反了最小特权原则,并增加了凭证泄露的风险。选项 B:创建一个包含 IAM 秘密访问密钥和访问密钥 ID 的文件。将该文件存储在新的 S3 存储桶中。创建 AWS CloudFormation 模板。在模板中,创建一个参数来指定包含访问密钥和访问密钥 ID 的 S3 对象的位置。限制:此解决方案还需要将 IAM 访问密钥存储在 S3 存储桶中,这不安全。访问密钥绝不能以纯文本形式存储,也不应该存储在易于访问的位置。这种方法会增加凭证被盗和未经授权访问的风险。选项 C:创建一个 IAM 角色和一个 IAM 访问策略,允许 Web 服务器 EC2 实例访问 S3 存储桶。为 Web 服务器 EC2 实例创建一个 AWS CloudFormation 模板,其中包含一个引用 IAM 角色和 IAM 访问策略的 IAM 实例配置文件实体。优势:此解决方案使用 IAM 角色和实例配置文件,这是向 EC2 实例授予临时凭证最安全的方式。IAM 角色提供自动轮换的临时安全凭证,无需存储长期访问密钥。您可以精细调整 IAM 访问策略,使其仅向 EC2 实例授予必要的权限,并遵循最小特权原则。此方法安全、可扩展且易于管理。选项 D:创建一个脚本,用于从 IAM 检索 IAM 秘密访问密钥和访问密钥 ID,并将其存储在 Web 服务器 EC2 实例上。将该脚本包含在 AWS CloudFormation 模板中 AWS::EC2::Instance 实体的 UserData 部分中。限制:与选项 A 类似,此解决方案需要将 IAM 访问密钥存储在 EC2 实例上,这很不安全。访问密钥不应存储在实例或脚本中,因为这会增加凭证泄露和未经授权访问的风险。