[重要なお知らせ] GitLab 16 のアクセストークン有効期限
GitLab 16.0 (2023年5月22日リリース) 以降、すべてのアクセストークンには必ず1年以内の有効期限が設定されるように変更されました。これは、トークンの漏洩によるセキュリティリスクを低減させるための措置です。
この変更により、GitLab 16.0 より前の有効期限がないトークンにも、強制的に1年間の有効期限が設定されます。
Self-managed 版では、最初に16.0 以上のバージョンにアップグレードした日から起算して1年間でトークンの有効期間が満了することになります。例えば、2023年5月31日に16.0にアップグレードした場合は、2024年5月31日で満了します。
SaaS 版 (GitLab.com) の場合は一律に 2024年5月14日 で満了するように設定されています。
変更により影響を受けるアクセストークン
以下のアクセストークンのうち GitLab 16.0 より前に有効期限が設定されていなかったもの。
- パーソナルアクセストークン(サービスアカウントを除く)
- プロジェクトアクセストークン
- グループアクセストークン
16.0 より前に1年間以上の有効期限が設定されていたトークンは、影響を受けません。
アクセストークンが失効した際に発生する問題
- 期限切れのトークンを使用した HTTP アクセスは、ステータスコード 401 のエラーになります。
- それに伴い、期限切れのトークンを使用して行われた多数の HTTP アクセスにより Rate Limit を超えると、トークンを使用しない HTTP アクセスも制限されます。
以下のようなケースで対象のアクセストークンを利用している場合、エラーが起きます。
- 2FA (2段階認証) や SSO (外部の認証サービスによるシングルサインオン) を利用している場合の、HTTP 経由の Git コマンドアクセス (git push/pull/fetch)。
- GitLab に API コールを行う cron ジョブなどのスケジュールされたジョブ。
- アクセス管理、メンテナンス、レポーティング等に使われるアドホックなスクリプト。
- CI ジョブ トークンを超えてより高いレベルの API アクセスが必要な CI パイプライン(GitLab CI または他のソリューション)。
- ボットやその他の自動化や他システム/サービスとの統合。
影響を受けるトークンを特定する方法
こちらの公式ドキュメントを参照してください。
有効期限切れトークンへの対応
トークンの有効期限切れによる影響評価を実施した後、以下のアクションを検討してください
- GitLab UI で新しいトークンを作成し、適切な有効期限を設定する。
- トークン ローテーション API を使用して、影響を受けたトークンを新しいトークンにローテーションし、適切な有効期限を設定
- 今回の変更に影響を受けないサービスアカウントや OpenID Connect の ID トークンによる統合や自動化の検討
- ブロードキャストメッセージを利用したユーザーへの周知
本件についての詳細は GitLab 社の下記ブログ記事も合わせてご参照ください。
Why GitLab access tokens now have lifetime limits
本件についてご支援が必要な場合は、GitLab お問い合わせフォームより、または、弊社プロフェッショナルサービスをご購入いただいているお客さまはサポートポータルより、お問い合わせください。