Q97 — AWS SCS-C02 第1章
第 97/100 题 | ← 返回第1章
一位安全工程师正在检查一个AWS CloudFormation模板是否存在漏洞。该安全工程师发现一个参数的默认值以明文形式暴露了应用程序的API密钥,且该参数在模板中被多次引用。该安全工程师必须替换该参数,同时保持在模板中引用该值的能力。 以下哪种解决方案能以最安全的方式满足这些要求?
- A. 将API密钥值作为SecureString参数存储在AWS Systems Manager Parameter Store中。在模板中,将所有对该值的引用替换为{{resolve:ssm:MySSMParameterName:1}}。
- B. 将API密钥值存储在AWS Secrets Manager中。在模板中,将所有对该值的引用替换为{{resolve:secretsmanager:MySecretId:SecretString}}。 ✓
- C. 将API密钥值存储在Amazon DynamoDB中。在模板中,将所有对该值的引用替换为{{resolve:dynamodb:MyTableName:MyPrimaryKey}}。
- D. 将API密钥值存储在一个新的Amazon S3存储桶中。在模板中,将所有对该值的引用替换为{{resolve:s3:MyBucketName:MyObjectName}}。
正确答案: B. 将API密钥值存储在AWS Secrets Manager中。在模板中,将所有对该值的引用替换为{{resolve:secretsmanager:MySecretId:SecretString}}。
解析
AWS Secrets Manager是专为存储和管理敏感信息(如API密钥)而设计的服务,提供自动密钥轮换、细粒度权限控制和加密存储功能。通过CloudFormation模板可直接引用Secrets Manager中的密钥,使用语法{{resolve:secretsmanager:MySecretId:SecretString}}实现安全引用,既消除了明文暴露风险,又保持了模板内参数引用的灵活性与可维护性。