项目级安全文件
- 在极狐GitLab 15.7 中 GA,且功能标志
ci_secure_files
被移除。
项目级安全文件是一项实验性功能,仍在开发中。
您可以安全地存储多达 100 个文件,将它们作为安全文件在 CI/CD 流水线中使用。这些文件安全地存储在项目仓库之外,并且不受版本控制。 在这些文件中存储敏感信息是安全的。安全文件支持纯文本和二进制文件类型,但必须为 5 MB 或更小。
您可以在项目设置中或使用 API 管理安全文件。
CI/CD 作业可以使用下载安全文件 工具,下载和使用安全文件。
将安全文件添加到项目
将安全文件添加到项目:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 在左侧边栏中,选择 设置 > CI/CD。
- 在 安全文件 部分,选择 展开。
- 选择 上传文件。
- 找到要上传的文件,选择 打开,文件立即开始上传。上传完成后,文件会显示在列表中。
在 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
download-secure-files
工具家在的文件内容无法在作业日志输出中被隐藏。请确保不要在作业日志中输出安全文件内容,特别是当输出可能包含敏感信息时。安全详情
项目级的安全文件在上传时使用 Lockbox Ruby gem 加密,使用 Ci::SecureFileUploader
接口。在上传时,此接口会生成源文件的 SHA256 校验和,并将其与数据库中的记录一起持久化,以便在下载时使用它来验证文件的内容。
当安全文件被创建并在数据库中持久化时,就会有一个一个唯一的加密密钥生成。加密的上传文件要么存储在本地存储中,要么存储在对象存储中,这取决于极狐GitLab 实例配置。
可以使用安全文件 API下载安全文件。文件的元数据可以通过 list 或 show API 端点检索。安全文件也可以使用 download-secure-files
工具检索。此工具在下载文件时自动验证每个文件的校验和。
任何至少具有项目开发者角色的成员都可以访问项目级安全文件。