Skip to main content

개인용 액세스 토큰 관리

명령줄 또는 API에서 GitHub에 인증할 때 암호 대신 personal access token을 사용할 수 있습니다.

경고: 액세스 토큰을 암호와 같이 취급하세요. 자세한 내용은 personal access token 보안 유지를 참조하세요.

personal access token 정보

Personal access token은 GitHub API 또는 명령줄을 사용할 때 암호를 통해 GitHub Enterprise Server에 인증하는 대신 사용할 수 있는 대안입니다.

Personal access token은 사용자를 대신하여 GitHub 리소스에 액세스하기 위한 것입니다. 조직을 대신하여 리소스에 액세스하거나 장기적인 통합을 위해서는 GitHub App을(를) 사용해야 합니다. 자세한 내용은 "GitHub 앱 만들기 정보"을(를) 참조하세요.

토큰은 토큰 소유자가 가지고 있는 리소스에 액세스하고 해당 리소스에 대한 작업을 수행하는 동일한 기능을 가지고 있으며, 토큰에 부여된 범위 또는 권한을 통해 추가로 제한됩니다. 토큰은 사용자에게 추가 액세스 기능을 부여할 수 없습니다. 예를 들어 personal access token은(는) admin:org 범위로 구성할 수 있지만, 토큰 소유자가 조직 소유자 아닌 경우 토큰에서 조직에 대한 관리 액세스 권한을 부여하지 않습니다.

personal access token의 유형

GitHub은(는) 현재 두 가지 유형의 personal access token을(를) 지원합니다. fine-grained personal access token 및 personal access tokens (classic)이(가) 있습니다. GitHub에서는 가급적이면 personal access tokens (classic) 대신 fine-grained personal access token을 사용하는 것이 좋습니다.

fine-grained personal access token 및 personal access tokens (classic)은 모두 해당 토큰을 생성한 사용자와 연결되며 사용자가 리소스에 대한 액세스 권한을 잃게 되면 비활성 상태가 됩니다.

조직 소유자는 조직에 대한 personal access tokens (classic)의 액세스를 제한하는 정책을 설정할 수 있습니다. 또한 엔터프라이즈 소유자는 엔터프라이즈 또는 엔터프라이즈가 소유한 조직에 대한 personal access tokens (classic)의 액세스를 제한할 수 있습니다. 자세한 내용은 "조직의 개인용 액세스 토큰 정책 설정"을(를) 참조하세요.

Fine-grained personal access token

Fine-grained personal access token에는 personal access tokens (classic)에 비해 몇 가지 보안 이점이 있습니다.

  • 각 토큰은 단일 사용자 또는 조직이 소유한 리소스에만 액세스할 수 있습니다.
  • 각 토큰은 특정 리포지토리에만 액세스할 수 있습니다.
  • 각 토큰에는 personal access tokens (classic)에 부여된 범위보다 더 많은 제어 권한을 제공하는 특정 권한이 부여됩니다.
  • 각 토큰에는 만료일이 있어야 합니다.
  • 조직 소유자는 조직의 리소스에 액세스할 수 있는 모든 fine-grained personal access token에 대한 승인을 요구할 수 있습니다.
  • 엔터프라이즈 소유자는 엔터프라이즈가 소유한 조직의 리소스에 액세스할 수 있는 모든 fine-grained personal access token에 대한 승인을 요구할 수 있습니다.

Personal access tokens (classic)

Personal access tokens (classic)은(는) 보안이 취약합니다. 그러나 현재 일부 기능은 personal access tokens (classic)에서만 작동합니다.

  • 사용자가 소유하지 않은 또는 사용자가 멤버가 아닌 조직이 소유하지 않은 공용 리포지토리에 대해서는 personal access tokens (classic)만 쓰기 권한이 있습니다.
  • 엔터프라이즈가 소유한 내부 리포지토리에 대한 쓰기 권한은 personal access tokens (classic)에게만 자동으로 부여됩니다. Fine-grained personal access token에 내부 리포지토리에 대한 액세스 권한이 부여되어야 합니다.
  • 외부 협력자는 personal access tokens (classic)을(를) 사용하여 공동 작업자로 속해 있는 조직 리포지토리에만 액세스할 수 있습니다.
  • personal access tokens (classic)만 엔터프라이즈에 액세스할 수 있습니다. (Fine-grained personal access token은(는) 엔터프라이즈가 소유한 조직에 액세스할 수 있습니다.)
  • 몇몇 REST API 엔드포인트는 personal access tokens (classic)에서만 사용할 수 있습니다. 엔드포인트에서 fine-grained personal access token도 지원하는지 확인하려면 해당 엔드포인트에 대한 문서를 참조하거나 "세분화된 개인용 액세스 토큰에 사용할 수 있는 엔드포인트" 항목을 참조하세요.

