세분화된 Personal Access Token으로 자격 증명 노출 제한

발행: (2026년 5월 7일 AM 09:00 GMT+9)
6 분 소요

Source: GitLab Blog

Personal access tokens (PATs) 은 GitLab에서 실행되는 대부분의 자동화를 인증합니다. apiread_api 와 같이 광범위한 스코프로 토큰을 발급하면 여러 프로젝트와 그룹에 걸쳐 권한이 확장됩니다. 베타 단계에 들어선 세분화된 권한 PAT는 작업에 필요한 권한만 정확히 지정할 수 있게 해줍니다 — 예를 들어, 모든 프로젝트에 대한 읽기 권한 대신 특정 프로젝트의 코드에만 읽기 접근을 허용합니다.

PAT 권한을 좁혀야 하는 이유

20개의 프로젝트를 관리하는 유지보수자는 하나의 토큰으로 소스 읽기, 파이프라인 수정, 컨테이너 레지스트리 풀, CI/CD 변수 복호화 등을 모든 프로젝트에서 수행할 수 있습니다. 이 토큰은 특정 작업이 아니라 사용자에게 스코프가 지정되므로, 토큰이 유출되면 사용자가 접근할 수 있는 모든 프로젝트가 노출됩니다.

세분화된 PAT를 사용하면 팀이 작업에 맞는 스코프를 보장할 수 있습니다: 하나의 프로젝트에 대해 발급된 읽기 전용 토큰은 해당 프로젝트에서만 읽기 전용입니다. 유출될 경우 조사와 복구가 그 프로젝트 안에서만 이루어집니다. 또한 세분화된 PAT는 수명 제한 및 자동 폐기와 같은 보호 기능과 결합되어, 공격자가 도난당한 토큰을 악용할 수 있는 시간을 제한합니다.

새로운 기능

두 가지 차원에서 세분화된 PAT를 정의할 수 있습니다:

  • 접근 가능한 범위: 개인 프로젝트만, 회원인 모든 프로젝트와 그룹, 혹은 직접 선택한 프로젝트와 그룹 중 하나.
  • 그곳에서 할 수 있는 작업: 개발자가 자동화하는 대상(이슈, 머지 리퀘스트, 파이프라인, 리포지토리, 컨테이너 레지스트리 등)에 대한 리소스별 권한을 지정합니다. 각 리소스에 대해 Create, Read, Update, Delete 를 독립적으로 할당할 수 있습니다.

모든 작업을 수행할 수 있는 하나의 PAT 대신, 작업별로 정확히 해당 작업에 필요한 권한 집합만을 가진 PAT를 발급합니다. 예를 들어, 컨테이너 이미지를 푸시하는 파이프라인은 단일 프로젝트의 컨테이너 레지스트리만을 대상으로 CreateRead 권한만 가진 토큰을 사용합니다. 토큰이 유출되더라도 영향을 받는 범위는 하나의 레지스트리, 하나의 프로젝트에 국한됩니다.

토큰 테이블이 업데이트되어 한눈에 감사할 수 있게 되었습니다. 생성한 모든 토큰(거친 스코프든 세분화된 스코프든)마다 정확한 스코프와 리소스별 권한이 표시되므로, 과도한 권한을 가진 토큰을 리뷰 시 쉽게 식별할 수 있습니다.

현재 지원 범위와 향후 로드맵

  • 세분화된 PAT는 현재 **REST API 엔드포인트의 약 75 %**를 지원합니다.
  • 향후 몇 달 안에 나머지 REST 엔드포인트 지원을 추가하고, GraphQL 커버리지를 확대할 예정입니다.

기존 PAT는 이전과 동일하게 작동합니다. 베타 기간 동안 전통적인 PAT와 세분화된 PAT를 나란히 생성하면서 새로운 모델을 평가할 수 있습니다.

자세히 알아보고 피드백 공유하기

세분화된 Personal Access Token 만들기

  1. User Settings → Personal Access Tokens 로 이동합니다.
  2. Generate token 드롭다운에서 Fine‑grained token 을 선택합니다.
  3. 스코프를 정의합니다.

추가 자료

0 조회
Back to Blog

관련 글

더 보기 »