액세스 토큰 Rake 작업
Offering: GitLab Self-Managed
GitLab 16.0에서 백그라운드 마이그레이션을 통해 만료되지 않은 모든 개인, 프로젝트 및 그룹 액세스 토큰에 해당 토큰이 생성된 후 1년으로 설정된 만료일이 부여되었습니다. 이 마이그레이션의 영향을 받을 수 있는 토큰을 식별하기 위해 모든 액세스 토큰을 분석하고 가장 일반적인 만료일 상위 10개를 표시하는 Rake 작업을 실행할 수 있습니다:
히스토리
- GitLab 17.2에서 도입되었습니다.
토큰 만료일 분석#
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만 개 이상의 액세스 토큰에 2024-06-15 만료일이 있음을 알 수 있습니다. 이는 마이그레이션이 2023-06-15에 실행된 이후 1년 후입니다. 이는 대부분의 이러한 토큰이 마이그레이션에 의해 할당되었음을 시사합니다. 그러나 같은 날짜로 다른 토큰이 수동으로 생성되었는지 확실히 알 수 있는 방법은 없습니다.
만료일 일괄 업데이트#
사전 요구 사항:
다음이 필요합니다:
- 관리자 권한.
- 대화형 터미널.
다음 Rake 작업을 실행하여 토큰의 만료일을 일괄 연장하거나 제거합니다:
-
도구를 실행합니다:
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:editsudo 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,
Extend expiration date를 선택합니다:What do you want to do? ‣ 1. Extend expiration date 2. Remove expiration date 3. Quit -
도구는 나열된 만료일 중 하나를 선택하도록 요청합니다. 예를 들어:
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형식으로 날짜를 수동으로 입력합니다. -
유효한 날짜를 입력한 후 도구는 한 번 더 확인을 요청합니다:
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을 입력하면 도구는 업데이트 작업을 중단하고 원래 분석 출력으로 돌아갑니다.
만료일 제거#
주어진 만료일과 일치하는 모든 토큰의 만료일을 제거하려면:
-
옵션 2,
Remove expiration date를 선택합니다:What do you want to do? 1. Extend expiration date ‣ 2. Remove expiration date 3. Quit -
도구는 테이블에서 만료일을 선택하도록 요청합니다. 예를 들어:
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 -
날짜를 선택한 후 도구는 선택을 확인하도록 요청합니다:
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_configurationRake 작업을 사용하여 토큰 구성을 검증하세요:bundle exec rake ci:validate_id_token_configuration -
