Azure devops Azure Devops服务连接如何安全?

Azure devops Azure Devops服务连接如何安全?,azure-devops,twine,azure-pipelines-tasks,Azure Devops,Twine,Azure Pipelines Tasks,目前,我审核Azure Devops服务连接的安全性:服务连接中存储的凭据的安全性如何 案例中的示例是TwineAuthenticate任务。它将从服务连接pythonUploadServiceConnection中提取凭据,并将其写入PyPI资源文件 还是这样 检查此文件(编辑) 显示用户和密码的值为***,这些值不是服务连接提供的凭据 那么,当twine读取PyPI资源文件时,会发生什么神奇的事情呢?这是安全的还是模糊的?Azure DevOps会根据变量的性质屏蔽您的秘密。这篇文章是关于但

目前,我审核Azure Devops服务连接的安全性:服务连接中存储的凭据的安全性如何

案例中的示例是TwineAuthenticate任务。它将从服务连接
pythonUploadServiceConnection
中提取凭据,并将其写入PyPI资源文件

还是这样

检查此文件(编辑

显示用户和密码的值为
***
,这些值不是服务连接提供的凭据


那么,当
twine
读取PyPI资源文件时,会发生什么神奇的事情呢?这是安全的还是模糊的?

Azure DevOps会根据变量的性质屏蔽您的秘密。这篇文章是关于但是你可以为Azure DevOps应用相同的规则

请在这里看一看

我们努力屏蔽Azure管道输出中出现的秘密,但您仍然需要采取预防措施。永远不要将秘密作为输出。某些操作系统记录命令行参数。永远不要在命令行上传递秘密。相反,我们建议您将秘密映射到环境变量中

我们从不掩饰秘密的子串。例如,如果将“abc123”设置为机密,“abc”不会从日志中屏蔽。这是为了避免在过于细粒度的级别屏蔽机密,使日志无法读取。因此,机密不应包含结构化数据。例如,如果将“{foo”:“bar”}”设置为机密,则不会从日志中屏蔽“bar”


你的回答涵盖了机会主义(意外)威胁。我问的是故意盗窃,即rogue命令已进入您的工作流线程。与查看生成的
.pypirc
文件和窃取仅服务连接管理员知道的凭据类似。您能否澄清您所说的
检查此文件的意思?
cat$(pypirc_路径)
,请参阅编辑。或者你是在告诉我,只有这个转储被屏蔽了,文件中确实包含了凭据?我认为是的。例如,如果您尝试将此文件作为管道工件发布,您应该会看到您的全部秘密。当您将此打印到控制台时,Azure DevOps会查找您的秘密并使用
***
将其屏蔽。您是对的!因此,凭据对管道运行时可见,并可能随后泄漏。
- script: |
    cat $(PYPIRC_PATH)