正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

セキュアファイルの管理

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

  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を再起動し、変更を有効にします。

オブジェクトストレージの使用

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

セキュアファイルをディスクに保存する代わりに、サポートされているオブジェクトストレージオプションのいずれかを使用する必要があります。この設定は、有効な認証情報がすでに設定されていることを前提としています。

統合された形式のオブジェクトストレージ

オブジェクトストレージの統合された形式を使用することをお勧めします。

ストレージ固有のオブジェクトストレージ

次の設定があります:

  • 自己コンパイルによるインストールでは、設定はci_secure_files:の下のobject_store:にネストされます。
  • Linuxパッケージインストールでは、プレフィックスとしてci_secure_files_object_store_が付きます。
設定説明デフォルト
enabledオブジェクトストレージを有効または無効にします。false
remote_directoryセキュアファイルが保存されているバケット名
connection以下に、さまざまな接続オプションを示します。

S3互換設定

プロバイダーごとの使用可能な接続設定を参照してください。

  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'
    }

AWS IAMプロファイルを使用している場合は、AWSアクセスキーおよびシークレットアクセスキー/キー/バリューペアを省略してください:

gitlab_rails['ci_secure_files_object_store_connection'] = {
  'provider' => 'AWS',
  'region' => 'eu-central-1',
  'use_iam_profile' => true
}
  1. ファイルを保存して、GitLabを再設定します:

    sudo gitlab-ctl reconfigure
  2. オブジェクトストレージに既存のローカル状態を移行する

  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を再起動します:

    # For systems running systemd
    sudo systemctl restart gitlab.target
    
    # For systems running SysV init
    sudo service gitlab restart
  3. オブジェクトストレージに既存のローカル状態を移行する

オブジェクトストレージへの移行

オブジェクトストレージからローカルストレージにセキュアファイルを移行して戻すことはできません。そのため、注意して進めてください。

オブジェクトストレージにセキュアファイルを移行するには、以下の手順に従ってください。

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

    sudo gitlab-rake gitlab:ci_secure_files:migrate
  • 自己コンパイルによるインストールの場合:

    sudo -u git -H bundle exec rake gitlab:ci_secure_files:migrate RAILS_ENV=production