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

Do *_*Kim 3 continuous-integration amazon-web-services aws-codebuild

我在参数存储中跟踪一个数字,并在 CodeBuild 执行期间访问它。CodeBuild 环境是一台 Windows 机器。我想打印环境变量。

我尝试了以下方法:

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

所有这些都将打印为星号。看起来 CodeBuild 会自动尝试审查它认为敏感的环境变量(也许所有参数存储变量?我找不到任何关于此的文档)。这个特定的环境变量不敏感,我们想打印它。有没有可能的方法?

sha*_*aws 6

几个月前,CodeBuild 在构建日志中实施了最大努力屏蔽秘密。由于 Parameter Store 的主要用例是存储密码等敏感信息,因此 CodeBuild 从构建日志中屏蔽了这些信息。当设置为机密的值是数字或常用词等常见字符串时,这将在整个日志中被屏蔽。

我们对使用简单环境变量的建议是使用纯文本环境变量,而不是 Parameter Store 或 Secrets Manager。当在日志中找到相同的字符串时,Parameter Store 和 Secrets Manager 值将被屏蔽。

安全通常不是方便的朋友,因此为此道歉,但避免机密泄露是这里的主要关注点。

这将很快在文档中正确记录。

编辑1:

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

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

  - MY_VAR=$(aws ssm get-parameter --name BUILD_NUM --query "Parameter.Value" --output text)
  - echo $MY_VAR
Run Code Online (Sandbox Code Playgroud)