Q76 — AWS SAA-C03 第17章
第 76/89 题 | ← 返回第17章
Q1376. 一家公司有一个应用程序,运行在自动扩展组中的 Amazon EC2 实例上。该应用程序使用硬编码凭证来访问 Amazon RDS 数据库。为了遵守新规定,公司需要每 90 天自动轮换一次应用程序服务帐户的数据库密码。哪种解决方案能够满足这些要求?
- A. 创建一个 AWS Lambda 函数来生成新的随机密码。配置一条 Amazon EventBridge 规则,使其每 90 天调用一次该 Lambda 函数。配置该 Lambda 函数,使其使用 SSH 将包含新密码的 JSON 文件上传到现有的 EC2 实例。
- B. 在 AWS Secrets Manager 中为数据库凭证创建一个密钥。在 Secrets Manager 中安排一个 AWS Lambda 函数,每 90 天轮换一次密钥。修改应用程序,使其从 Secrets Manager 读取数据库凭证。 ✓
- C. 创建一个新的 Amazon ECS 任务来生成新的随机密码。将该任务配置为每 90 天启动一次。配置该任务使用 SSH 将包含新密码的 JSON 文件上传到现有的 EC2 实例。
- D. 创建一个新的 EC2 实例,每 90 天运行一次定时任务。使用该定时任务生成新的随机密码。配置新的 EC2 实例,使其通过 SSH 将包含新密码的 JSON 文件上传到现有的 EC2 实例。
正确答案: B. 在 AWS Secrets Manager 中为数据库凭证创建一个密钥。在 Secrets Manager 中安排一个 AWS Lambda 函数,每 90 天轮换一次密钥。修改应用程序,使其从 Secrets Manager 读取数据库凭证。
解析
让我们分析每个选项,以确定哪个选项满足每 90 天自动轮换应用程序服务帐户数据库密码的要求:选项 A用于生成密码的 Lambda 函数:创建一个 AWS Lambda 函数来生成新的随机密码,并使用 Amazon EventBridge 规则每 90 天调用一次该函数,是按计划生成密码的有效方法。通过 SSH 上传:然而,配置 Lambda 函数使用 SSH 将包含新密码的 JSON 文件上传到现有 EC2 实例存在安全风险,不建议这样做。SSH 访问需要管理密钥,以这种方式暴露实例可能会导致潜在的安全漏洞。此外,对于在自动扩展组中跨多个实例更新凭据而言,这不是一种可扩展或可靠的方法。因此,此选项不正确。选项 BAWS Secrets Manager:AWS Secrets Manager 是一项服务,可帮助您保护对应用程序、服务和 IT 资源的访问。您可以存储和管理密钥,例如数据库凭证、API 密钥和其他敏感信息。密钥轮换:通过在 Secrets Manager 中为数据库凭证创建一个密钥,并安排一个 AWS Lambda 函数(可以在 Secrets Manager 中轻松配置)每 90 天轮换一次密钥,即可实现密码轮换过程的自动化。应用程序修改:修改应用程序以从 Secrets Manager 读取数据库凭据,可确保应用程序始终使用最新凭据,而无需将其硬编码。这是一个安全、可扩展且合规的解决方案,满足要求。因此,此选项正确。选项CAmazon ECS 任务用于生成密码:创建一个新的 Amazon ECS 任务来生成新的随机密码,并将其配置为每 90 天启动一次,这是按计划生成密码的一种可能方法。通过 SSH 上传:与选项 A 类似,使用 SSH 将包含新密码的 JSON 文件上传到现有 EC2 实例存在安全风险。不建议采用这种方式分发凭据,尤其是在像自动扩展组这样的动态环境中。因此,此选项不正确。选项 D使用 cron 作业创建新的 EC2 实例:创建一个新的 EC2 实例,每 90 天运行一次 cron 作业来生成新的随机密码,这会增加不必要的架构和复杂性。仅仅为了生成密码而管理一个额外的 EC2 实例既不经济也不高效。通过 SSH 上传:配置新的 EC2 实例,使其使用 SSH 将包含新密码的 JSON 文件上传到现有的 EC2 实例,也存在与之前使用 SSH 分发凭证的选项相同的安全风险。因此,此选项不正确。所以,满足要求的解决方案是在 AWS Secrets Manager 中为数据库凭证创建一个密钥,在 Secrets Manager 中安排一个 AWS Lambda 函数每 90 天轮换一次密钥,并修改应用程序以从 Secrets Manager 读取数据库凭证。答案是 B。