你可以选择对配置文件进行签名以验证真实性并防止篡改。如果你的存储库是公开的并且你需要防止第三方 Pull Request 对你的配置文件进行未经授权的更改,这将很有用。
如果用户修改配置并且签名验证失败,流水线将被阻止,等待具有存储库写入或管理访问权限的授权用户手动批准。
请注意,只有 Yaml 文件可以被签署和验证。该系统不能签署和验证 Starlark 或 Jsonnet 文件。
强制执行签名
为了执行签名验证,你需要为你的版本库启用保护模式。导航到你的版本库 设置 (Settings) 界面,勾选 保护 (Protected) 复选框。
储存签名
签名是以 signature
资源的形式存储在 Yaml 配置文件中。签名资源为你的配置提供了一个 hmac 签名。
|
|
计算签名
每个 yaml 资源的内容,不包括任何现有的签名资源,都使用 256 位的秘密密钥进行签名。每个资源库的秘钥都是唯一的,并且永远不会离开 Drone Server。
创建签名
签名是使用 Drone 命令行工具创建的。这个 命令 向 Drone Server 发出认证请求,发布你的 yaml 配置文件,计算并返回 hmac 签名。
以下是命令示例:
|
|
请注意,每次修改配置文件时都必须重新生成签名。