ユーザー管理

GitLabはユーザー管理にRakeタスクを提供しています。

すべてのプロジェクトに開発者としてユーザーを追加

ユーザーをすべてのプロジェクトに開発者として追加するには、以下を実行します:

# omnibus-gitlab
sudo gitlab-rake gitlab:import:user_to_projects[username@domain.tld]

# installation from source
bundle exec rake gitlab:import:user_to_projects[username@domain.tld] RAILS_ENV=production

すべてのユーザーをすべてのプロジェクトに追加

すべてのユーザーをすべてのプロジェクトに追加するには、以下を実行します:

# omnibus-gitlab
sudo gitlab-rake gitlab:import:all_users_to_all_projects

# installation from source
bundle exec rake gitlab:import:all_users_to_all_projects RAILS_ENV=production
注意:管理者ユーザーはメンテナーとして追加されます。

すべてのグループに開発者としてユーザーを追加

ユーザーをすべてのグループに開発者として追加するには、以下を実行します:

# omnibus-gitlab
sudo gitlab-rake gitlab:import:user_to_groups[username@domain.tld]

# installation from source
bundle exec rake gitlab:import:user_to_groups[username@domain.tld] RAILS_ENV=production

すべてのユーザーをすべてのグループに追加

すべてのユーザーをすべてのグループに追加するには、以下を実行します:

# omnibus-gitlab
sudo gitlab-rake gitlab:import:all_users_to_all_groups

# installation from source
bundle exec rake gitlab:import:all_users_to_all_groups RAILS_ENV=production
注:管理者ユーザーはオーナーとして追加されるため、グループにユーザーを追加することができます。

アクティブユーザー数のコントロール

この設定を有効にすると、管理者がクリアするまで新規ユーザーをブロックし続けます。デフォルトはfalseです:

block_auto_created_users: false

すべてのユーザーに対して二要素認証を無効にします。

このタスクは、二要素認証(2FA)を有効にしているすべてのユーザーに対して二要素認証(2FA)を無効にします。 これは、GitLabのconfig/secrets.yml ファイルが紛失してユーザーがログインできない場合などに便利です。

すべてのユーザーに対して2要素認証を無効にするには、以下を実行します:

# omnibus-gitlab
sudo gitlab-rake gitlab:two_factor:disable_for_all_users

# installation from source
bundle exec rake gitlab:two_factor:disable_for_all_users RAILS_ENV=production

二要素認証暗号化キーのローテーション

GitLab は二要素認証 (2FA) に必要なシークレットデータを暗号化されたデータベースのカラムに保存します。このデータの暗号化キーはotp_key_baseと呼ばれ、config/secrets.ymlに保存されます。

このファイルが流出しても、個々の2FAのシークレットが流出していなければ、それらのシークレットを新しい暗号化キーで再暗号化することが可能です。 これにより、全ユーザに2FAの詳細を変更させることなく、流出したキーを変更することができます。

二要素認証の暗号化キーをローテーションします:

  1. config/secrets.ymlプロダクション・セクションで作業していることを確認してください:

    production:
      otp_key_base: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    
  2. 新しいシークレットを作成します:

    # omnibus-gitlab
    sudo gitlab-rake secret
    
    # installation from source
    bundle exec rake secret RAILS_ENV=production
    
  3. GitLabサーバーを停止し、既存のシークレットファイルをバックアップし、データベースを更新します:

    # omnibus-gitlab
    sudo gitlab-ctl stop
    sudo cp config/secrets.yml config/secrets.yml.bak
    sudo gitlab-rake gitlab:two_factor:rotate_key:apply filename=backup.csv old_key=<old key> new_key=<new key>
    
    # installation from source
    sudo /etc/init.d/gitlab stop
    cp config/secrets.yml config/secrets.yml.bak
    bundle exec rake gitlab:two_factor:rotate_key:apply filename=backup.csv old_key=<old key> new_key=<new key> RAILS_ENV=production
    

    <old key> の値はconfig/secrets.yml から読み込むことができます(<new key> は以前に生成されたものです)。 ユーザ 2FA シークレットの暗号化された値は、指定されたfilenameに書き込まれます。 エラーが発生した場合のロールバックに使用できます。

  4. config/secrets.yml を変更して、otp_key_base<new key> に設定し、再起動します。繰り返しますが、本番セクションでオペレーションしていることを確認してください。

    # omnibus-gitlab
    sudo gitlab-ctl start
    
    # installation from source
    sudo /etc/init.d/gitlab start
    

何か問題があれば(おそらくold_keyに間違った値を使用している)、config/secrets.yml のバックアップを復元し、変更をロールバックすることができます:

# omnibus-gitlab
sudo gitlab-ctl stop
sudo gitlab-rake gitlab:two_factor:rotate_key:rollback filename=backup.csv
sudo cp config/secrets.yml.bak config/secrets.yml
sudo gitlab-ctl start

# installation from source
sudo /etc/init.d/gitlab start
bundle exec rake gitlab:two_factor:rotate_key:rollback filename=backup.csv RAILS_ENV=production
cp config/secrets.yml.bak config/secrets.yml
sudo /etc/init.d/gitlab start