{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
{{< /details >}}
{{< history >}}
- 在极狐GitLab 15.7 中 GA,功能标志
ci_secure_files
被移除。
{{< /history >}}
你可以安全地存储最多 100 个文件,用于 CI/CD 流水线作为安全文件。这些文件安全地存储在项目的仓库之外,并且没有版本控制。可以安全地在这些文件中存储敏感信息。安全文件支持纯文本和二进制文件类型,且必须小于 5 MB。
这些文件的存储位置可以使用下面描述的选项进行配置,但默认位置是:
- 使用 Linux 软件包安装时为
/var/opt/gitlab/gitlab-rails/shared/ci_secure_files
。 - 私有化部署安装时为
/home/git/gitlab/shared/ci_secure_files
。
使用 外部对象存储 配置用于 极狐GitLab Helm chart 安装。
禁用安全文件
你可以在整个极狐GitLab 实例中禁用安全文件。你可能想要禁用安全文件以减少磁盘空间,或移除对该功能的访问。
要禁用安全文件,请根据你的安装方式按照以下步骤操作。
前提条件:
- 你必须是管理员。
对于 Linux 软件包安装
-
编辑
/etc/gitlab/gitlab.rb
并添加以下行:gitlab_rails['ci_secure_files_enabled'] = false
-
保存文件并 重新配置极狐GitLab。
对于私有化部署安装
-
编辑
/home/git/gitlab/config/gitlab.yml
并添加或修改以下行:ci_secure_files: enabled: false
-
保存文件并 重启极狐GitLab 以使更改生效。
使用本地存储
默认配置使用本地存储。要更改安全文件的本地存储位置,请按照以下步骤操作。
对于 Linux 软件包安装
-
要更改存储路径,例如
/mnt/storage/ci_secure_files
,编辑/etc/gitlab/gitlab.rb
并添加以下行:gitlab_rails['ci_secure_files_storage_path'] = "/mnt/storage/ci_secure_files"
-
保存文件并 重新配置极狐GitLab。
对于私有化部署安装
-
要更改存储路径,例如
/mnt/storage/ci_secure_files
,编辑/home/git/gitlab/config/gitlab.yml
并添加或修改以下行:ci_secure_files: enabled: true storage_path: /mnt/storage/ci_secure_files
-
保存文件并 重启极狐GitLab 以使更改生效。
使用对象存储
{{< details >}}
- Tier: Free, Premium, Ultimate
- Offering: 极狐GitLab 私有化部署
{{< /details >}}
与其在磁盘上存储安全文件,您应该使用 支持的对象存储选项之一。此配置依赖于已配置的有效凭证。
集中对象存储
{{< history >}}
- 对集中对象存储的支持在极狐GitLab 17.0 中引入。
{{< /history >}}
推荐使用对象存储的 集中形式。
特定存储对象存储
以下设置是:
- 在私有化部署安装中嵌套在
ci_secure_files:
和object_store:
下。 - 在 Linux 软件包安装中以
ci_secure_files_object_store_
为前缀。
设置 | 描述 | 默认值 |
---|---|---|
enabled |
启用/禁用对象存储 | false |
remote_directory |
存储安全文件的桶名称 | |
connection |
以下描述的各种连接选项 |
S3 兼容连接设置
请参阅 不同提供商的可用连接设置。
{{< tabs >}}
{{< tab title=”Linux 软件包 (Omnibus)” >}}
-
编辑
/etc/gitlab/gitlab.rb
并添加以下行,但使用您想要的值:gitlab_rails['ci_secure_files_object_store_enabled'] = true gitlab_rails['ci_secure_files_object_store_remote_directory'] = "ci_secure_files" gitlab_rails['ci_secure_files_object_store_connection'] = { 'provider' => 'AWS', 'region' => 'eu-central-1', 'aws_access_key_id' => 'AWS_ACCESS_KEY_ID', 'aws_secret_access_key' => 'AWS_SECRET_ACCESS_KEY' }
{{< alert type=”note” >}}
如果您使用 AWS IAM 配置文件,请确保省略 AWS 访问密钥和秘密访问密钥/值对:
{{< /alert >}}
gitlab_rails['ci_secure_files_object_store_connection'] = {
'provider' => 'AWS',
'region' => 'eu-central-1',
'use_iam_profile' => true
}
-
保存文件并重新配置极狐GitLab:
sudo gitlab-ctl reconfigure
{{< /tab >}}
{{< tab title=”私有化部署 (source)” >}}
-
编辑
/home/git/gitlab/config/gitlab.yml
并添加或修改以下行:ci_secure_files: enabled: true object_store: enabled: true remote_directory: "ci_secure_files" # 桶名称 connection: provider: AWS # 目前仅支持 AWS aws_access_key_id: AWS_ACCESS_KEY_ID aws_secret_access_key: AWS_SECRET_ACCESS_KEY region: eu-central-1
-
保存文件并重启极狐GitLab:
# 对于运行 systemd 的系统 sudo systemctl restart gitlab.target # 对于运行 SysV init 的系统 sudo service gitlab restart
{{< /tab >}}
{{< /tabs >}}
迁移到对象存储
{{< history >}}
- 在极狐GitLab 16.1 中引入。
{{< /history >}}
{{< alert type=”warning” >}}
无法将安全文件从对象存储迁移回本地存储,因此请谨慎操作。
{{< /alert >}}
要将安全文件迁移到对象存储,请按照以下说明进行操作。
-
对于 Linux 软件包安装:
sudo gitlab-rake gitlab:ci_secure_files:migrate
-
对于私有化部署安装:
sudo -u git -H bundle exec rake gitlab:ci_secure_files:migrate RAILS_ENV=production