当前,我审核Azure Devops服务连接的安全性:服务连接中存储的凭据的安全性如何?
例如TwineAuthenticate Task。它将从服务连接pythonUploadServiceConnection
中提取凭据,并将其写入PyPI资源文件。
是吗?
对该文件的检查(编辑)
- script: |
cat $(PYPIRC_PATH)
显示用户名和密码的值为***
,不是服务连接提供的凭据。
那么twine
读取PyPI资源文件时发生了什么魔术?这是安全的还是只是模糊不清?
答案 0 :(得分:2)
Azure DevOps会根据您对变量性质的了解来掩盖您的秘密。本文是关于github action的,但是您可以对Azure DevOps应用相同的规则。
请在docs
中查看我们尽力掩盖秘密不会出现在Azure Pipelines输出中,但是您仍然需要采取预防措施。从不回显秘密作为输出。某些操作系统会记录命令行参数。切勿在命令行上传递秘密。相反,我们建议您将机密映射到环境变量中。
我们从不掩盖秘密的子串。例如,如果将“ abc123”设置为机密,则不会从日志中屏蔽“ abc”。这是为了避免在机密级别上掩盖机密,从而使日志不可读。因此,机密不应该包含结构化数据。例如,如果将“ {{foo”:“ bar”}”设置为机密,则不会从日志中屏蔽“ bar”。