我在参数存储中记录了一个数字,并在CodeBuild执行时访问它。CodeBuild的环境是一台Windows机器。我想打印环境变量。
我尝试了以下的方法。
echo $NUMBER
$TMP=$NUMBER; echo $TMP
Add-Content -Path number.txt -Value $NUMBER; Get-Content number.txt
所有的环境变量都会被打印成星号。看起来CodeBuild会自动尝试审查它认为敏感的环境变量(可能是所有参数存储变量?我找不到这方面的文档)。) 这个特定的环境变量并不敏感,我们想打印它。有什么可能的方法吗?
几个月前,CodeBuild在构建日志中实现了对秘密的尽力掩盖。由于参数存储的大部分用途是存储敏感信息,比如密码,CodeBuild在构建日志中屏蔽了这些信息。当被设置为秘密的值是常见的字符串,如数字或一个常见的单词时,这将在整个日志中被掩盖。
我们对使用简单环境变量的建议是使用纯文本环境变量,而不是参数存储或秘密管理器。当在日志中发现相同的字符串时,参数存储和秘密管理器的值将被掩盖。
安全性通常不是方便的朋友,所以对此表示歉意,但避免机密的泄露是这里的首要考虑。
这一点很快就会在文档中做好记录。
根据我的测试,如果Param存储变量的值是 "ABC",那么在日志中任何有 "ABC "的地方(即使是在任何其他无辜的变量中)都会被屏蔽。
我想我们又回到了原点,请使用CLI直接获取值(对于秘密值,强烈建议继续使用buildpec'parameter-store'构造)。
- MY_VAR=$(aws ssm get-parameter --name BUILD_NUM --query "Parameter.Value" --output text)
- echo $MY_VAR