在PowerShell脚本中使用秘密变量的正确方法是什么?它可以是管道变量,变量组1或从Azure Key Vault任务引入的变量。 我在文档中看到,不能以与普通(非秘密)变量相同的方式使用它。它说:“相反,我们建议您将机密映射到环境变量中。”和“您需要显式映射秘密变量。” 我使用了一个环境变量,它可以工作。还有其他方法吗? This blog说您可以直接在脚本中使用它,这似乎与MS文档相矛盾。 This one将变量作为参数或参数传递给脚本。有人知道幕后的实际情况吗?
答案 0 :(得分:1)
在文档中发现不能以与普通(非秘密)变量相同的方式使用它。它说:“相反,我们建议您将机密映射到环境变量中。”和“您需要显式映射秘密变量。”
文档被误解了,并不是说秘密变量不能与普通变量一样使用,而是说,由于某些操作系统会记录命令行参数,因此不建议直接在命令行上传递秘密。如上所述可能会导致信息泄漏,建议将您的机密映射到环境变量中。
此博客说您可以直接在脚本中使用它,这似乎与MS文档矛盾。
如上所述,机密虽然未建议,但可以直接在脚本中使用,因此并不矛盾。
您还可以检查the example in the MSDN doc:
steps:
- powershell: |
# Using an input-macro:
Write-Host "This works: $(mySecret)"
# Using the env var directly:
Write-Host "This does not work: $env:MYSECRET"
# Using the mapped env var:
Write-Host "This works: $env:MY_MAPPED_ENV_VAR" # Recommended
env:
MY_MAPPED_ENV_VAR: $(mySecret)
您将在powershell脚本的第一行中看到,秘密变量直接在命令中使用。
最后,我建议我们应该遵循MSDN文档,将您的机密映射到环境变量中,然后使用它们。