确保敏感数据安全
了解如何在配置 CI/CD 流程时正确保护敏感数据
安全是Buddy的重中之重:从我们数据中心的物理安全措施到只读存储仓策略再到敏感数据加密,我们始终致力于确保您的代码在我们的服务中安全可靠。 在本文中,您将了解如何在配置CI/CD流程时正确保护敏感数据。
在操作中定义私有数据
Buddy中的一些流水线操作需要提供敏感数据。例如,SFTP操作需要访问您的服务器凭据,有如登录名或密码。 以下是我们为确保数据信息安全所做的工作:
- 使用“salt”算法独特的“加盐”Salt值加密
- 编辑操作时不显示敏感数据相关信息
- API 和导出功能始终以加密形式返回信息
环境变量加密
环境变量是存储脆弱数据(例如,密码或API密钥)值得推崇的方法,一般不安全的做法就是在脚本中加入敏感信息进行硬编码。
通过以下方式安全保护变量:
- 在保存每个加密变量之前都经过加盐(唯一加盐值)和加密
- 编辑操作时不显示变量值
- 加密环境变量的值在流水线操作的日志中进行哈希处理
YAML数据加密
如果您使用YAML管理配置,您应该通过以下两种方式中的一种进行添加敏感数据:
- 使用环境变量在GUI中定义敏感数据并使用变量取代实际值。
- 使用Buddy加密工具加密值并在YAML文件中提供加密值
在YAML中使用加密变量
在此,我们将通过SFTP操作示例,向您展示如何使用YAML中的加密变量定义密码。
- 转向“项目“选项,选择相应流水线并切换到变量选项卡:
- 新添一个变量并将其标记为“在日志中隐藏值”(加密):
- 定义变量后,您现在可以在YAML文件中直接使用:
用Buddy加密工具加密YAML中变量
我们将使用相同的SFTP操作展示如何使用加密值定义密码
- 转向流水线并在右侧点击下拉菜单按钮,选择为加密值生成YAML:
- 提供输入值并点击加密按钮。它将生成一个哈希值,您可以在YAML中复制并安全地使用该哈希值:
用于加密值的盐(salt算法)对于每个工作区都是唯一的。如果您更改它,您将需要更改YAML中的所有加密值。
仅当您使用导出/导入选项将流水线移动到另一个工作区或从云服务移动到本地化部署版本时,才应更改该值。
配置文件中的敏感数据
配置文件通常包含敏感数据。 根据应用程序版本,它们有所不同,这意味着您需要将它们与应用程序文件一起部署。
模板与查找 & 替换操作
此类配置文件的模板应保存在存储仓中,并带有屏蔽敏感数据的密钥。接下来,您可以在部署之前使用查找 & 替换操作来更新模板中的数据。
您应该将配置模板保存在存储仓中。在模板中提供密钥而不是提供敏感数据。然后在部署之前使用查找 & 替换操作替换模板中的数据。如此文件可以安全地部署到服务器:
将配置作静态文件上传到文件系统
有时您可能不想将配置存储在存储仓中,但仍希望将其与其余源文件一起部署。为此,您可以手动将此类文件作为静态文件上传到文件系统:
清除流水线缓存时,不会清除上传到文件系统的静态文件。