极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:
安全文件管理 (BASIC SELF)
- 在极狐GitLab 15.6 中 GA,功能标志 ci_secure_files 被移除。
您可以将最多 100 个文件安全地存储为安全文件,以便在 CI/CD 流水线 中使用。 这些文件安全地存储在您的项目库之外,并且不进行版本控制。在这些文件中存储敏感信息是安全的。安全文件支持纯文本和二进制文件类型,必须为 5 MB 或更小。
这些文件的存储位置可以使用下面描述的选项进行配置,但默认位置是:
/var/opt/gitlab/gitlab-rails/shared/ci_secure_files 用于使用 Linux 软件包的安装。
/home/git/gitlab/shared/ci_secure_files 用于自编译安装。
使用 外部对象存储 配置用于 极狐GitLab Helm chart 安装。
禁用安全文件
您可以禁用整个极狐GitLab 实例中的安全文件。您可能希望禁用安全文件以减少磁盘空间,或者删除对该功能的访问。
要禁用安全文件,请根据您的安装方式按照以下步骤操作。
先决条件:
- 您必须是管理员。
对于 Linux 软件包安装
1.编辑 /etc/gitlab/gitlab.rb 并添加以下行:
gitlab_rails['ci_secure_files_enabled'] = false
2.保存文件并 重新配置极狐GitLab。
对于自编译安装
1.编辑 /home/git/gitlab/config/gitlab.yml 并添加或修改以下行:
ci_secure_files:
enabled: false
2.保存文件并 重启极狐GitLab 以使更改生效。
使用本地存储
默认配置使用本地存储。要更改安全文件的本地存储位置,请按照以下步骤操作。
对于 Linux 软件包安装
1.要更改存储路径,例如为 /mnt/storage/ci_secure_files,编辑
/etc/gitlab/gitlab.rb 并添加以下行:
gitlab_rails[‘ci_secure_files_storage_path’] = “/mnt/storage/ci_secure_files”
2.保存文件并 重新配置极狐GitLab。
对于自编译安装
1.要更改存储路径,例如为 /mnt/storage/ci_secure_files,编辑
/home/git/gitlab/config/gitlab.yml 并添加或修改以下行:
ci_secure_files:
enabled: true
storage_path: /mnt/storage/ci_secure_files
2。保存文件并 重启极狐GitLab 以使更改生效。
使用对象存储 (BASIC SELF)
您应该使用 支持的对象存储选项之一,而不是在磁盘上存储安全文件。此配置依赖于已经配置的有效凭据。
- 综合对象存储
支持综合对象存储是在极狐GitLab 17.0 中引入。
推荐使用 综合形式 的对象存储。
特定存储对象存储
以下设置是:
- 在自编译安装中嵌套在 ci_secure_files: 和 object_store: 下。
- 在 Linux 软件包安装中以 ci_secure_files_object_store_ 为前缀。
Setting | Description | Default |
---|---|---|
enabled | 启用/禁用对象存储 | false |
remote_directory | 存储安全文件的桶名称 | |
connection | 下文描述的各种连接选项 |
S3 兼容连接设置
请参阅 不同提供商的可用连接设置。
::Tabs
:::TabTitle Linux 软件包 (Omnibus)
1.编辑 /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'
}
NOTE:
如果您使用 AWS IAM 配置文件,请确保省略 AWS 访问密钥和值对:
gitlab_rails['ci_secure_files_object_store_connection'] = {
'provider' => 'AWS',
'region' => 'eu-central-1',
'use_iam_profile' => true
}
2.保存文件并重新配置极狐GitLab:
sudo gitlab-ctl reconfigure
3.迁移任何现有的本地状态到对象存储。
:::TabTitle 自编译 (source)
1.编辑 /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
2.保存文件并重启极狐GitLab:
# 对于运行 systemd 的系统
sudo systemctl restart gitlab.target
# 对于运行 SysV init 的系统
sudo service gitlab restart
3.迁移任何现有的本地状态到对象存储。
::EndTabs
迁移到对象存储
- 引入于极狐GitLab 16.1。
WARNING:
不能将安全文件从对象存储迁移回本地存储,因此请谨慎操作。
要将安全文件迁移到对象存储,请按照以下说明操作。
- 对于 Linux 软件包安装:
sudo gitlab-rake gitlab:ci_secure_files:migrate
- 对于自编译安装:
sudo -u git -H bundle exec rake gitlab:ci_secure_files:migrate RAILS_ENV=production