AWS Codebuild 知道我的秘密值,但不会将它们注入我的命令
AWS Codebuild knows my secret values, but won't inject them into my commands
我有一个秘密 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
环境变量?
修复字符串插值:"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"
我有一个秘密 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
环境变量?
修复字符串插值:"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"