アプリケーションのシークレット

このPagesはアプリケーションシークレットの開発者ガイドです。

シークレットエントリー

エントリ説明
secret_key_baseさまざまなシークレットを生成する際に使用するベースキー。
otp_key_base ユーザー管理で説明するワンタイムパスワードのベースキー。
db_key_base attr_encrypted カラムのデータを暗号化するための基本キー。
openid_connect_signing_keyOpenID Connectの署名キー
encrypted_settings_key_base設定ファイルを暗号化するためのベースキー
ci_jwt_signing_key CI_JOB_JWTCI_JOB_JWT_V2 定義済み CI/CD 変数を暗号化するためのベースキー。CI_JOB_JWTCI_JOB_JWT_V2GitLab 15.9 で非推奨となり、GitLab 16.5 で削除される予定です。

シークレットの保存場所

インストールの種類設置場所
Linuxパッケージ/etc/gitlab/gitlab-secrets.json
クラウドネイティブGitLabチャートKubernetesのシークレット
セルフコンパイル <path-to-gitlab-rails>/config/secrets.yml (01_secret_token.rbによって自動的に生成されます)

警告アプリケーションのシークレットに新しいシークレットを追加する前に

config/initializers/01_secret_token.rbに新しいシークレットを追加する前に、必ず Omnibus GitLab もアップデートしてください。Omnibusはsecrets.yml 。Omnibusがシークレットについて知らない場合、Railsはファイルへの書き込みを試みますが、Railsには書き込み権限がないため失敗します。同じルールがCloud Native GitLabチャートにも適用されるので、最初にチャートを更新する必要があります。シークレットを各ノードで同じ値にする必要がある場合(通常はそうです)、このファイルを変更する前に、すべてのGitLab.com環境で設定されていることを確認する必要があります。

実験例

さらなる反復

今後、この自動シークレット生成01_secret_token.rb を非推奨または削除する可能性があります。詳しくはイシュー222690をご覧ください。