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

ユーザー管理Rakeタスク

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

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

管理者はオーナーとして追加されるため、追加のユーザーをグループに追加できます。

指定されたグループのすべてのユーザーをproject_limit:0およびcan_create_group: falseに更新

指定されたグループのすべてのユーザーをproject_limit: 0およびcan_create_group: falseに更新するには、以下を実行します:

# omnibus-gitlab
sudo gitlab-rake gitlab:user_management:disable_project_and_group_creation\[:group_id\]

# installation from source
bundle exec rake gitlab:user_management:disable_project_and_group_creation\[:group_id\] RAILS_ENV=production

指定されたグループ内のすべてのユーザー、そのサブグループ、およびこのグループネームスペース内のプロジェクトを、指定された制限で更新します。

請求対象ユーザーの数を制御

この設定を有効にすると、新規ユーザーは管理者によって承認されるまでブロックされます。デフォルトはfalseです:

block_auto_created_users: false

すべてのユーザーの2要素認証を無効にする

このタスクは、2要素認証 (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

2要素認証の暗号化キーをローテーションする

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

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

2要素認証の暗号化キーをローテーションするには:

  1. config/secrets.ymlファイルで古いキーを検索しますが、make sure you’re working with the production section。対象の行は次のようになります:

    production:
      otp_key_base: fffffffffffffffffffffffffffffffffffffffffffffff
  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のシークレットのencrypted値は、指定されたfilenameに書き込まれます。エラーが発生した場合に、これを使用してロールバックできます。

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

    # 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

GitLab Duoにユーザーを一括割り当て

ユーザーのユーザー名が記載されたCSVファイルを使用して、GitLab Duoにユーザーを一括割り当てできます。CSVファイルには、usernameというヘッダーがあり、その後に各行にユーザー名が続く必要があります。

username
user1
user2
user3
user4

GitLab Duo Pro

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

GitLab Duo Proの一括ユーザー割り当てを実行するには、以下のRakeタスクを使用します:

bundle exec rake duo_pro:bulk_user_assignment DUO_PRO_BULK_USER_FILE_PATH=path/to/your/file.csv

ファイルのパスで角括弧を使用したい場合は、それらをエスケープするか、二重引用符を使用できます:

bundle exec rake duo_pro:bulk_user_assignment\['path/to/your/file.csv'\]
# or
bundle exec rake "duo_pro:bulk_user_assignment[path/to/your/file.csv]"

GitLab Duo ProおよびEnterprise

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

GitLab Self-Managed

このRakeタスクは、利用可能な購入済みアドオンに基づいて、GitLab Duo ProまたはEnterpriseのシートをインスタンスレベルでCSVファイルからユーザーリストに一括割り当てします。

GitLab Self-Managedインスタンスの一括ユーザー割り当てを実行するには:

bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment DUO_BULK_USER_FILE_PATH=path/to/your/file.csv

ファイルのパスで角括弧を使用したい場合は、それらをエスケープするか、二重引用符を使用できます:

bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment\['path/to/your/file.csv'\]
# or
bundle exec rake "gitlab_subscriptions:duo:bulk_user_assignment[path/to/your/file.csv]"

GitLab.com

GitLab.comの管理者も、このRakeタスクを使用して、当該グループで利用可能な購入済みアドオンに基づいて、GitLab.comグループにGitLab Duo ProまたはEnterpriseのシートを一括割り当てできます。

GitLab.comグループの一括ユーザー割り当てを実行するには:

bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment DUO_BULK_USER_FILE_PATH=path/to/your/file.csv NAMESPACE_ID=<namespace_id>

ファイルのパスで角括弧を使用したい場合は、それらをエスケープするか、二重引用符を使用できます:

bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment\['path/to/your/file.csv','<namespace_id>'\]
# or
bundle exec rake "gitlab_subscriptions:duo:bulk_user_assignment[path/to/your/file.csv,<namespace_id>]"

トラブルシューティング

一括ユーザー割り当て中のエラー

Rakeタスクを使用して一括ユーザー割り当てを行う際、以下のエラーが発生する可能性があります:

  • User is not found: 指定されたユーザーが見つかりませんでした。提供されたユーザー名が既存のユーザーと一致していることを確認してください。
  • ERROR_NO_SEATS_AVAILABLE: ユーザー割り当てに利用できるシートがありません。現在のシートの割り当てを確認するには、割り当て済みのGitLab Duoユーザーを表示する方法を参照してください。
  • ERROR_INVALID_USER_MEMBERSHIP: ユーザーは非アクティブであるか、ボットであるか、またはゴーストであるため、割り当ての対象ではありません。ユーザーがアクティブであり、GitLab.comにいる場合は、提供されたネームスペースのメンバーであることを確認してください。