패키지에 대한 사용 권한은 사용자 또는 조직 또는 리포지토리로 범위를 지정할 수 있습니다.
사용자/조직 범위 패키지에 대한 세분화된 사용 권한
세분화된 사용 권한이 있는 패키지는 개인 계정 또는 조직으로 범위가 지정됩니다. 패키지에 연결(또는 링크로 연결)되는 리포지토리와 별도로 패키지의 액세스 제어 및 표시 여부를 변경할 수 있습니다.
다음 GitHub Packages 레지스트리는 세분화된 권한을 지원합니다.
- Container registry
- npm registry - NuGet registry - RubyGems registry
리포지토리 범위 패키지에 대한 사용 권한
리포지토리 범위 패키지는 패키지가 게시된 리포지토리의 권한과 표시 여부를 상속합니다. 리포지토리의 기본 페이지로 이동하고 페이지 오른쪽에 있는 패키지 링크를 클릭하여 리포지토리로 범위가 지정된 패키지를 찾을 수 있습니다. 자세한 내용은 "리포지토리를 패키지에 연결"을(를) 참조하세요.
다음 GitHub Packages 레지스트리는 리포지토리 범위 권한만 지원합니다.
- Apache Maven 레지스트리
- Gradle 레지스트리
다른 레지스트리의 경우 패키지 범위를 사용자 또는 조직으로 지정하거나 리포지토리에 연결된 범위로 지정하도록 선택할 수 있습니다.
패키지의 표시 여부 및 액세스 권한
패키지가 세분화된 권한을 지원하는 레지스트리에 속하는 경우 패키지에 대한 관리자 권한이 있는 모든 사용자는 패키지를 프라이빗 또는 퍼블릭으로 설정할 수 있으며, 조직 및 리포지토리 수준에서 설정된 사용 권한과는 별개인 패키지에 대한 액세스 권한을 부여할 수 있습니다. 세분화된 권한을 지원하는 레지스트리 목록은 "GitHub 패키지에 대한 사용 권한 정보"을 참조하세요.
대부분의 레지스트리에서 패키지를 끌어오려면 패키지가 퍼블릭인지 프라이빗인지에 관계없이 personal access token 또는 GITHUB_TOKEN
로 인증해야 합니다. 그러나 Container registry에서 퍼블릭 패키지는 익명 액세스를 허용하며 인증 또는 CLI를 통해 로그인하지 않고 끌어올 수 있습니다.
참고: 리포지토리에 연결된 패키지를 게시하는 경우 패키지는 기본적으로 연결된 리포지토리에서 해당 권한을 상속합니다. 패키지의 세분화된 권한 설정에 액세스하려면 패키지의 상속된 사용 권한을 제거해야 합니다. 조직의 소유자인 경우 조직으로 범위가 지정된 모든 새 패키지가 권한 자동 상속을 사용하지 않도록 설정할 수 있습니다. 자세한 내용은 "패키지의 액세스 제어 및 표시 여부 구성" 및 "패키지의 액세스 제어 및 표시 여부 구성"을 참조하세요.
패키지를 게시하면 패키지에 대한 관리자 권한이 자동으로 부여됩니다. 조직에 패키지를 게시하는 경우 조직에서 owner
역할이 있는 모든 사용자는 패키지의 관리자 권한도 받습니다.
개인 계정 범위의 패키지는 모든 사용자에게 액세스 역할을 부여할 수 있습니다. 조직 범위의 패키지는 조직의 모든 사용자 또는 팀에게 액세스 역할을 부여할 수 있습니다.
GitHub Actions 워크플로를 사용하여 패키지를 관리하는 경우 워크플로가 패키지의 설정 “작업 액세스 관리” 아래 리포지토리 추가 버튼 사용에 저장된 리포지토리에 액세스 역할을 부여할 수 있습니다. 자세한 내용은 "패키지의 액세스 제어 및 표시 여부 구성"을(를) 참조하세요.
Permission | 액세스 설명 |
---|---|
읽기 | 패키지를 다운로드할 수 있습니다. 패키지 메타데이터를 읽을 수 있습니다. |
쓰기 | 이 패키지를 업로드하고 다운로드할 수 있습니다. 패키지 메타데이터를 읽고 쓸 수 있습니다. |
관리자 | 이 패키지를 업로드, 다운로드, 삭제 및 관리할 수 있습니다. 패키지 메타데이터를 읽고 쓸 수 있습니다. 패키지 권한을 부여할 수 있습니다. |
참고: GitHub Actions 워크플로에서 REST API를 사용하여 패키지를 삭제하고 복원하는 기능은 현재 공개 미리 보기 버전이며 변경될 수 있습니다.
자세한 내용은 "패키지의 액세스 제어 및 표시 여부 구성"을(를) 참조하세요.
패키지 레지스트리의 범위 및 사용 권한 정보
GitHub Packages은(는) personal access token (classic)을(를) 사용하는 인증만 지원합니다. 자세한 내용은 "개인용 액세스 토큰 관리"을(를) 참조하세요.
패키지 레지스트리에서 호스트되는 패키지를 사용하거나 관리하려면 적절한 범위의 personal access token (classic)을(를) 사용해야 하며 개인 계정에 적절한 사용 권한이 있어야 합니다.
예시:
- 리포지토리에서 패키지를 다운로드하고 설치하려면 personal access token (classic)에
read:packages
범위가 있어야 하며 사용자 계정에 읽기 권한이 있어야 합니다. - GitHub에서 패키지를 삭제하려면 personal access token (classic)에 최소한
delete:packages
및read:packages
범위가 있어야 합니다. 리포지토리 범위 패키지에도repo
범위가 필요합니다. 자세한 내용은 "패키지 삭제 및 복원"을(를) 참조하세요.
범위 | 설명 | 필요한 권한 |
---|---|---|
read:packages | GitHub Packages에서 패키지 다운로드 및 설치 | 읽기 |
write:packages | GitHub Packages에 패키지 업로드 및 게시 | 쓰기 |
delete:packages | GitHub Packages에서 패키지 삭제 | 관리자 |
repo | 패키지 업로드 및 삭제(write:packages 또는 delete:packages 포함) | 쓰기 또는 관리자 |
참고: GitHub Actions 워크플로에서 REST API를 사용하여 패키지를 삭제하고 복원하는 기능은 현재 공개 미리 보기 버전이며 변경될 수 있습니다.
GitHub Actions 워크플로를 생성하는 경우 GITHUB_TOKEN
을(를) 사용하여 personal access token을(를) 저장하고 관리할 필요 없이 GitHub Packages에 패키지를 게시하고, 설치하고, 제거하고, 복원할 수 있습니다.
자세한 내용은 다음을 참조하세요.
리포지토리 전송 정보
리포지토리를 다른 사용자 또는 조직에 이전할 수 있습니다. 자세한 내용은 "리포지토리 전송"을(를) 참조하세요.
리포지토리를 전송할 때 GitHub은(는) 패키지가 속한 레지스트리에 따라 리포지토리와 연결된 패키지를 이동할 수 있습니다.
- 세분화된 권한을 지원하는 레지스트리의 경우 패키지의 범위는 개인 계정 또는 조직으로 지정되며, 리포지토리를 이전할 때 패키지와 연결된 계정은 변경되지 않습니다. 리포지토리에 패키지를 연결한 경우 리포지토리를 다른 사용자에게 이전할 때 링크가 제거됩니다. 리포지토리와 연결된 codespace 또는 GitHub Actions 워크플로는 패키지에 대한 액세스 권한을 잃게 됩니다. 패키지가 연결된 리포지토리에서 액세스 권한을 상속하면 사용자는 패키지에 대한 액세스 권한을 잃게 됩니다. 이러한 레지스트리 목록은 위의 "사용자/조직 범위 패키지에 대한 세부적인 권한"을 참조하세요.
- 리포지토리 범위 권한만 지원하는 레지스트리의 경우 패키지는 리포지토리에 직접 게시되고 GitHub은(는) 리포지토리 이동의 일부로 리포지토리와 연결된 패키지를 이동합니다. 패키지와 연결된 모든 청구 가능 사용량은 이후 리포지토리의 새 소유자에게 청구됩니다. 이전 리포지토리 소유자가 리포지토리에서 공동 작업자로 제거된 경우 리포지토리와 연결된 패키지에 더 이상 액세스할 수 없습니다. 이러한 레지스트리 목록은 위의 "리포지토리 범위 패키지에 대한 사용 권한"을 참조하세요.
GitHub Actions 워크플로에서 패키지에 대한 액세스 유지 관리
워크플로가 패키지에 대한 액세스를 유지하도록 하려면 워크플로에서 올바른 액세스 토큰을 사용하고 있고 패키지에 대한 GitHub Actions 액세스를 사용하도록 설정했는지 확인합니다.
GitHub Actions에 대한 자세한 개념적 배경 또는 워크플로에서 패키지를 사용하는 예제는 “GitHub Actions 워크플로를 사용하여 GitHub 패키지 관리”을(를) 참조하세요.
액세스 토큰
참고: GitHub Actions 워크플로에서 REST API를 사용하여 패키지를 삭제하고 복원하는 기능은 현재 공개 미리 보기 버전이며 변경될 수 있습니다.
- 워크플로 리포지토리와 연결된 패키지를 게시하고, 설치하고, 제거하고, 복원하려면
GITHUB_TOKEN
을 사용합니다. GITHUB_TOKEN
이(가) 액세스할 수 없는 다른 프라이빗 리포지토리와 연결된 패키지를 설치하려면 personal access token (classic)을(를) 사용합니다.
GitHub Actions 워크플로에서 사용되는 GITHUB_TOKEN
에 대한 자세한 내용은 “자동 토큰 인증”을(를) 참조하세요.
세분화된 권한이 있는 패키지에 대한 GitHub Actions 액세스
워크플로가 세분화된 권한을 지원하는 레지스트리에 저장된 패키지에 액세스할 수 있도록 하려면 워크플로가 실행되는 리포지토리에 대한 GitHub Actions 액세스 권한을 부여해야 합니다. 패키지의 설정 페이지에서 이 설정을 찾을 수 있습니다. 자세한 내용은 "패키지의 액세스 제어 및 표시 여부 구성"을(를) 참조하세요.