更新:
不确定何时发生的变化,但现在这个方法可以按照描述工作了。
在流水线构建操作中还提供了一个选项,可直接设置密钥。
原始问题:
我已经为AWS CodePipeline的构建阶段设置了一个名为secret-id
的环境变量,例如$SECRET_ID
。
我想在CodeBuild buildspec.yml中使用它来基于我的环境从Secrets Manager获取一组机密。是否可能在buildspec文件中自引用其他变量?
这就是我预期它会工作的方式,但实际上并没有。
version: 0.2
env:
secrets-manager:
MY_SECRET: ${SECRET_ID}
phases:
build:
commands:
- echo $MY_SECRET
我在构建日志中收到以下错误信息。
秘密管理器错误消息:验证异常:无效名称。必须是包含字母数字字符或以下任何字符的有效名称:-/_+=.@!
secret-id:json-key:version-stage:version-id
? - sashsecret-id:json-key
的格式提供,举个例子,如果您有名为demo
的秘密管理器,并且其中包含一个名为key
的秘密和其内容,则需要使用demo:key
,然后它将返回JSON格式。请参阅 https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#secrets-manager-build-spec。 - Mahattam