Azure Devops服务连接如何安全?

问题描述

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

例如TwineAuthenticate Task。它将从服务连接pythonUploadServiceConnection中提取凭据,并将其写入PyPI资源文件。

是吗?

对该文件的检查(编辑

- script: |
    cat $(PYPIRC_PATH)

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

那么twine读取PyPI资源文件时发生了什么魔术?这是安全的还是只是模糊不清?

解决方法

Azure DevOps会根据您对变量性质的了解来掩盖您的秘密。本文是关于github action的,但是您可以对Azure DevOps应用相同的规则。

请在docs

中查看

我们尽力掩盖秘密不会出现在Azure Pipelines输出中,但是您仍然需要采取预防措施。从不回显秘密作为输出。某些操作系统会记录命令行参数。切勿在命令行上传递秘密。相反,我们建议您将机密映射到环境变量中。

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...