액세스 토큰 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:editHelm 차트 (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을 입력하면 도구는 업데이트 작업을 중단하고 첫 번째 메뉴로 돌아갑니다.
도움말