下面的两行 bash 代码将秘密提取到运行 RHEL8 的 Azure VM 的 cloud-init 脚本中。但是这两行中的每一行都有一个意想不到的副作用,就是将秘密打印到 cloud-init 日志中,让全世界都能看到。
为了防止他们将秘密打印到日志中,必须在下面的两行中具体更改什么?
myVar=$(az keyvault secret show --name "mySecretsFile" --vault-name "$VAULT_NAME" --query "value")
echo "$myVar" | base64 --decode --ignore-garbage >>/home/username/somefoldername/keys.yaml
上面两行的日志如下所示,除了这里我们已经编辑了公共论坛的实际秘密。在实际的日志中,秘密被打印了两次:
+ myVar='"really-long-alpha-numeric-secret-redacted-for-stack-exchange"'
+ echo '"really-long-alpha-numeric-secret-redacted-for-stack-exchange"'
这可能是一个关于如何禁止在日志中打印某些类型的内容的简单 bash 问题。