Q19 — AWS DVA-C02 第1章

第 19/100 题 | ← 返回第1章

交司必场使用AWS CloudFormation 模板来色署其拍有Amazon RDS 数哪库实例,作为AWS CodePipeline 持器集成和持器公它(CI/CD)自察化的伊色分。数哪库实例的主密码必场在色署笔程中自察生成。据种解相远案能够以最洋的开发工作满梦这些要求?

正确答案: B. 使用CodePipeline 的AWS CodeBuild 操作通过以下AWS CLI 命令生成安全字符串:aws Secretsmanager get -random -password 。将生成的安全字符串作为CloudFormation 参数传递,并将NoEcho 属性设置为true。使用参数引用创建数据库实例。

解析

. 创建AWS Lambda 支持的CloudFormation 自定义资源。编写生成安全字符串的Lambda 代码。返回安全字符串的值作为自定义资源响应对象的数据字段。使用CloudFormation Fn ::GetAtt 内部函数获取安全字符串的值。使用该值创建数据库实例。 这个选项需要编写Lambda函数来生成安全字符串,并将其作为自定义资源传递给CloudFormation。虽然可行,但增加了额外的复杂性和开发工作量。 B. 使用CodePipeline 的AWS CodeBuild 操作通过以下AWS CLI 命令生成安全字符串:aws Secretsmanager get -random -password 。将生成的安全字符串作为CloudFormation 参数传递,并将NoEcho 属性设置为true。使用参数引用创建数据库实例。 这个选项利用AWS CLI 和 AWS Secrets Manager 来生成和管理安全字符串,然后通过CloudFormation 参数传递给数据库实例创建过程。这种方法简单直接,不需要额外的自定义资源或Lambda 函数,能够很好地集成到CI/CD流水线中。 C. 创建AWS Lambda 支持的CloudFormation 自定义资源。编写生成安全字符串的Lambda 代码。返回安全字符串的值作为自定义资源响应对象的数据字段。使用CloudFormation Fn ::GetAtt 内部函数获取安全字符串的值。在AWS Secrets Manager 中创建密钥。使用Secretsmanager 动态引用来使用密钥中存储的值来创建数据库实例。 这个选项类似于选项 A,但额外在AWS Secrets Manager 中创建密钥来存储安全字符串。虽然功能强大,但相比选项 B,增加了复杂性和不必要的步骤。 D. 使用AWS:SecretsManager :Secret 资源生成安全字符串。将安全字符串作为密钥存储在AWS Secrets Manager 中。使用Secretsmanager 动态引用来使用密钥中存储的值来创建数据库实例。 这个选项与选项 C 类似,也使用了AWS Secrets Manager,但将安全字符串存储为密钥而不是直接传递给CloudFormation 参数。这增加了管理和权限配置的复杂性,并不是最简单的解决方案。 因此,选项 B 是最佳选择,因为它使用AWS CLI 和 AWS Secrets Manager 来生成和传递安全字符串,能够很好地集成到CI/CD流水线中,并且不需要额外的自定义资源或Lambda 函数。