プロジェクトアクセストークン

プロジェクトアクセストークンはパスワードに似ていますが、リソースへのアクセスを制限したり、制限されたロールを選択したり、有効期限を設定したりすることができます。

認証にはプロジェクトアクセストークンを使用します:

  • GitLab APIを使用します。
  • GitでHTTPベーシック認証を使用する場合は、次のようにします:
    • 空白でない任意の値をユーザー名として使用します。
    • プロジェクトアクセストークンをパスワードとして指定します。

プロジェクトアクセストークンは、グループアクセストークンや パーソナルアクセストークンと似ています。

自己管理インスタンスでは、プロジェクト・アクセストークンに個人アクセストークンと同じ最大ライフタイム制限が設定されている場合、その制限が適用されます。

caution
有効期限のないプロジェクトアクセストークンを作成する機能は、GitLab 15.4で非推奨となり、GitLab 16.0で削除されました。GitLab 16.0以降では、有効期限のない既存のプロジェクトアクセストークンには、現在の日付より365日後の有効期限が自動的に与えられます。有効期限の自動追加は、16.0のマイルストーン中にGitLab.com上で行われます。有効期限の自動追加は、セルフマネージドインスタンスがGitLab 16.0にアップグレードされたときに発生します。この変更はブレークチェンジです。

プロジェクトアクセストークンを使用することができます:

プロジェクトのアクセストークンを使って他のグループ、プロジェクト、個人のアクセストークンを作成することはできません。

プロジェクト アクセストークンは、個人アクセストークンに設定されたデフォルトのプレフィックス設定を継承します。

プロジェクトアクセストークンの作成

  • GitLab 15.1で導入された、オーナーはプロジェクトのアクセストークンにオーナーロールを選択することができます。
  • GitLab 15.3で導入さ、デフォルトの有効期限は30日、デフォルトのロールはGuestがUIに入力されます。
  • GitLab 16.0で、有効期限なしのプロジェクトアクセストークンを作成する機能が削除されました。
caution
プロジェクトアクセストークンは内部ユーザーとして扱われます。内部ユーザーがプロジェクトアクセストークンを作成した場合、そのトークンは可視性レベルがInternal に設定されているすべてのプロジェクトにアクセスできます。

プロジェクト・アクセストークンを作成するには、以下の手順に従います:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 設定] > [アクセストークン]を選択します。
  3. 名前を入力します。トークン名は、プロジェクトを表示する権限を持つすべてのユーザーに表示されます。
  4. トークンの有効期限を入力します。
    • トークンの有効期限はその日の午前0時(UTC)です。
    • 有効期限を入力しない場合、有効期限は自動的に現在の日付より365日後に設定されます。
    • デフォルトでは、この日付は現在の日付より最大 365 日遅くなります。
    • インスタンス全体の最大有効期間の設定により、自己管理インスタンスで許容される最大有効期間を制限できます。
  5. トークンのロールを選択します。
  6. 必要なスコープを選択します。
  7. プロジェクトアクセストークンの作成」を選択します。

プロジェクトアクセストークンが表示されます。プロジェクトアクセストークンを安全な場所に保存します。ページを離れたり更新したりすると、二度と表示できなくなります。

プロジェクトアクセストークンの失効

プロジェクトのアクセストークンを失効させるには、以下の手順に従います:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 設定] > [アクセストークン]を選択します。
  3. 取り消すプロジェクトのアクセストークンの横で、[取り消す] を選択します。

プロジェクトアクセストークンのスコープ

プロジェクトアクセストークンで認証したときに実行できるアクションは、スコープによって決まります。

note
内部プロジェクトに関する警告は、プロジェクト・アクセストークンを作成する際の警告を参照してください。
スコープ説明
api パッケージレジストリを含む、スコープされたプロジェクトAPIへの完全な読み取りと書き込みアクセスを許可します。
read_api パッケージレジストリを含む、スコープされたプロジェクトAPIへの読み取りアクセスを許可します。
read_registryプロジェクトが非公開で作成者の認証が必要な場合、コンテナレジストリ画像への読み取りアクセス (pull) を許可します。
write_registry コンテナレジストリへの書き込みアクセス (push) を許可します。
read_repositoryリポジトリへの読み込みアクセス (pull) を許可します。
write_repositoryリポジトリへの読み込みと書き込みアクセス(プルとプッシュ)を許可します。
create_runnerプロジェクトにランナーを作成する権限を与えます。

プロジェクトのアクセストークン作成を有効または無効にします。

GitLab 13.11 で導入されました

トップレベルグループ内のすべてのプロジェクトに対して、プロジェクトのアクセストークン作成を有効または無効にします:

  1. 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
  2. 設定] > [全般]を選択します。
  3. 権限とグループ機能] を展開します。
  4. 権限] で、[プロジェクトとグループのアクセストークンの作成を許可する] をオンまたはオフにします。

作成が無効になっている場合でも、既存のプロジェクト・アクセストークンの使用と失効は可能です。

プロジェクトのボットユーザー

プロジェクトのボットユーザーはGitLabが作成したサービスアカウントです。プロジェクトのアクセストークンを作成するたびに、ボットユーザーが作成され、プロジェクトに追加されます。このユーザーは課金対象ユーザーではないので、ライセンス上限にはカウントされません。

プロジェクトのボットユーザーは、プロジェクトのアクセストークンで選択されたロールとスコープに対応する権限を持っています。

  • 名前はトークンの名前に設定されます。
  • ユーザー名はproject_{project_id}_bot_{random_string}に設定されます。例えば、project_123_bot_4ffca233d8298ea1
  • 電子メールはproject_{project_id}_bot_{random_string}@noreply.{Gitlab.config.gitlab.host}に設定されます。例えば、project_123_bot_4ffca233d8298ea1@noreply.example.com

プロジェクトのアクセストークンを使用して行われたAPIコールは、対応するボットユーザーに関連付けられます。

プロジェクトのボットユーザー:

  • プロジェクトのメンバーリストに含まれますが、変更することはできません。
  • 他のプロジェクトに追加することはできません。
  • プロジェクトの最大ロールはオーナーです。詳細については、プロジェクトアクセストークンの作成を参照してください。

プロジェクトのアクセストークンが失効した場合:

  • ボットユーザーは削除されます。
  • すべてのレコードは、ユーザー名Ghost Userを持つシステム全体のユーザーに移動されます。

グループのBotユーザーも参照してください。

トークンの利用可能性

複数のプロジェクトアクセストークンを利用できるのは、有料版のみです。PremiumとUltimateのトライアルサブスクリプションでは、1つのプロジェクトアクセストークンのみが含まれます。詳しくはGitLabトライアルFAQの “What is included “をご覧ください。