サービスアカウント
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
サービスアカウントは、個々の人ではなく、人間ではないエンティティを表すユーザーアカウントです。サービスアカウントを使用すると、自動化されたアクションの実行、データへのアクセス、スケジュールされたプロセスを実行できます。通常、サービスアカウントは、認証情報が安定しており、人間のユーザーメンバーシップの変更に影響されないことが求められる、パイプラインまたはサードパーティのインテグレーションで使用されます。
サービスアカウントには、次の2つの種類があります:
- インスタンスサービスアカウント: GitLabインスタンス全体で利用できますが、ゲストユーザーのようにグループやプロジェクトに追加する必要があります。GitLab Self-ManagedおよびGitLab Dedicatedでのみ利用可能です。
- グループサービスアカウント: 特定のトップレベルグループが所有しており、ゲストユーザーのようにサブグループやプロジェクトへの継承が可能です。
パーソナルアクセストークンを使用して、サービスアカウントとして認証できます。サービスアカウントは人間のユーザーと同じ機能を持っており、パッケージやコンテナレジストリとのやり取り、Gitオペレーションの実行、APIへのアクセスなどのアクションを実行できます。
サービスアカウント:
- シートを使用しません。
- UIからGitLabにサインインできません。
- グループおよびプロジェクトのメンバーシップでサービスアカウントとして識別されます。
- カスタムメールアドレスを追加しない限り、通知メールを受信しません。
- 請求対象ユーザーや内部ユーザーではありません。
- GitLab.comのトライアルバージョンでは使用できません。
- GitLab Self-ManagedおよびGitLab Dedicatedのトライアルバージョンで使用できます。
サービスアカウントAPIを使用して、サービスアカウントを管理することもできます。
前提要件
- GitLab.comでは、トップレベルグループのオーナーロールを持っている必要があります。
- GitLab Self-ManagedまたはGitLab Dedicatedでは、次の条件を満たす必要があります:
- インスタンスの管理者である。
- トップレベルグループでオーナーロールを持ち、サービスアカウントの作成を許可されている。
サービスアカウントの表示と管理
サービスアカウントページには、トップレベルグループまたはインスタンスのサービスアカウントに関する情報が表示されます。各トップレベルグループとGitLab Self-Managedインスタンスには、個別のサービスアカウントページがあります。これらのページから、次のことができます:
- グループまたはインスタンスのすべてのサービスアカウントを表示する。
- サービスアカウントを削除する
- サービスアカウントの名前またはユーザー名を編集する。
- サービスアカウントのパーソナルアクセストークンを管理する。
インスタンス全体のサービスアカウントを表示するには:
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > サービスアカウントを選択します。
トップレベルグループのサービスアカウントを表示するには:
- 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
- 設定 > サービスアカウントを選択します。
サービスアカウントを作成する
GitLab.comでは、トップレベルグループのオーナーのみがサービスアカウントを作成できます。
デフォルトでは、GitLab DedicatedとGitLab Dedicatedで、管理者のみがサービスアカウントを作成できます。ただし、トップレベルグループのオーナーがグループサービスアカウントを作成できるように、インスタンスを設定できます。
作成できるサービスアカウントの数は、ライセンスによって制限されます:
- GitLab Freeでは、サービスアカウントを作成できません。
- GitLab Premiumでは、有料シートごとに1つのサービスアカウントを作成できます。
- GitLab Ultimateでは、無制限の数のサービスアカウントを作成できます。
サービスアカウントを作成するには:
- サービスアカウントページに移動します。
- サービスアカウントの追加を選択します。
- サービスアカウントの名前を入力します。ユーザー名は、名前に基づいて自動的に生成されます。必要に応じて、ユーザー名を変更できます。
- サービスアカウントの作成を選択します。
サービスアカウントを編集する
サービスアカウントの名前またはユーザー名を編集できます。
サービスアカウントを編集するには:
- サービスアカウントページに移動します。
- サービスアカウントを特定します。
- 縦方向の省略記号( ) > 編集を選択します。
- サービスアカウントの名前またはユーザー名を編集します。
- 変更を保存を選択します。
グループとプロジェクトへのサービスアカウントアクセス
サービスアカウントは外部ユーザーに似ています。最初に作成されたときは、グループとプロジェクトへのアクセスが制限されています。リソースにサービスアカウントアクセスを付与するには、各グループまたはプロジェクトにサービスアカウントを追加する必要があります。
グループまたはプロジェクトに追加できるサービスアカウントの数に制限はありません。サービスアカウントは、メンバーになっている各グループ、サブグループ、またはプロジェクトでさまざまなロールを持つことができます。GitLab.comでは、グループのサービスアカウントは、1つのトップレベルグループのみに属することができます。
人間のユーザーのアクセスを管理するのと同じ方法で、グループとプロジェクトへのサービスアカウントアクセスを管理できます。詳細については、グループとプロジェクトのメンバーを参照してください。
メンバーAPIを使用して、グループとプロジェクトの割り当てを管理することもできます。グローバルSAMLグループメンバーシップロックまたはグローバルLDAPグループメンバーシップロックが有効になっている場合は、このAPIを使用する必要があります。
サービスアカウントを削除する
サービスアカウントを削除した場合、アカウントによって行われたコントリビュートが保持され、所有権がシステム全体のGhostユーザーアカウントに移転します。これらのコントリビュートには、マージリクエスト、イシュー、プロジェクト、グループなどのアクティビティーが含まれます。
サービスアカウントを削除するには:
- サービスアカウントページに移動します。
- サービスアカウントを特定します。
- 縦方向の省略記号( ) > アカウントを削除を選択します。
- サービスアカウントの名前を入力します。
- ユーザーを削除を選択します。
サービスアカウントと、アカウントによって行われたコントリビュートを削除することもできます。これらのコントリビュートには、マージリクエスト、イシュー、グループ、プロジェクトなどのアクティビティーが含まれます。
- サービスアカウントページに移動します。
- サービスアカウントを特定します。
- 縦方向の省略記号( ) > アカウントとコントリビュートの削除を選択します。
- サービスアカウントの名前を入力します。
- ユーザーとコントリビュートを削除を選択します。
APIを通じてサービスアカウントを削除することもできます。
- インスタンスのサービスアカウントの場合は、users APIを使用します。
- グループのサービスアカウントの場合は、サービスアカウントAPIを使用します。
サービスアカウントのパーソナルアクセストークンの表示と管理
パーソナルアクセストークンページには、トップレベルグループまたはインスタンスのサービスアカウントに関連付けられたパーソナルアクセストークンに関する情報が表示されます。これらのページから、次のことができます:
- パーソナルアクセストークンをフィルタリングしたり、ソートしたり、その詳細を表示したりする。
- パーソナルアクセストークンをローテーションする。
- パーソナルアクセストークンを取り消す。
APIを通じてサービスアカウントのパーソナルアクセストークンを管理することもできます。
- インスタンスのサービスアカウントの場合は、パーソナルアクセストークンAPIを使用します。
- グループのサービスアカウントの場合は、サービスアカウントAPIを使用します。
サービスアカウントのパーソナルアクセストークンページを表示するには:
- サービスアカウントページに移動します。
- サービスアカウントを特定します。
- 縦方向の省略記号( ) > アクセストークンの管理を選択します。
サービスアカウントのパーソナルアクセストークンを作成する
サービスアカウントを使用するには、パーソナルアクセストークンを作成してリクエストを認証する必要があります。
サービスアカウントのパーソナルアクセストークンを作成するには:
- サービスアカウントページに移動します。
- サービスアカウントを特定します。
- 縦方向の省略記号( ) > アクセストークンの管理を選択します。
- 新しいトークンを追加を選択します。
- トークン名に、トークンの名前を入力します。
- オプション。トークンの説明に、トークンの説明を入力します。
- 有効期限に、トークンの有効期限を入力します。
- トークンは、その日付のUTC午前0時に期限切れになります。有効期限が2024-01-01のトークンは、2024-01-01の00:00:00 UTCに期限切れになります。
- 有効期限を入力しない場合、有効期限は現在の日付より365日後に自動的に設定されます。
- デフォルトでは、この日付は現在の日付より最大365日後に設定できます。GitLab 17.6以降では、この制限を400日に延長できます。
- 必要なスコープを選択します。
- Create personal access token(パーソナルアクセストークンを作成)を選択します。
パーソナルアクセストークンをローテーションする
パーソナルアクセストークンをローテーションして、現在のトークンを無効にし、新しい値を生成できます。
これは元に戻せません。ローテーションされたトークンに依存するサービスは動作を停止します。
サービスアカウントのパーソナルアクセストークンをローテーションするには:
- サービスアカウントページに移動します。
- サービスアカウントを特定します。
- 縦方向の省略記号( ) > アクセストークンの管理を選択します。
- アクティブなトークンの横にある縦方向の省略記号( )を選択します。
- ローテーションを選択します。
- 確認ダイアログで、ローテーションを選択します。
パーソナルアクセストークンを取り消す
パーソナルアクセストークンをローテーションして、現在のトークンを無効にすることができます。
これは元に戻せません。取り消されたトークンに依存するサービスは動作を停止します。
サービスアカウントのパーソナルアクセストークンを取り消すには:
- サービスアカウントページに移動します。
- サービスアカウントを特定します。
- 縦方向の省略記号( ) > アクセストークンの管理を選択します。
- アクティブなトークンの横にある縦方向の省略記号( )を選択します。
- 取り消しを選択します。
- 確認ダイアログで、取り消しを選択します。
レート制限
レート制限がサービスアカウントに適用されます:
- GitLab.comでは、GitLab.com固有のレート制限が適用されます。
- GitLab Self-ManagedとGitLab Dedicatedでは、次のレート制限が適用されます: