AWS CodeBuild 无法打印参数存储环境变量
AWS CodeBuild cannot print parameter store environment variables
我在参数存储中跟踪一个数字,并在 CodeBuild 执行期间访问它。 CodeBuild 环境是一台 Windows 机器。我想打印环境变量。
我试过以下方法:
- 按原样打印环境变量:
echo $NUMBER
- 将环境变量赋值给另一个变量并打印:
$TMP=$NUMBER; echo $TMP
- 将环境变量回显到文本文件并打印该文本文件:
Add-Content -Path number.txt -Value $NUMBER; Get-Content number.txt
所有这些都将打印为星号。看起来 CodeBuild 会自动尝试审查它认为敏感的环境变量(也许是所有参数存储变量?我找不到任何关于此的文档)。这个特定的环境变量不敏感,我们想打印它。有什么办法吗?
几个月前,CodeBuild 在构建日志中实施了最大努力的秘密屏蔽。由于 Parameter Store 的主要用例是存储密码等敏感信息,因此 CodeBuild 将其从构建日志中屏蔽掉。当设置为机密的值是常见字符串(如数字或常见单词)时,它们将在整个日志中被屏蔽。
我们对使用简单环境变量的建议是使用纯文本环境变量,而不是 Parameter Store 或 Secrets Manager。当在日志中找到相同的字符串时,Parameter Store 和 Secrets Manager 值将被屏蔽。
安全通常不是方便的朋友,因此对此表示歉意,但避免泄露机密是这里的首要问题。
这将很快在文档中正确记录。
编辑 1:
根据我的测试,如果 Param store 变量的值为 "ABC",那么在任何你有 "ABC" 的日志中(即使它在任何其他无辜的变量中)它将是蒙面
我想我们回到原点,请使用 CLI 直接获取值(对于秘密值,强烈建议继续使用 buildspec 'parameter-store' 构造):
- MY_VAR=$(aws ssm get-parameter --name BUILD_NUM --query "Parameter.Value" --output text)
- echo $MY_VAR
我在参数存储中跟踪一个数字,并在 CodeBuild 执行期间访问它。 CodeBuild 环境是一台 Windows 机器。我想打印环境变量。
我试过以下方法:
- 按原样打印环境变量:
echo $NUMBER
- 将环境变量赋值给另一个变量并打印:
$TMP=$NUMBER; echo $TMP
- 将环境变量回显到文本文件并打印该文本文件:
Add-Content -Path number.txt -Value $NUMBER; Get-Content number.txt
所有这些都将打印为星号。看起来 CodeBuild 会自动尝试审查它认为敏感的环境变量(也许是所有参数存储变量?我找不到任何关于此的文档)。这个特定的环境变量不敏感,我们想打印它。有什么办法吗?
几个月前,CodeBuild 在构建日志中实施了最大努力的秘密屏蔽。由于 Parameter Store 的主要用例是存储密码等敏感信息,因此 CodeBuild 将其从构建日志中屏蔽掉。当设置为机密的值是常见字符串(如数字或常见单词)时,它们将在整个日志中被屏蔽。
我们对使用简单环境变量的建议是使用纯文本环境变量,而不是 Parameter Store 或 Secrets Manager。当在日志中找到相同的字符串时,Parameter Store 和 Secrets Manager 值将被屏蔽。
安全通常不是方便的朋友,因此对此表示歉意,但避免泄露机密是这里的首要问题。
这将很快在文档中正确记录。
编辑 1:
根据我的测试,如果 Param store 变量的值为 "ABC",那么在任何你有 "ABC" 的日志中(即使它在任何其他无辜的变量中)它将是蒙面
我想我们回到原点,请使用 CLI 直接获取值(对于秘密值,强烈建议继续使用 buildspec 'parameter-store' 构造):
- MY_VAR=$(aws ssm get-parameter --name BUILD_NUM --query "Parameter.Value" --output text)
- echo $MY_VAR