セキュアファイル管理

  • GitLab 14.8 でci_secure_files というフラグで導入されました。デフォルトでは無効になっています。
  • GitLab 15.7で一般的に利用可能に。機能フラグci_secure_files を削除しました。

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 パッケージインストールの場合

  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 を再起動すると、変更が有効になります。

オブジェクトストレージを使う

Secure Files をディスクに保存する代わりに、サポートされているオブジェクトストレージオプションの 1 つを使用する必要があります。この設定は、有効な資格情報がすでに構成されていることに依存します。

GitLab でのオブジェクトストレージの使用について、詳しくはこちらをご覧ください。

note
この機能はオブジェクトストレージの統合設定ではサポートされていません。サポートの追加はイシュー414673で提案されています。

オブジェクトストレージ設定

以下の設定があります:

  • ci_secure_files: の下にネストされ、セルフコンパイル・インストールではobject_store: の下にネストされます。
  • Linux パッケージインストールでは、ci_secure_files_object_store_ がプレフィックスとなります。
設定説明デフォルト
enabledオブジェクトストレージの有効化/無効化false
remote_directoryセキュリティファイルが保存されるバケット名 
connection以下に説明するさまざまな接続オプション 

S3互換接続設定

各プロバイダーで利用可能な接続設定を参照してください。

Linuxパッケージインストールの場合:

  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を再設定してください。
  3. 既存のローカル状態をオブジェクトストレージにマイグレーションします。

セルフコンパイルインストールの場合

  1. /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
    
  2. ファイルを保存してGitLab を再起動すると、変更が有効になります。
  3. 既存のローカル状態をオブジェクトストレージにマイグレーションします。

オブジェクトストレージへのマイグレーション

GitLab 16.1 で導入されました

caution
Secure Filesをオブジェクトストレージからローカルストレージにマイグレーションすることはできません。

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