- UIを使用してグループアクセストークンを作成します。
- Railsコンソールを使ったグループアクセストークンの作成
- UIを使用してグループアクセストークンを失効させます。
- Railsコンソールを使ってグループアクセストークンを失効させます。
- グループアクセストークンのスコープ
- グループアクセストークン作成の有効化または無効化
- グループ用ボットユーザー
- トークンの利用可能性
グループアクセストークン
グループアクセストークンを使用すると、1つのトークンで以下のことが可能です:
- グループに対するアクションの実行。
- グループ内のプロジェクトを管理します。
認証にはグループアクセストークンを使用できます:
- GitLab APIを使用します。
-
GitLab 14.2以降では、Git over HTTPSで認証します。使用します:
- 空白でない任意の値をユーザー名として使用します。
- パスワードはグループアクセストークン。
グループアクセストークンは、プロジェクトアクセストークンや 個人アクセストークンと似ていますが、プロジェクトやユーザーではなくグループに関連付けられている点が異なります。
自己管理インスタンスでは、グループアクセストークンに個人アクセストークンと同じ最大有効期限が設定されている場合、その制限が適用されます。
グループアクセストークンを使用することができます:
- GitLab SaaSの場合:Premium または Ultimate ライセンスの場合。トライアルライセンスではグループアクセストークンは使用できません。
- セルフマネージドインスタンスの場合:どのライセンス階層でも。Freeティアの場合:
- ユーザーの自己登録に関するセキュリティおよびコンプライアンスポリシーをレビューしてください。
- グループアクセストークンの無効化を検討し、悪用の可能性を低減します。
グループアクセストークンを使用して、他のグループ、プロジェクト、または個人のアクセストークンを作成することはできません。
グループアクセストークンは、個人アクセストークンに設定されたデフォルトのプレフィックス設定を継承します。
UIを使用してグループアクセストークンを作成します。
グループアクセストークンを作成するには、以下の手順に従います:
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 設定] > [アクセストークン]を選択します。
- 名前を入力します。トークン名は、グループを表示する権限を持つすべてのユーザーに表示されます。
- トークンの有効期限を入力します:
- トークンの有効期限はその日の午前0時(UTC)です。
- 有効期限を入力しない場合、有効期限は自動的に現在の日付より365日後に設定されます。
- デフォルトでは、この日付は現在の日付より最大 365 日遅くなります。
- インスタンス全体の最大有効期間の設定により、自己管理インスタンスで許容される最大有効期間を制限できます。
- トークンのロールを選択します。
- 必要なスコープを選択します。
- グループアクセストークンの作成」を選択します。
グループアクセストークンが表示されます。グループアクセストークンは安全な場所に保存してください。ページを離れたり更新したりすると、二度と表示できなくなります。
Railsコンソールを使ったグループアクセストークンの作成
GitLab 14.6以前では、UIやAPIを使ったグループアクセストークンの作成はサポートされていません。しかし、管理者は回避策を使うことができます:
-
Railsコンソールで以下のコマンドを実行してください:
# Set the GitLab administration user to use. If user ID 1 is not available or is not an administrator, use 'admin = User.admins.first' instead to select an administrator. admin = User.find(1) # Set the group group you want to create a token for. For example, group with ID 109. group = Group.find(109) # Create the group bot user. For further group access tokens, the username should be `group_{group_id}_bot_{random_string}` and email address `group_{group_id}_bot_{random_string}@noreply.{Gitlab.config.gitlab.host}`. random_string = SecureRandom.hex(16) bot = Users::CreateService.new(admin, { name: 'group_token', username: "group_#{group.id}_bot_#{random_string}", email: "group_#{group.id}_bot_#{random_string}@noreply.#{Gitlab.config.gitlab.host}", user_type: :project_bot }).execute # Confirm the group bot. bot.confirm # Add the bot to the group with the required role. group.add_member(bot, :maintainer) # Give the bot a personal access token. token = bot.personal_access_tokens.create(scopes:[:api, :write_repository], name: 'group_token') # Get the token value. gtoken = token.token
-
生成されたグループアクセストークンが機能するかテストします:
-
GitLab REST API で
PRIVATE-TOKEN
ヘッダーのグループアクセストークンを使用してください。例えば- グループにエピックを作成します。
- グループのプロジェクトの1つにプロジェクトパイプラインを作成します。
- グループのプロジェクトの1つにイシューを作成します。
-
グループトークンを使用して、グループのプロジェクトをHTTPS でクローンします。
-
UIを使用してグループアクセストークンを失効させます。
GitLab 14.7 で導入されました。
グループのアクセストークンを失効させるには
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 設定] > [アクセストークン]を選択します。
- 取り消すグループアクセストークンの横にある「取り消す」を選択します。
Railsコンソールを使ってグループアクセストークンを失効させます。
GitLab 14.6以前では、UIやAPIを使ったグループアクセストークンの失効に対応していません。しかし、管理者は回避策を使うことができます。
グループアクセストークンを失効させるには、Railsコンソールで以下のコマンドを実行します:
bot = User.find_by(username: 'group_109_bot') # the owner of the token you want to revoke
token = bot.personal_access_tokens.last # the token you want to revoke
token.revoke!
グループアクセストークンのスコープ
スコープは、グループアクセストークンで認証したときに実行できるアクションを決定します。
スコープ | 説明 |
---|---|
api | スコープ付きグループおよび関連プロジェクトAPI (パッケージレジストリを含む) への完全な読み書きを許可します。 |
read_api | パッケージレジストリを含む、スコープ付きグループと関連プロジェクトAPIへの読み込みアクセスを許可します。 |
read_registry | グループ内のプロジェクトが非公開で作成者の認証が必要な場合、コンテナレジストリ画像への読み取りアクセス (pull) を許可します。 |
write_registry | コンテナレジストリへの書き込みアクセス (push) を許可します。 |
read_repository | グループ内のすべてのリポジトリに読み取りアクセス (pull) を許可します。 |
write_repository | グループ内のすべてのリポジトリに読み取りと書き込みのアクセス権(pullとpush)を付与します。 |
create_runner | グループ内にランナーを作成する権限を付与します。 |
グループアクセストークン作成の有効化または無効化
トップレベルグループ内のすべてのサブグループに対してグループアクセストークンの作成を有効または無効にするには、以下の手順に従います:
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 設定] > [全般]を選択します。
- 権限とグループ機能] を展開します。
- 権限] で、[ユーザーはこのグループでプロジェクト アクセストークンとグループ アクセストークンを作成できる] をオンまたはオフにします。
作成が無効になっている場合でも、既存のグループアクセストークンを使用したり、取り消したりすることができます。
グループ用ボットユーザー
グループのボットユーザーはGitLabが作成したサービスアカウントです。グループアクセストークンを作成するたびにボットユーザーが作成され、グループに追加されます。これらのボットユーザーはプロジェクト用のボットユーザーと似ていますが、プロジェクトではなくグループに追加される点が異なります。グループのボットユーザー:
- 課金対象ユーザーではないため、ライセンス上限にはカウントされません。
- グループの最大ロールはオーナーです。詳細については、グループアクセストークンの作成を参照してください。
- ユーザ名が
group_{group_id}_bot_{random_string}
に設定されていること。例えば、group_123_bot_4ffca233d8298ea1
。 - 電子メールが
group_{group_id}_bot_{random_string}@noreply.{Gitlab.config.gitlab.host}
に設定されていること。例えば、group_123_bot_4ffca233d8298ea1@noreply.example.com
。
その他のプロパティは、プロジェクトのボットユーザーと同様です。
トークンの利用可能性
グループアクセストークンは有償サブスクリプションでのみ利用可能で、トライアルサブスクリプションでは利用できません。詳しくは、GitLabトライアルFAQの「何が含まれていますか」をご覧ください。