GitHub Fine-grained PAT 권한 정리

1. Fine-grained PAT

GitHub 공식 문서 기준으로도 가능하면 fine-grained PAT를 권장한다.

Classic PAT는 더 넓은 권한을 갖기 쉬워 보안상 불리하다.

Fine-grained PAT는 특정 owner, 특정 repo만 선택하고, Contents / Pull requests / Actions처럼 권한을 세부적으로 나눠서 줄 수 있어서 더 안전하다.

Classic PAT는 repo, workflow 같은 넓은 scope 단위라서 권한이 쉽게 과해지고, 여러 저장소에 광범위하게 영향을 줄 수 있다.

그래서 새로 만들 토큰이면 fine-grained PAT를 우선 쓰고, 오래된 도구 호환성 때문에 fine-grained가 안 될 때만 classic PAT를 고려하면 된다.


2. AI Agent 개발 작업용 최소 권한

Fine-grained tokens 생성

항목권한 권장값이유 / 사용 목적비고
Resource owner개인 계정 또는 작업할 organizationApp 설치 대상을 결정실제 작업 대상 계정/조직에 맞춰 선택
Repository accessOnly select repositories필요한 저장소에만 접근하도록 제한최소 권한 원칙
Repository selection작업할 repo만 선택불필요한 저장소 접근 방지예: 특정 서비스 repo만 체크
MetadataReadrepo 기본 조회, 브랜치/PR/파일 정보 조회에 필요보통 자동 포함되거나 사실상 필수
ContentsRead and writeclone, branch 생성, 파일 수정, commit, push에 필요코드 변경 작업이 있으면 필수
Pull requestsRead and writePR 생성, 수정, 리뷰 관련 작업에 필요PR 자동 생성/업데이트 시 필요
IssuesRead and write (필요 시만)이슈 연결, 댓글 작성, 상태 관리가 필요한 경우이슈를 안 건드리면 꺼도 됨
ActionsReadCI 상태/체크 결과 조회용워크플로 실행/재실행까지 하려면 Read and write
WorkflowsNo access기본적으로 불필요GitHub Actions workflow 파일 수정/실행 제어가 필요할 때만 부여
AdministrationNo access저장소 설정 변경 권한이라 범위가 큼특별한 관리 작업 없으면 비활성
SecretsNo access민감 권한명시적으로 secret 읽기/쓰기 자동화가 필요할 때만
WebhooksNo access웹훅 생성/관리 권한앱이 직접 webhook을 관리해야 할 때만
작업 목적Repository access필요한 Repository permissions권장 수준
Public repo 읽기선택 안 해도 대부분 가능없음 또는 Metadata: Read최소
Private repo clone / pullOnly select repositoriesContents: Read, Metadata: Read읽기 전용
코드 수정 후 pushOnly select repositoriesContents: Read and write, Metadata: Read기본 개발용
브랜치 생성 / 커밋 pushOnly select repositoriesContents: Read and write, Metadata: Read기본 개발용
PR 생성 / 수정Only select repositoriesContents: Read and write, Pull requests: Read and write, Metadata: Read개발 + PR
PR 리뷰 / 코멘트Only select repositoriesPull requests: Read and write, Contents: Read, Metadata: Read리뷰용
Issue 생성 / 수정Only select repositoriesIssues: Read and write, Metadata: Read이슈 관리용
GitHub Actions 상태 확인Only select repositoriesActions: Read, Contents: Read, Metadata: ReadCI 확인용
GitHub Actions 실행 / 재실행Only select repositoriesActions: Read and write, Contents: Read, Metadata: Read필요 시
Workflow 파일 수정Only select repositoriesContents: Read and write, Workflows: Read and write, Metadata: Read주의
Release 생성Only select repositoriesContents: Read and write, Metadata: Read배포용
Organization repo 작업해당 org 선택작업별 repo 권한org 승인 필요 가능
Org 멤버 / 팀 조회해당 org 선택repo 권한 외 Members: Read 등 org 권한필요할 때만
Repo 설정 변경Only select repositoriesAdministration: Read and write, Metadata: Read위험
Secrets / Variables 수정Only select repositoriesSecrets: Read and write 또는 Variables: Read and write, Metadata: Read매우 주의
Webhook 관리Only select repositoriesWebhooks: Read and write, Metadata: Read필요할 때만
항목추천 설정
Token typeFine-grained personal access token
Resource owner개인 계정 또는 작업할 organization
Repository accessOnly select repositories
Repository selection작업할 repo만 선택
MetadataRead
ActionsCI 확인만이면 Read, 실행까지 필요하면 Read and write
ContentsRead and write
Pull requestsRead and write
Issues이슈 작업 필요 시 Read and write

토큰은 채팅에 그대로 보내지 말고, 가능하면 .env 같은 로컬 파일에 GITHUB_TOKEN=... 형태로 저장하기.


댓글 남기기