personal access token (classic)을(를) 사용하기로 선택한 경우, 해당 토큰은 개인 계정의 모든 개인 리포지토리에 대한 액세스 권한뿐만 아니라 사용자가 액세스 권한을 가진 조직 내의 모든 리포지토리에 대한 액세스 권한을 부여한다는 점에 유의하세요.

personal access token 보안 유지

Personal access token은(는) 암호와 같으며 내재된 보안 위험성도 동일합니다. 새 personal access token을(를) 만들기 전에 더 안전한 인증 방법을 사용할 수 있는지 고려하세요.

  • 명령줄에서 GitHub에 액세스하려면 personal access token을(를) 만드는 대신 GitHub CLI 또는 Git 자격 증명 관리자를 사용할 수 있습니다.
  • GitHub Actions} 워크플로에서 personal access token을(를) 사용할 때는 기본 제공 GITHUB_TOKEN을(를) 대신 사용할 수 있는지 여부를 고려하세요. 자세한 내용은 "자동 토큰 인증"을(를) 참조하세요.

이러한 옵션을 사용할 수 없으며 personal access token을(를) 만들어야 하는 경우 다른 CLI 서비스를 사용하여 토큰을 안전하게 저장하는 것을 고려하세요.

스크립트에서 personal access token을(를) 사용하는 경우 토큰을 비밀로 저장하고 GitHub Actions을(를) 통해 스크립트를 실행할 수 있습니다. 자세한 내용은 "GitHub Actions에서 비밀 사용"을(를) 참조하세요.

모범 사례에 대한 자세한 내용은 "해당 API 자격 증명 보안 유지"을(를) 참조하세요.

fine-grained personal access token 만들기

참고: 참고: Fine-grained personal access token은(는) 현재 beta 버전이며 변경될 수 있습니다. 피드백을 남기려면 피드백 토론을 참조하세요.

  1. GitHub의 페이지 오른쪽 상단에서 프로필 사진을 클릭한 다음, 설정을 클릭합니다.

  2. 왼쪽 사이드바에서 개발자 설정을 클릭합니다.

  3. 왼쪽 사이드바의 Personal access token 에서 세분화된 토큰을 클릭합니다.

  4. 새 토큰 생성을 클릭합니다.

  5. 토큰 이름에 토큰의 이름을 입력합니다.

  6. 만료에서 토큰의 만료를 선택합니다.

  7. 필요에 따라 설명에 토큰의 용도를 설명하는 메모를 추가합니다.

  8. 리소스 소유자에서 리소스 소유자를 선택합니다. 토큰은 선택한 리소스 소유자가 소유한 리소스에만 액세스할 수 있습니다. 조직이 fine-grained personal access token을(를) 옵트인하지 않는 한 사용자가 멤버로 있는 조직은 표시되지 않습니다. 자세한 내용은 "조직의 개인용 액세스 토큰 정책 설정"을(를) 참조하세요.

  9. 필요에 따라 리소스 소유자가 fine-grained personal access token에 대한 승인이 필요한 조직인 경우 리소스 소유자 아래의 상자에 요청에 대한 근거를 입력합니다.

  10. 리포지토리 액세스에서 토큰이 액세스할 리포지토리를 선택합니다. 목적에 맞는 최소한의 리포지토리 액세스를 선택해야 합니다. 토큰에는 항상 GitHub의 모든 퍼블릭 리포지토리에 대한 읽기 전용 액세스가 포함됩니다.

  11. 이전 단계에서 리포지토리만 선택을 선택한 경우, 선택한 리포지토리 드롭다운에서 토큰이 액세스하도록 할 리포지토리를 선택합니다.

  12. 권한에서 토큰에 부여할 권한을 선택합니다. 지정한 리소스 소유자 및 리포지토리 액세스에 따라 리포지토리, 조직, 계정 권한이 있습니다. 필요에 맞게 필요한 최소한의 권한을 선택해야 합니다.

    각 엔드포인트에 대한 REST API 참조 문서는 엔드포인트가 fine-grained personal access tokens에서 작동하는지 여부 및 토큰이 엔드포인트를 사용하기 위해 필요한 권한을 명시합니다. 일부 엔드포인트에는 여러 권한이 필요할 수 있으며 일부 엔드포인트에는 여러 권한 중 하나가 필요할 수 있습니다. 각 권한으로 fine-grained personal access token에서 액세스할 수 있는 REST API 엔드포인트에 대한 개요는 "세분화된 개인용 액세스 토큰에 필요한 권한"을 참조하세요.

  13. 토큰 생성을 클릭합니다.

리소스 소유자로 조직을 선택했고 조직에서 fine-grained personal access token에 대한 승인이 필요한 경우 조직 관리자가 토큰을 검토할 때까지 토큰이 pending(으)로 표시됩니다. 토큰이 승인되기 전까지는 공개 리소스만 읽을 수 있습니다. 조직의 소유자인 경우 요청이 자동으로 승인됩니다. 자세한 내용은 "조직에서 개인용 액세스 토큰 검토 및 철회"을(를) 참조하세요.

