InfoGrab Docs

액세스 토큰 Rake 작업

요약

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 작업을 실행하여 토큰의 만료일을 일괄 연장하거나 제거합니다:

  1. 도구를 실행합니다:

   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:edit
   sudo 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. 옵션 1, Extend expiration date를 선택합니다:

    What do you want to do?
    ‣ 1. Extend expiration date
      2. Remove expiration date
      3. Quit
    
  2. 도구는 나열된 만료일 중 하나를 선택하도록 요청합니다. 예를 들어:

    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 형식으로 날짜를 수동으로 입력합니다.

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

    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을 입력하면 도구는 업데이트 작업을 중단하고 원래 분석 출력으로 돌아갑니다.

만료일 제거#

주어진 만료일과 일치하는 모든 토큰의 만료일을 제거하려면:

  1. 옵션 2, Remove expiration date를 선택합니다:

    What do you want to do?
      1. Extend expiration date
    ‣ 2. Remove expiration date
      3. Quit
    
  2. 도구는 테이블에서 만료일을 선택하도록 요청합니다. 예를 들어:

    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
    
  3. 날짜를 선택한 후 도구는 선택을 확인하도록 요청합니다:

    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_configuration Rake 작업을 사용하여 토큰 구성을 검증하세요:

bundle exec rake ci:validate_id_token_configuration

액세스 토큰 Rake 작업

Tier: Free, Premium, Ultimate
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 작업을 실행하여 토큰의 만료일을 일괄 연장하거나 제거합니다:

  1. 도구를 실행합니다:

   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:edit
   sudo 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. 옵션 1, Extend expiration date를 선택합니다:

    What do you want to do?
    ‣ 1. Extend expiration date
      2. Remove expiration date
      3. Quit
    
  2. 도구는 나열된 만료일 중 하나를 선택하도록 요청합니다. 예를 들어:

    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 형식으로 날짜를 수동으로 입력합니다.

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

    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을 입력하면 도구는 업데이트 작업을 중단하고 원래 분석 출력으로 돌아갑니다.

만료일 제거#

주어진 만료일과 일치하는 모든 토큰의 만료일을 제거하려면:

  1. 옵션 2, Remove expiration date를 선택합니다:

    What do you want to do?
      1. Extend expiration date
    ‣ 2. Remove expiration date
      3. Quit
    
  2. 도구는 테이블에서 만료일을 선택하도록 요청합니다. 예를 들어:

    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
    
  3. 날짜를 선택한 후 도구는 선택을 확인하도록 요청합니다:

    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_configuration Rake 작업을 사용하여 토큰 구성을 검증하세요:

bundle exec rake ci:validate_id_token_configuration