项目级安全文件
- Tier: 基础版,专业版,旗舰版
- Offering: JihuLab.com, 私有化部署
History
- 在极狐GitLab 15.7 中 GA。功能标志 ci_secure_files 被移除。
您可以安全地存储最多 100 个文件,以在 CI/CD 流水线中用作安全文件。这些文件安全地存储在项目的代码库之外,并且不受版本控制。在这些文件中存储敏感信息是安全的。安全文件支持纯文本和二进制文件类型,但必须小于 5 MB。
您可以在项目设置中管理安全文件,或通过 安全文件 API 管理。
向项目添加安全文件
要向项目添加安全文件:
- 在左侧边栏,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 安全文件 部分。
- 选择 上传文件。
- 找到要上传的文件,选择 打开,文件上传立即开始。上传完成后,文件将显示在列表中。
在 CI/CD 作业中使用安全文件
要在 CI/CD 作业中使用您的安全文件,您必须使用 download-secure-files 工具来下载作业中的文件。下载后,您可以在其他脚本命令中使用它们。
在作业的 script 部分添加一个命令以下载 download-secure-files 工具并执行它。文件下载到项目根目录中的 .secure_files 目录中。要更改安全文件的下载位置,请在 SECURE_FILES_DOWNLOAD_PATH CI/CD 变量 中设置路径。
例如:
yamltest: variables: SECURE_FILES_DOWNLOAD_PATH: './where/files/should/go/' script: - curl --silent "https://jihulab.com/gitlab-cn/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash
使用 download-secure-files 工具加载的文件内容不会在作业日志输出中 被掩盖。请确保避免在作业日志中输出安全文件内容,尤其是在记录可能包含敏感信息的输出时。
安全细节
项目级安全文件在上传时使用 Lockbox Ruby gem 通过 Ci::SecureFileUploader 接口加密。此接口在上传过程中生成源文件的 SHA256 校验和,并将其与数据库中的记录一起持久化,以便在下载时验证文件内容。
为每个文件生成一个 唯一的加密密钥,并在数据库中持久化。加密上传的文件根据 极狐GitLab 实例配置 存储在本地存储或对象存储中。
可以通过 安全文件下载 API 检索单个文件。可以通过 list 或 show API 端点检索元数据。文件也可以通过 download-secure-files 工具检索。该工具会在每次下载时自动验证每个文件的校验和。
任何具有至少开发者角色的项目成员都可以访问项目级安全文件。