personal access token (classic) 만들기

참고: 조직 소유자는 조직에 대한 personal access token (classic)의 액세스를 제한할 수 있습니다. personal access token (classic) 액세스를 사용하지 않도록 설정한 조직의 리소스에 액세스하기 위해 personal access token (classic)을(를) 사용하려고 하면 403 응답과 함께 요청이 실패합니다. 대신 GitHub App, OAuth app 또는 fine-grained personal access token을(를) 사용해야 합니다.

참고: personal access token (classic)은(는) 사용자가 액세스할 수 있는 모든 리포지토리에 액세스할 수 있습니다. GitHub에서는 특정 리포지토리로 제한할 수 있는 fine-grained personal access token을(를) 대신 사용할 것을 권장합니다. 또한 Fine-grained personal access token을(를) 사용하면 광범위한 범위 대신 세분화된 권한을 지정할 수 있습니다.

  1. GitHub의 페이지 오른쪽 상단에서 프로필 사진을 클릭한 다음, 설정을 클릭합니다.

  2. 왼쪽 사이드바에서 개발자 설정을 클릭합니다.

  3. 왼쪽 사이드바의 Personal access token 에서 토큰(클래식) 을 클릭합니다.

  4. 새 토큰 생성을 선택한 다음 새 토큰 생성(클래식) 을 클릭합니다.

  5. "참고" 필드에 토큰을 설명하는 이름을 지정합니다.

  6. 토큰에 만료일을 지정하려면 만료를 선택한 다음 기본 옵션을 선택하거나 사용자 지정을 클릭하여 날짜를 입력합니다.

  7. 이 토큰에 부여하려는 범위를 선택합니다. 토큰을 사용하여 명령줄에서 리포지토리에 액세스하려면 repo(리포지토리)를 선택합니다. 할당된 범위가 없는 토큰은 공용 정보에만 액세스할 수 있습니다. 자세한 내용은 "OAuth 앱에 대한 범위"을(를) 참조하세요.

  8. 토큰 생성을 클릭합니다.

  9. 필요에 따라 토큰을 클립보드에 복사하려면 아이콘을 클릭합니다.

    "Personal access tokens" 페이지의 스크린샷. 흐리게 처리된 토큰 옆에 겹쳐진 두 사각형 아이콘이 주황색 윤곽선으로 표시됩니다.

personal access token 삭제

더 이상 필요하지 않은 경우 personal access token을(를) 삭제해야 합니다. 배포 키를 만드는 데 사용된 personal access token을(를) 삭제하면 배포 키도 삭제됩니다.

  1. GitHub의 페이지 오른쪽 상단에서 프로필 사진을 클릭한 다음, 설정을 클릭합니다.
  2. 왼쪽 사이드바에서 개발자 설정을 클릭합니다.
  3. 왼쪽 사이드바의 Personal access token 에서 삭제하려는 personal access token 유형에 따라 세분화된 토큰 또는 토큰(클래식) 중 하나를 클릭합니다.
  4. 삭제할 personal access token의 오른쪽에서 삭제를 클릭합니다.

명령줄에서 personal access token 사용

personal access token이(가) 있으면 HTTPS를 통해 Git 작업을 수행할 때 암호 대신 이 토큰을 입력할 수 있습니다.

예를 들어 명령줄에서 리포지토리를 복제하려면 다음과 같이 git clone 명령을 입력합니다. 그러면 사용자 이름과 암호를 입력하라는 프롬프트가 표시됩니다. 암호를 입력하라는 프롬프트가 표시되면 암호 대신 personal access token을(를) 입력합니다.

$ git clone https://HOSTNAME/USERNAME/REPO.git
Username: YOUR-USERNAME
Password: YOUR-PERSONAL-ACCESS-TOKEN

Personal access token은(는) HTTPS Git 작업에만 사용할 수 있습니다. 리포지토리에서 SSH 원격 URL을 사용하는 경우 원격을 SSH에서 HTTPS로 전환해야 합니다.

사용자 이름과 암호를 묻는 메시지가 표시되지 않으면 자격 증명이 컴퓨터에 캐시될 수 있습니다. 키 집합에서 자격 증명을 업데이트하여 이전 암호를 토큰으로 바꿀 수 있습니다.

모든 HTTPS Git 작업에 대해 personal access token을 수동으로 입력하는 대신 Git 클라이언트를 사용하여 personal access token을(를) 캐시할 수 있습니다. Git은 만료 간격이 경과할 때까지 자격 증명을 일시적으로 메모리에 저장합니다. 또한 모든 요청 전에 Git에서 읽을 수 있는 일반 텍스트 파일에 토큰을 저장할 수도 있습니다. 자세한 정보는 "Git에서 GitHub 자격 증명 캐싱" 항목을 참조하세요.

추가 참고 자료