项目级安全文件

  • 在极狐GitLab 15.7 中 GA,且功能标志 ci_secure_files 被移除。

项目级安全文件是一项实验性功能,仍在开发中。

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

您可以在项目设置中或使用 API 管理安全文件。

CI/CD 作业可以使用下载安全文件 工具,下载和使用安全文件

将安全文件添加到项目

将安全文件添加到项目:

  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 变量 中设置路径。

test:
  variables:
    SECURE_FILES_DOWNLOAD_PATH: './where/files/should/go/'
  script:
    - curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash
caution 使用 download-secure-files 工具家在的文件内容无法在作业日志输出中被隐藏。请确保不要在作业日志中输出安全文件内容,特别是当输出可能包含敏感信息时。

安全详情

项目级的安全文件在上传时使用 Lockbox Ruby gem 加密,使用 Ci::SecureFileUploader 接口。在上传时,此接口会生成源文件的 SHA256 校验和,并将其与数据库中的记录一起持久化,以便在下载时使用它来验证文件的内容。

当安全文件被创建并在数据库中持久化时,就会有一个一个唯一的加密密钥生成。加密的上传文件要么存储在本地存储中,要么存储在对象存储中,这取决于极狐GitLab 实例配置

可以使用安全文件 API下载安全文件。文件的元数据可以通过 listshow API 端点检索。安全文件也可以使用 download-secure-files 工具检索。此工具在下载文件时自动验证每个文件的校验和。

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