セキュアファイル管理
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 インスタンス全体で Secure Files を無効にすることができます。Secure Files を無効にしてディスク容量を減らしたり、この機能へのアクセスを制限したりすることができます。
Secure Files を無効にするには、インストールに応じて以下の手順に従ってください。
前提条件
- 管理者である必要があります。
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 を再起動すると、変更が有効になります。
オブジェクトストレージを使う
Secure Files をディスクに保存する代わりに、サポートされているオブジェクトストレージオプションの 1 つを使用する必要があります。この設定は、有効な資格情報がすでに構成されていることに依存します。
GitLab でのオブジェクトストレージの使用について、詳しくはこちらをご覧ください。
オブジェクトストレージ設定
以下の設定があります:
-
ci_secure_files:
の下にネストされ、セルフコンパイル・インストールではobject_store:
の下にネストされます。 - Linux パッケージインストールでは、
ci_secure_files_object_store_
がプレフィックスとなります。
設定 | 説明 | デフォルト |
---|---|---|
enabled | オブジェクトストレージの有効化/無効化 | false |
remote_directory | セキュリティファイルが保存されるバケット名 | |
connection | 以下に説明するさまざまな接続オプション |
S3互換接続設定
各プロバイダーで利用可能な接続設定を参照してください。
Linuxパッケージインストールの場合:
-
/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を再設定してください。
- 既存のローカル状態をオブジェクトストレージにマイグレーションします。
セルフコンパイルインストールの場合
-
/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 を再起動すると、変更が有効になります。
- 既存のローカル状態をオブジェクトストレージにマイグレーションします。
オブジェクトストレージへのマイグレーション
GitLab 16.1 で導入されました。
Secure Files をオブジェクトストレージにマイグレーションするには、以下の手順に従ってください。
-
Linuxパッケージ・インストールの場合:
sudo gitlab-rake gitlab:ci_secure_files:migrate
-
セルフコンパイルによるインストールの場合:
sudo -u git -H bundle exec rake gitlab:ci_secure_files:migrate RAILS_ENV=production