DVC默认行为是否会将连接凭证等数据存储到Git仓库中?
你没有操作错误,只是对DVC的配置分层设计不熟悉才会产生这个顾虑。
DVC的配置默认分为三个层级,不同层级有不同的作用和提交规则:
- 项目级配置:对应文件为
.dvc/config,这就是入门文档推荐提交到Git的配置文件,仅用来存放项目通用的非敏感配置,比如远程存储的类型、公共容器名等无风险信息,本身就不应该存放任何敏感凭证 - 用户全局配置:对应文件为用户目录下的
~/.dvc/config(Windows系统为%USERPROFILE%\.dvc\config),作用于当前用户名下的所有DVC项目,适合存放跨项目通用的敏感凭证信息,不会被提交到任意项目的Git仓库 - 项目本地配置:对应文件为项目下的
.dvc/config.local,DVC默认已经将该文件加入.gitignore规则,绝对不会被提交到Git,专门用来存放单个项目专属的敏感凭证,比如连接字符串、账号密钥等信息
你之前遇到的敏感信息被写入.dvc/config的问题,是因为执行配置修改命令时没有指定配置层级,DVC默认会把配置写入项目级的.dvc/config。只要在执行配置命令时加上--local参数,就能把敏感配置写入不会被提交的本地配置文件,比如你要修改Azure远程的连接字符串,正确的命令为:dvc remote modify --local blah connection_string 你的连接字符串
团队协作场景下的标准用法是:所有通用的非敏感远程配置提交到项目级的.dvc/config同步给所有成员,每个成员各自在本地配置中填写自己的账号凭证即可,不会出现敏感信息泄露的风险。
内容的提问来源于stack exchange,提问作者Vlad Iliescu
相关产品推荐
相关产品推荐

