AWS Codebuild 知道我的秘密值,但不会将它们注入我的命令中

问题描述 投票:0回答:2

我有一个秘密

important_secret
存储在秘密管理器中,秘密值为

{
    "tf_cloud_token": "super_secret"
}

在代码构建控制台中,我已将其链接起来:

在我的构建规范中,我有:

{
  "version": 0.2,
  "env": {
    "variables": {},
    "secrets-manager": {
      "SECRET_TF_CLOUD_TOKEN": "important_secret:tf_cloud_token",
    },
    "git-credential-helper": "yes"
  },
  "phases": {
    "build": {
      "commands": [
        "printf 'blah \"$SECRET_TF_CLOUD_TOKEN\"' > ~/.terraformrc",
        "more ~/.terraformrc",
        ...

但它只会记录

blah "$SECRET_TF_CLOUD_TOKEN"

但是,当我将其更改为:

    ...
    "commands": [
      "printf 'blah \"super_secret\"' > ~/.terraformrc",
      "more ~/.terraformrc"
      ...

它会记录

blah "***"

因此,它肯定知道我的秘密值,但它只是没有正确注入它。

如何让它使用我为其准备的

SECRET_TF_CLOUD_TOKEN
环境变量?

amazon-web-services aws-codepipeline aws-codebuild aws-secrets-manager
2个回答
2
投票

修复字符串插值:

"echo blah \"$SECRET_TF_CLOUD_TOKEN\" > ~/.terraformrc"

SECRET_TF_CLOUD_TOKEN="my-secret"

echo blah \"$SECRET_TF_CLOUD_TOKEN\" > ~/.terraformrc

cat ~/.terraformrc
# -> blah "my-secret"

-1
投票

你能修好它吗?我也遇到同样的问题

© www.soinside.com 2019 - 2024. All rights reserved.