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

アクセストークンRakeタスク

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

トークンの有効期限を分析する

GitLab 16.0では、バックグラウンド移行により、有効期限のないすべての個人、プロジェクト、グループアクセストークンに、作成から1年後の有効期限が設定されました。

この移行の影響を受けた可能性のあるトークンを特定するには、すべてのアクセストークンを分析し、最も一般的な有効期限の上位10件を表示するRakeタスクを実行します:

gitlab-rake gitlab:tokens:analyze
# Find the toolbox pod
kubectl --namespace <namespace> get pods -lapp=toolbox
kubectl exec -it <toolbox-pod-name> -- sh -c 'cd /srv/gitlab && bin/rake gitlab:tokens:analyze'
sudo docker exec -it <container_name> /bin/bash
gitlab-rake gitlab:tokens:analyze
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:tokens:analyze

このタスクは、すべてのアクセストークンを分析し、有効期限ごとにグループ化します。左の列には有効期限が、右の列にはその有効期限を持つトークンの数が表示されます。出力例:

======= Personal/Project/Group Access Token Expiration Migration =======
Started at: 2023-06-15 10:20:35 +0000
Finished  : 2023-06-15 10:23:01 +0000
===== Top 10 Personal/Project/Group Access Token Expiration Dates =====
| Expiration Date | Count |
|-----------------|-------|
| 2024-06-15      | 1565353 |
| 2017-12-31      | 2508  |
| 2018-01-01      | 1008  |
| 2016-12-31      | 833   |
| 2017-08-31      | 705   |
| 2017-06-30      | 596   |
| 2018-12-31      | 548   |
| 2017-05-31      | 523   |
| 2017-09-30      | 520   |
| 2017-07-31      | 494   |
========================================================================

この例では、150万を超えるアクセストークンに2023-06-15に移行が実行されてから1年後の2024-06-15の有効期限が設定されていることがわかります。これは、これらのトークンのほとんどが、移行によって割り当てられたことを示唆しています。ただし、他のトークンが同じ日付で手動で作成されたかどうかを確実に知る方法はありません。

有効期限を一括更新する

前提条件:

これを行うには、次の手順に従います。

  • 管理者である必要があります。
  • 対話型ターミナルを使用できること。

以下のRakeタスクを実行して、トークンの有効期限を一括で延長または削除します:

  1. ツールを実行します:

    gitlab-rake gitlab:tokens:edit
    # Find the toolbox pod
    kubectl --namespace <namespace> get pods -lapp=toolbox
    kubectl exec -it <toolbox-pod-name> -- sh -c 'cd /srv/gitlab && bin/rake gitlab:tokens:edit'
    sudo docker exec -it <container_name> /bin/bash
    gitlab-rake gitlab:tokens:edit
    sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:tokens:edit

    ツールが起動すると、分析ステップからの出力と、有効期限の変更に関する追加のプロンプトが表示されます:

    ======= Personal/Project/Group Access Token Expiration Migration =======
    Started at: 2023-06-15 10:20:35 +0000
    Finished  : 2023-06-15 10:23:01 +0000
    ===== Top 10 Personal/Project/Group Access Token Expiration Dates =====
    | Expiration Date | Count |
    |-----------------|-------|
    | 2024-05-14      | 1565353 |
    | 2017-12-31      | 2508  |
    | 2018-01-01      | 1008  |
    | 2016-12-31      | 833   |
    | 2017-08-31      | 705   |
    | 2017-06-30      | 596   |
    | 2018-12-31      | 548   |
    | 2017-05-31      | 523   |
    | 2017-09-30      | 520   |
    | 2017-07-31      | 494   |
    ========================================================================
    What do you want to do? (Press ↑/↓ arrow or 1-3 number to move and Enter to select)
    ‣ 1. Extend expiration date
      2. Remove expiration date
      3. Quit

有効期限を延長する

特定の有効期限に一致するすべてのトークンの有効期限を延長するには:

  1. オプション1、Extend expiration dateを選択します:

    What do you want to do?
    ‣ 1. Extend expiration date
      2. Remove expiration date
      3. Quit
  2. ツールは、リストされている有効期限のいずれかを選択するように求めます。例:

    Select an expiration date (Press ↑/↓/←/→ arrow to move and Enter to select)
    ‣ 2024-05-14
      2017-12-31
      2018-01-01
      2016-12-31
      2017-08-31
      2017-06-30

    キーボードの矢印キーを使用して日付を選択します。中止するには、一番下までスクロールして--> Abortを選択します。Enterを押して選択を確定します:

    Select an expiration date
      2017-06-30
      2018-12-31
      2017-05-31
      2017-09-30
      2017-07-31
    ‣ --> Abort

    日付を選択すると、ツールは新しい有効期限をプロンプト表示します:

    What would you like the new expiration date to be? (2025-05-14) 2024-05-14

    デフォルトは、選択した日付から1年後です。Enterを押してデフォルトを使用するか、YYYY-MM-DD形式で日付を手動で入力します。

  3. 有効な日付を入力すると、ツールはもう一度確認を求めます:

    Old expiration date: 2024-05-14
    New expiration date: 2025-05-14
    WARNING: This will now update 1565353 token(s). Are you sure? (y/N)

    yと入力すると、ツールは選択した有効期限を持つすべてのトークンの有効期限を延長します。

    Nと入力すると、ツールは更新タスクを中止し、元の分析出力に戻ります。

有効期限を削除する

特定の有効期限に一致するすべてのトークンの有効期限を削除するには:

  1. オプション2、Remove expiration dateを選択します:

    What do you want to do?
      1. Extend expiration date
    ‣ 2. Remove expiration date
      3. Quit
  2. ツールは、テーブルから有効期限を選択するように求めます。例:

    Select an expiration date (Press ↑/↓/←/→ arrow to move and Enter to select)
    ‣ 2024-05-14
      2017-12-31
      2018-01-01
      2016-12-31
      2017-08-31
      2017-06-30

    キーボードの矢印キーを使用して日付を選択します。中止するには、一番下までスクロールして--> Abortを選択します。Enterを押して選択を確定します:

    Select an expiration date
      2017-06-30
      2018-12-31
      2017-05-31
      2017-09-30
      2017-07-31
    ‣ --> Abort
  3. 日付を選択すると、ツールは選択の確認をプロンプト表示します:

    WARNING: This will remove the expiration for tokens that expire on 2024-05-14.
    This will affect 1565353 tokens. Are you sure? (y/N)

    yと入力すると、ツールは選択した有効期限を持つすべてのトークンから有効期限を削除します。

    Nと入力すると、ツールは更新タスクを中止し、最初のメニューに戻ります。

CI/CD IDトークンのカスタム発行者URL設定を検証する

非公開GitLabインスタンスで、AWSで一時的な認証情報を取得するためのOpenID Connectを設定する場合、ci:validate_id_token_configuration Rakeタスクを使用して、トークンの設定を検証することができます:

bundle exec rake ci:validate_id_token_configuration