액세스 토큰 레이크 작업

Tier: Free, Premium, Ultimate Offering: Self-Managed

토큰 만료 날짜 분석

GitLab 16.0에서 백그라운드 마이그레이션 로 비만료 개인, 프로젝트 및 그룹 액세스 토큰에는 토큰 생성 후 1년 후에 만료 날짜가 설정되었습니다.

이 마이그레이션에 영향을 받은 토큰을 식별하려면 모든 액세스 토큰을 분석하고 상위 10개의 가장 흔한 만료 날짜를 표시하는 레이크 작업을 실행할 수 있습니다:

Linux 패키지 (Omnibus)
   gitlab-rake gitlab:tokens:analyze
Helm 차트 (쿠버네티스)
   # 툴박스 팟 찾기
   kubectl --namespace <namespace> get pods -lapp=toolbox
   kubectl exec -it <toolbox-pod-name> -- sh -c 'cd /srv/gitlab && bin/rake gitlab:tokens:analyze'
Docker
   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

이 작업은 모든 액세스 토큰을 분석하고 만료 날짜별로 그룹화합니다. 왼쪽 열은 만료 날짜를 보여주고 오른쪽 열은 해당 만료 날짜를 가진 토큰 수를 보여줍니다. 예시 출력:

======= 개인/프로젝트/그룹 액세스 토큰 만료 마이그레이션 =======
시작일시: 2023-06-15 10:20:35 +0000
종료일시: 2023-06-15 10:23:01 +0000
===== 상위 10개의 개인/프로젝트/그룹 액세스 토큰 만료 날짜 =====
| 만료 날짜       | 개수   |
|----------------|-------|
| 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만 개 이상의 액세스 토큰이 2024-06-15에 만료되며, 이는 2023-06-15에 마이그레이션이 실행된 후 1년 후입니다. 이는 대부분 이 마이그레이션에 의해 할당된 토큰임을 시사합니다. 그러나 다른 토큰이 동일한 날짜로 수동으로 생성되었는지에 대해 확실히 알 방법은 없습니다.

대규모로 만료 날짜 업데이트

전제 조건:

당신은:

  • 관리자여야 합니다.
  • 대화형 터미널을 사용해야 합니다.

대량으로 토큰의 만료 날짜를 연장하거나 제거하려면 다음 레이크 작업을 실행하세요:

  1. 도구를 실행하세요:

    Linux 패키지 (Omnibus)
    gitlab-rake gitlab:tokens:edit
    
    Helm 차트 (쿠버네티스)
    # 툴박스 팟 찾기
    kubectl --namespace <namespace> get pods -lapp=toolbox
    kubectl exec -it <toolbox-pod-name> -- sh -c 'cd /srv/gitlab && bin/rake gitlab:tokens:edit'
    
    Docker
    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
    

    도구가 시작되면 토큰 만료 날짜 분석 단계에서의 출력과 추가적으로 만료 날짜 수정에 대한 프롬프트를 표시합니다.

    ======= 개인/프로젝트/그룹 액세스 토큰 만료 마이그레이션 =======
    시작일시: 2023-06-15 10:20:35 +0000
    종료일시: 2023-06-15 10:23:01 +0000
    ===== 상위 10개의 개인/프로젝트/그룹 액세스 토큰 만료 날짜 =====
    | 만료 날짜       | 개수   |
    |----------------|-------|
    | 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   |
    ========================================================================
    무엇을 하시겠습니까? (↑/↓ 화살표 또는 1-3 번을 눌러 이동하고 선택하려면 Enter를 누르세요)
    ‣ 1. 만료 날짜 연장
      2. 만료 날짜 제거
      3. 종료
    

만료 날짜 연장

특정 만료 날짜와 일치하는 모든 토큰의 만료 날짜를 연장하려면:

  1. 옵션 1, 만료 날짜 연장을 선택하세요:

    무엇을 하시겠습니까?
    ‣ 1. 만료 날짜 연장
      2. 만료 날짜 제거
      3. 종료
    
  2. 도구에서는 목록에 표시된 만료 날짜 중 하나를 선택하라고 요청합니다. 예를 들어:

    만료 날짜를 선택하세요 (↑/↓/←/→ 화살표를 눌러 이동하고 선택하려면 Enter를 누르세요)
    ‣ 2024-05-14
      2017-12-31
      2018-01-01
      2016-12-31
      2017-08-31
      2017-06-30
    

    키보드의 화살표 키를 사용하여 날짜를 선택하세요. 중단하려면 맨 아래까지 스크롤하고 --> 중단을 선택하세요. 선택을 확인하려면 Enter를 누르세요:

    만료 날짜를 선택하세요
      2017-06-30
      2018-12-31
      2017-05-31
      2017-09-30
      2017-07-31
    ‣ --> 중단
    

    날짜를 선택하면 도구는 새로운 만료 날짜를 입력하라고 요청합니다:

    새로운 만료 날짜는 무엇입니까? (2025-05-14) 2024-05-14
    

    기본값은 선택한 날짜로부터 1년 후입니다. 기본값을 사용하려면 Enter를 누르거나 YYYY-MM-DD 형식으로 수동으로 날짜를 입력하세요.

  3. 유효한 날짜를 입력한 후, 도구는 한 번 더 확인을 요청합니다:

    기존 만료 날짜: 2024-05-14
    새로운 만료 날짜: 2025-05-14
    주의: 이제 1565353개의 토큰을 업데이트합니다. 확실합니까? (y/N)
    

    y를 입력하면 도구는 선택한 만료 날짜를 가진 모든 토큰의 만료 날짜를 연장합니다.

    N을 입력하면 도구는 업데이트 작업을 중단하고 원래의 분석 출력으로 돌아갑니다.

만료 날짜 제거

특정 만료 날짜와 일치하는 모든 토큰의 만료 날짜를 제거하려면:

  1. 만료 날짜 제거 옵션 2를 선택하세요:

    무엇을 하시겠습니까?
      1. 만료 날짜 연장
    ‣ 2. 만료 날짜 제거
      3. 종료
    
  2. 도구에서는 테이블에서 만료 날짜를 선택하라는 메시지가 표시됩니다. 예:

    만료 날짜 선택 (↑/↓/←/→ 화살표로 이동 및 선택하려면 Enter 키를 누르세요)
    ‣ 2024-05-14
      2017-12-31
      2018-01-01
      2016-12-31
      2017-08-31
      2017-06-30
    

    키보드의 화살표 키를 사용하여 날짜를 선택합니다. 취소하려면, 맨 아래까지 스크롤하여 --> 취소를 선택하세요. 선택을 확인하려면 Enter를 누르세요:

    만료 날짜 선택
      2017-06-30
      2018-12-31
      2017-05-31
      2017-09-30
      2017-07-31
    ‣ --> 취소
    
  3. 날짜를 선택한 후, 도구에서 선택을 확인하라는 메시지가 나타납니다:

    경고: 2024-05-14에 만료되는 토큰의 만료일이 제거됩니다.
    이로 인해 1565353개의 토큰이 영향을 받습니다. 계속하시겠습니까? (y/N)
    

    y를 입력하면, 도구는 선택한 만료 날짜를 가진 모든 토큰의 만료 날짜를 제거합니다.

    N을 입력하면, 도구는 업데이트 작업을 중단하고 처음 메뉴로 돌아갑니다.