AWS CodeBuild无法打印参数存储环境变量。

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

我在参数存储中记录了一个数字,并在CodeBuild执行时访问它。CodeBuild的环境是一台Windows机器。我想打印环境变量。

我尝试了以下的方法。

  1. 按原样打印环境变量 echo $NUMBER
  2. 将环境变量分配给另一个变量并打印。$TMP=$NUMBER; echo $TMP
  3. 将环境变量回传到一个文本文件并打印该文本文件。Add-Content -Path number.txt -Value $NUMBER; Get-Content number.txt

所有的环境变量都会被打印成星号。看起来CodeBuild会自动尝试审查它认为敏感的环境变量(可能是所有参数存储变量?我找不到这方面的文档)。) 这个特定的环境变量并不敏感,我们想打印它。有什么可能的方法吗?

amazon-web-services continuous-integration aws-codebuild
1个回答
2
投票

几个月前,CodeBuild在构建日志中实现了对秘密的尽力掩盖。由于参数存储的大部分用途是存储敏感信息,比如密码,CodeBuild在构建日志中屏蔽了这些信息。当被设置为秘密的值是常见的字符串,如数字或一个常见的单词时,这将在整个日志中被掩盖。

我们对使用简单环境变量的建议是使用纯文本环境变量,而不是参数存储或秘密管理器。当在日志中发现相同的字符串时,参数存储和秘密管理器的值将被掩盖。

安全性通常不是方便的朋友,所以对此表示歉意,但避免机密的泄露是这里的首要考虑。

这一点很快就会在文档中做好记录。

编辑1:

根据我的测试,如果Param存储变量的值是 "ABC",那么在日志中任何有 "ABC "的地方(即使是在任何其他无辜的变量中)都会被屏蔽。

我想我们又回到了原点,请使用CLI直接获取值(对于秘密值,强烈建议继续使用buildpec'parameter-store'构造)。

  - MY_VAR=$(aws ssm get-parameter --name BUILD_NUM --query "Parameter.Value" --output text)
  - echo $MY_VAR
© www.soinside.com 2019 - 2024. All rights reserved.