액세스 토큰 Rake 작업
- 소개됨 GitLab 17.2에서.
토큰 만료 날짜 분석
GitLab 16.0에서 배경 마이그레이션이 모든 만료되지 않는 개인, 프로젝트 및 그룹 액세스 토큰에 대해 생성된 후 1년으로 설정된 만료 날짜를 부여했습니다.
이 마이그레이션에 영향을 받을 수 있는 토큰을 식별하기 위해 모든 액세스 토큰을 분석하고 가장 일반적인 만료 날짜 상위 10개를 표시하는 Rake 작업을 실행할 수 있습니다:
gitlab-rake gitlab:tokens:analyze
# 툴박스 팟 찾기
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
이 작업은 모든 액세스 토큰을 분석하고 만료 날짜별로 그룹화합니다.
왼쪽 열은 만료 날짜를 표시하고, 오른쪽 열은 해당 만료 날짜를 가진 토큰 수를 보여줍니다. 예시 출력:
======= 개인/프로젝트/그룹 액세스 토큰 만료 마이그레이션 =======
시작 시간: 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 |
========================================================================
이 예시에서는 1.5백만 개 이상의 액세스 토큰이 2024-06-15의 만료 날짜를 가지며, 이는 마이그레이션이 2023-06-15에 실행된 후 1년입니다.
이로 인해 이러한 토큰의 대부분이 마이그레이션에 의해 지정되었음을 나타냅니다. 그러나 다른 토큰이 동일한 날짜로 수동으로 생성되었는지 여부는 확실히 알 수 없습니다.
대량으로 만료 날짜 업데이트
사전 요구 사항:
당신은:
- 관리자인 경우.
- 대화형 터미널을 가지고 있어야 합니다.
다음 Rake 작업을 실행하여 토큰의 만료 날짜를 대량으로 연장하거나 제거하세요:
-
도구 실행:
리눅스 패키지 (Omnibus)gitlab-rake gitlab:tokens:edit
Helm 차트 (Kubernetes)# 툴박스 팟 찾기 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
소스에서 컴파일 (Self-compiled)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,
Extend expiration date
를 선택합니다:무엇을 하시겠습니까? ‣ 1. 만료 날짜 연장 2. 만료 날짜 제거 3. 종료
-
도구는 나열된 만료 날짜 중 하나를 선택하라고 요청합니다. 예를 들어:
만료 날짜를 선택하세요 (↑/↓/←/→ 화살표 키로 이동하고 Enter를 눌러 선택) ‣ 2024-05-14 2017-12-31 2018-01-01 2016-12-31 2017-08-31 2017-06-30
키보드의 화살표 키를 사용하여 날짜를 선택합니다. 중단하려면, 아래로 스크롤하여
--> Abort
를 선택합니다. 선택을 확인하려면 Enter를 누릅니다:만료 날짜를 선택하세요 2017-06-30 2018-12-31 2017-05-31 2017-09-30 2017-07-31 ‣ --> Abort
날짜를 선택하면 도구가 새로운 만료 날짜를 묻습니다:
새 만료 날짜는 얼마로 하시겠습니까? (2025-05-14) 2024-05-14
기본값은 선택한 날짜로부터 1년 후입니다. 기본값을 사용하려면 Enter를 누르거나
YYYY-MM-DD
형식으로 날짜를 수동으로 입력합니다. -
유효한 날짜를 입력한 후, 도구가 확인을 한 번 더 요청합니다:
이전 만료 날짜: 2024-05-14 새 만료 날짜: 2025-05-14 경고: 이제 1565353개의 토큰이 업데이트됩니다. 확실합니까? (y/N)
y
를 입력하면 도구는 선택된 만료 날짜가 있는 모든 토큰의 만료 날짜를 연장합니다.N
을 입력하면 도구는 업데이트 작업을 중단하고 원래의 분석 출력으로 돌아갑니다.
만료 날짜 제거
주어진 만료 날짜와 일치하는 모든 토큰의 만료 날짜를 제거하려면:
-
옵션 2,
Remove expiration date
를 선택합니다:무엇을 하시겠습니까? 1. 만료 날짜 연장 ‣ 2. 만료 날짜 제거 3. 종료
-
도구는 테이블에서 만료 날짜를 선택하라고 요청합니다. 예를 들어:
만료 날짜를 선택하세요 (↑/↓/←/→ 화살표 키로 이동하고 Enter를 눌러 선택) ‣ 2024-05-14 2017-12-31 2018-01-01 2016-12-31 2017-08-31 2017-06-30
키보드의 화살표 키를 사용하여 날짜를 선택합니다. 중단하려면, 아래로 스크롤하여
--> Abort
를 선택합니다. 선택을 확인하려면 Enter를 누릅니다:만료 날짜를 선택하세요 2017-06-30 2018-12-31 2017-05-31 2017-09-30 2017-07-31 ‣ --> Abort
-
날짜를 선택한 후, 도구가 선택을 확인하라고 요청합니다:
경고: 이는 2024-05-14에 만료되는 토큰의 만료를 제거합니다. 이는 1565353개의 토큰에 영향을 미칠 것입니다. 확실합니까? (y/N)
y
를 입력하면 도구는 선택된 만료 날짜가 있는 모든 토큰의 만료 날짜를 제거합니다.N
을 입력하면 도구는 업데이트 작업을 중단하고 첫 번째 메뉴로 돌아갑니다.