セキュアファイルの管理
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
CI/CDパイプラインで使用するために最大100個のファイルをセキュアファイルとして安全に保存できます。これらのファイルは、プロジェクトのリポジトリの外部に安全に保存され、バージョン管理は行われません。これらのファイルに機密情報を安全に保存できます。セキュアファイルは、プレーンテキストとバイナリの両方のファイル形式をサポートしていますが、5 MB以下である必要があります。
これらのファイルのストレージの場所は、以下に説明するオプションを使用して構成できますが、デフォルトの場所は次のとおりです:
/var/opt/gitlab/gitlab-rails/shared/ci_secure_filesは、Linuxパッケージを使用するインストールの場合です。- 自己コンパイルによるインストールの場合:
/home/git/gitlab/shared/ci_secure_files。
GitLab Helmチャートインストールでは、外部オブジェクトストレージの設定を使用します。
セキュアファイルを無効にする
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を再起動し、変更を有効にします。
オブジェクトストレージの使用
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
セキュアファイルをディスクに保存する代わりに、サポートされているオブジェクトストレージオプションのいずれかを使用する必要があります。この設定は、有効な認証情報がすでに設定されていることを前提としています。
統合された形式のオブジェクトストレージ
オブジェクトストレージの統合された形式を使用することをお勧めします。
ストレージ固有のオブジェクトストレージ
次の設定があります:
- 自己コンパイルによるインストールでは、設定は
ci_secure_files:の下のobject_store:にネストされます。 - Linuxパッケージインストールでは、プレフィックスとして
ci_secure_files_object_store_が付きます。
| 設定 | 説明 | デフォルト |
|---|---|---|
enabled | オブジェクトストレージを有効または無効にします。 | false |
remote_directory | セキュアファイルが保存されているバケット名 | |
connection | 以下に、さまざまな接続オプションを示します。 |
S3互換設定
プロバイダーごとの使用可能な接続設定を参照してください。
/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' }
AWS IAMプロファイルを使用している場合は、AWSアクセスキーおよびシークレットアクセスキー/キー/バリューペアを省略してください:
gitlab_rails['ci_secure_files_object_store_connection'] = {
'provider' => 'AWS',
'region' => 'eu-central-1',
'use_iam_profile' => true
}ファイルを保存して、GitLabを再設定します:
sudo gitlab-ctl reconfigure
/home/git/gitlab/config/gitlab.ymlを編集し、次の行を追加または修正します:ci_secure_files: enabled: true object_store: enabled: true remote_directory: "ci_secure_files" # The bucket name connection: provider: AWS # Only AWS supported at the moment aws_access_key_id: AWS_ACCESS_KEY_ID aws_secret_access_key: AWS_SECRET_ACCESS_KEY region: eu-central-1ファイルを保存して、GitLabを再起動します:
# For systems running systemd sudo systemctl restart gitlab.target # For systems running SysV init sudo service gitlab restart
オブジェクトストレージへの移行
オブジェクトストレージからローカルストレージにセキュアファイルを移行して戻すことはできません。そのため、注意して進めてください。
オブジェクトストレージにセキュアファイルを移行するには、以下の手順に従ってください。
Linuxパッケージインストールの場合:
sudo gitlab-rake gitlab:ci_secure_files:migrate自己コンパイルによるインストールの場合:
sudo -u git -H bundle exec rake gitlab:ci_secure_files:migrate RAILS_ENV=production