GitHub를 사용하여 원본 제어 리포지토리 권한 구성
최적의 방식으로 GitHub 리포지토리 권한을 구현하려면 협력을 용이하게 하는 것과 코드베이스를 남용 및 오용으로부터 보호하는 것 사이의 적절한 균형을 찾아야 합니다. GitHub는 데이터 개인 정보 보호, 보안, 무결성 원칙을 유지하면서 팀이 서로 효율적으로 상호 작용할 수 있도록 하는 세분화된 액세스 제어를 지원합니다.
권한 모델은 GitHub 계정 유형에 따라 다릅니다. 개인과 조직이 만들 수 있는 계정에는 5가지 유형이 있습니다.
- 개인 계정용 GitHub Free: 개인용이며 무료입니다. 전체 기능 집합이 있는 무제한 퍼블릭 리포지토리와 이슈 및 끌어오기 요청과 같은 제한된 기능 집합이 있는 무제한 프라이빗 리포지토리의
무제한 협력자가 포함됩니다. - GitHub Pro: 전문 개발자용입니다. 무제한 퍼블릭 및 프라이빗 리포지토리, 무제한 협력자, 고급 코드 검토 도구가 포함됩니다.
- 조직용 GitHub Free: 조직을 대상으로 하며 무료입니다. 전체 기능 집합이 있는 무제한 퍼블릭 리포지토리와 제한된 기능 집합이 있는 무제한 프라이빗 리포지토리의 무제한 협력자가 포합됩니다. 조직용 GitHub Free는 개인 계정용 GitHub Free에서 제공되는 기능에 더해 더 높은 월별 GitHub Actions 시간 제한(분)과 더 높은 GitHub Packages 스토리지를 제공합니다.
- GitHub Team: 팀을 대상으로 합니다. GitHub Pro의 모든 기능에 더해 팀 및 사용자 권한, 코드 검토 도구, 프라이빗 리포지토리의 고급 도구 및 기능이 포함됩니다.
- GitHub Enterprise: 대기업을 대상으로 합니다. GitHub Team의 모든 기능에 더해 Single Sign-On, 감사 로그, 규정 준수 제어와 같은 엔터프라이즈 수준 보안 기능이 포함됩니다. 이 플랜은 자체 호스팅되며 온-프레미스 또는 클라우드 환경(GitHub Enterprise Cloud)에서 실행할 수 있습니다.
개인 계정용 GitHub Free의 리포지토리 권한
개인 계정용 GitHub Free: 퍼블릭 리포지토리의 경우 누구나 리포지토리를 보고 포크할 수 있습니다. 프라이빗 리포지토리의 경우 리포지토리 소유자는 누가 리포지토리에 액세스하고 기여할 수 있는지 완전히 제어할 수 있으며 최대 3명의 협력자가 허용됩니다. 소유자는 한 명만 있을 수 있으므로 소유권 권한을 다른 개인 계정과 공유할 수 없습니다. 또한 프라이빗 리포지토리에서 리포지토리 소유자는 협력자에게 쓰기 권한만 부여할 수 있습니다. 즉, 협력자는 개인 계정이 소유한 리포지토리에 대한 읽기 전용 액세스를 가질 수 없습니다.
GitHub Pro의 리포지토리 권한
GitHub Pro는 개인 계정용 GitHub Free와 동일한 리포지토리 권한 수준을 포함하되 보호된 분기 및 코드 소유자와 같은 보다 고급 수준의 협력 기능을 제공합니다.
조직용 GitHub Free의 리포지토리 권한
조직용 GitHub Free에는 다양한 권한 수준으로 특정 리포지토리에 대한 액세스 권한을 부여할 수 있는 팀을 생성하는 기능이 포함되어 있습니다. 팀에는 쓰기 권한 또는 관리자 권한을 부여할 수 있으며, 사용자 지정 역할을 생성하여 다양한 사용자 또는 그룹에 특정 권한을 부여할 수 있습니다.
조직 내 사용자의 기본 비관리 역할은 조직 구성원입니다. 기본적으로 조직 구성원은 리포지토리 생성을 비롯한 몇 가지 권한을 갖습니다.
다른 조직 역할은 다음과 같이 리포지토리에 대한 높은 권한을 가집니다.
- 조직 중재자: 조직이 소유한 퍼블릭 리포지토리에 주석 숨기기
- 보안 관리자: 조직의 모든 리포지토리 읽기
- 소유자: 협력자 추가, 리포지토리 작성 및 삭제를 포함한 모든 리포지토리 관련 권한
조직 소유자는 조직의 리포지토리에 액세스할 때 조직의 모든 구성원에게 적용되는 기본 권한을 설정할 수 있습니다. 기본 권한은 외부 협력자에게는 적용되지 않습니다. 개별 리포지토리에 대해 더 높은 수준의 액세스 권한을 부여하면 기본 권한이 재정의됩니다.
조직 구성원 및 외부 협력자에게 기본 제공 리포지토리 역할을 할당하여 리포지토리에 대한 사용자 지정 액세스 권한을 구현할 수 있습니다. 이러한 역할은 다음과 같습니다.
- 읽기: 리포지토리의 콘텐츠를 검토하고자 하는 비코드 기여자에게 권장됩니다.
- 심사: 쓰기 권한 없이 이슈, 토론, 끌어오기 요청을 적극 관리해야 하는 기여자에게 권장됩니다.
- 쓰기: 리포지토리에 대한 푸시 작업을 적극 수행하는 기여자에게 권장됩니다.
- 유지 관리: 리포지토리를 관리해야 하는 프로젝트 관리자에게 권장됩니다. 민감하거나 안전하지 않은 작업에 대한 액세스 권한은 부여되지 않습니다.
- 관리: 보안 관리 또는 리포지토리 삭제와 같은 민감하고 안전하지 않은 작업을 포함하여 모든 권한이 필요한 사용자에게 권장됩니다.
GitHub Team의 리포지토리 권한
GitHub Team에는 조직용 GitHub Free와 동일한 수준의 리포지토리 권한이 모두 포함되어 있으며, 팀을 위한 지원과 인증된 IP 범위 및 엔터프라이즈급 인증과 같은 보다 고급 수준의 보안 기능이 추가로 제공됩니다. 팀은 조직 구성원으로 구성된 그룹입니다. 조직 소유자 및 팀 유지 관리자는 팀에 리포지토리에 대한 권한을 부여할 수 있습니다.
GitHub Enterprise Cloud의 리포지토리 권한
GitHub Enterprise Cloud는 대기업 조직을 위해 설계되었으며, GitHub Team의 모든 기능은 물론
Single Sign-On, 감사 로그, 규정 준수 제어와 같은 엔터프라이즈급 보안 기능을 제공합니다. GitHub Enterprise Cloud는 분기 수준에서 사용 권한을 관리할 수 있는 등 리포지토리 권한에 대한 매우 세분화된 제어를 지원합니다. 또한 조직 소유자는 사용자 지정 역할을 만들어 기본 제공 읽기, 심사, 쓰기, 유지 관리, 관리자 역할을 사용할 때보다 더 세부적인 권한을 다양한 사용자 또는 팀에 부여할 수 있습니다.