项目级安全文件

  1. Tier: 基础版,专业版,旗舰版
  2. Offering: JihuLab.com, 私有化部署
History
    1. 在极狐GitLab 15.7 中 GA。功能标志 ci_secure_files 被移除。

您可以安全地存储最多 100 个文件,以在 CI/CD 流水线中用作安全文件。这些文件安全地存储在项目的代码库之外,并且不受版本控制。在这些文件中存储敏感信息是安全的。安全文件支持纯文本和二进制文件类型,但必须小于 5 MB。

您可以在项目设置中管理安全文件,或通过 安全文件 API 管理。

向项目添加安全文件#

要向项目添加安全文件:

  1. 在左侧边栏,选择 搜索或转到 并找到您的项目。
  2. 选择 设置 > CI/CD
  3. 展开 安全文件 部分。
  4. 选择 上传文件
  5. 找到要上传的文件,选择 打开,文件上传立即开始。上传完成后,文件将显示在列表中。

在 CI/CD 作业中使用安全文件#

要在 CI/CD 作业中使用您的安全文件,您必须使用 download-secure-files 工具来下载作业中的文件。下载后,您可以在其他脚本命令中使用它们。

在作业的 script 部分添加一个命令以下载 download-secure-files 工具并执行它。文件下载到项目根目录中的 .secure_files 目录中。要更改安全文件的下载位置,请在 SECURE_FILES_DOWNLOAD_PATH CI/CD 变量 中设置路径。

例如:

yaml
test: 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 检索单个文件。可以通过 listshow API 端点检索元数据。文件也可以通过 download-secure-files 工具检索。该工具会在每次下载时自动验证每个文件的校验和。

任何具有至少开发者角色的项目成员都可以访问项目级安全文件。