더 큰 러너에 대한 접근 제어하기

더 큰 러너에 대한 접근 제어하기

정책을 사용해 조직이나 엔터프라이즈에 추가된 더 큰 러너(larger runners)에 대한 접근을 제한할 수 있어요. 러너 그룹은 어떤 저장소가 더 큰 러너에서 작업을 실행할 수 있는지 제어해요.

출처: 문서

본문

더 큰 러너 접근 관리하기

Note

워크플로가 더 큰 러너로 작업을 보낼 수 있으려면 먼저 러너 그룹의 권한을 구성해야 해요. 자세한 내용은 다음 섹션을 참고하세요.

러너 그룹은 어떤 저장소가 더 큰 러너에서 작업을 실행할 수 있는지 제어하는 데 사용돼요. 더 큰 러너를 정의한 위치에 따라 관리 계층의 각 수준에서 그룹에 대한 접근을 관리해야 해요:

  • 엔터프라이즈 수준의 러너: 기본적으로 조직의 저장소는 엔터프라이즈 수준 러너 그룹에 접근할 수 없어요. 저장소가 엔터프라이즈 러너 그룹에 접근할 수 있게 하려면 조직 소유자가 각 엔터프라이즈 러너 그룹을 구성하고 어떤 저장소가 접근할지 선택해야 해요.
  • 조직 수준의 러너: 기본적으로 조직의 모든 저장소는 조직 수준 러너 그룹에 접근할 수 있어요. 어떤 저장소가 접근할지 제한하려면 조직 소유자가 조직 러너 그룹을 구성하고 어떤 저장소가 접근할지 선택해야 해요.

예를 들어 다음 다이어그램에는 엔터프라이즈 수준에 grp-ubuntu-24.04-16core라는 러너 그룹이 있어요. octo-repo라는 저장소가 그 그룹의 러너를 사용할 수 있으려면 먼저 엔터프라이즈 수준에서 그룹을 구성해 octo-org 조직이 접근할 수 있게 해야 해요. 그런 다음 조직 수준에서 그룹을 구성해 octo-repo가 접근할 수 있게 해야 해요.

두 저장소에 대한 접근을 허용하는 조직 구성을 가진 엔터프라이즈 수준에서 정의된 러너 그룹을 보여주는 다이어그램.

조직용 러너 그룹 만들기

Warning

고정 IP 범위(Fixed IP range)를 사용한다면 더 큰 러너를 비공개 저장소에만 사용할 것을 권장해요. 저장소의 포크는 워크플로에서 코드를 실행하는 풀 리퀘스트를 만들어 더 큰 러너에서 위험한 코드를 잠재적으로 실행할 수 있어요.

Note

러너 그룹을 만들 때는 어떤 저장소가 러너 그룹에 접근할지 정의하는 정책을 선택해야 해요. 어떤 저장소와 워크플로가 러너 그룹에 접근할 수 있는지 변경하려면 조직 소유자가 조직에 대한 정책을 설정할 수 있어요. 자세한 내용은 그룹을 사용해 자체 호스팅 러너 접근 관리하기를 참고하세요.

모든 조직에는 단일 기본 러너 그룹이 있어요. GitHub Team 플랜을 사용하는 조직 소유자는 추가 조직 수준 러너 그룹을 만들 수 있어요.

등록 과정에서 그룹을 지정하지 않으면 러너가 자동으로 기본 그룹에 추가돼요. 나중에 러너를 기본 그룹에서 커스텀 그룹으로 이동할 수 있어요.

REST API로 러너 그룹을 만드는 방법은 GitHub Actions를 위한 REST API 엔드포인트를 참고하세요.

  1. GitHub에서 조직의 메인 페이지로 이동해요.

  2. 조직 이름 아래에서 Settings 탭을 클릭해요.

    조직 프로필의 탭 스크린샷. "Settings" 탭이 진한 주황색으로 윤곽선이 그려져 있어요.

  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runner groups을 클릭해요.

  4. "Runner groups" 섹션에서 New runner group을 클릭해요.

  5. 러너 그룹의 이름을 입력해요.

  6. 저장소 접근에 대한 정책을 할당해요.

    러너 그룹을 특정 저장소 목록에 접근 가능하도록 구성하거나, 조직의 모든 저장소에 접근 가능하도록 구성할 수 있어요. 기본적으로 비공개 저장소만 러너 그룹의 러너에 접근할 수 있지만, 이를 재정의할 수 있어요. 엔터프라이즈가 공유한 조직의 러너 그룹을 구성하는 경우 이 설정은 재정의할 수 없어요.

  7. Create group을 클릭해 그룹을 만들고 정책을 적용해요.

러너 그룹에 접근할 수 있는 저장소 변경하기

Warning

고정 IP 범위(Fixed IP range)를 사용한다면 더 큰 러너를 비공개 저장소에만 사용할 것을 권장해요. 저장소의 포크는 워크플로에서 코드를 실행하는 풀 리퀘스트를 만들어 더 큰 러너에서 위험한 코드를 잠재적으로 실행할 수 있어요.

조직의 러너 그룹에 대해, 조직 내 어떤 저장소가 러너 그룹에 접근할 수 있는지 변경할 수 있어요.

  1. 러너 그룹이 있는 조직의 메인 페이지로 이동해요.

  2. 조직 이름 아래에서 Settings 탭을 클릭해요.

  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runner groups을 클릭해요.

  4. 그룹 목록에서 구성할 러너 그룹을 클릭해요.

  5. "Repository access" 아래에서 드롭다운 메뉴를 사용해 Selected repositories을 클릭해요.

    1. 드롭다운 메뉴 오른쪽에서 설정 아이콘(기어)을 클릭해요.
    2. 팝업에서 이 러너 그룹에 접근할 수 있는 저장소를 선택하려면 체크박스를 사용해요.
  6. Save group을 클릭해요.

더 큰 러너의 사설 네트워크 접근 구성하기

Azure VNET에서 GitHub 호스팅 러너를 사용할 수 있어요. 이렇게 하면 CI/CD에 GitHub 관리 인프라를 사용하면서도 러너의 네트워킹 정책을 완전히 제어할 수 있어요. Azure VNET에 대한 자세한 내용은 Azure 문서의 Azure Virtual Network란 무엇인가요?를 참고하세요.

조직이 Azure VNET에 연결하도록 구성했다면 러너 그룹에 가상 네트워크 접근 권한을 줄 수 있어요. 자세한 내용은 GitHub 호스팅 러너의 사설 네트워킹을 참고하세요.

네트워크 구성이 있는 러너 그룹에는 macOS 더 큰 러너를 할당할 수 없어요. 마찬가지로 macOS 더 큰 러너가 포함된 러너 그룹에는 네트워크 구성을 추가할 수 없어요.

러너 그룹 이름 변경하기

  1. 러너 그룹이 있는 조직의 메인 페이지로 이동해요.
  2. 조직 이름 아래에서 Settings 탭을 클릭해요.
  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runner groups을 클릭해요.
  4. 그룹 목록에서 구성할 러너 그룹을 클릭해요.
  5. "Group name" 아래의 텍스트 필드에 새 러너 그룹 이름을 입력해요.
  6. Save을 클릭해요.

러너를 그룹으로 이동하기

등록 과정에서 러너 그룹을 지정하지 않으면 새 러너가 자동으로 기본 그룹에 할당되며, 이후 다른 그룹으로 이동할 수 있어요.

  1. GitHub에서 조직의 메인 페이지로 이동해요.

  2. 조직 이름 아래에서 Settings 탭을 클릭해요.

    조직 프로필의 탭 스크린샷. "Settings" 탭이 진한 주황색으로 윤곽선이 그려져 있어요.

  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runners을 클릭해요.

  4. "Runners" 목록에서 구성할 러너를 클릭해요.

  5. Runner group 드롭다운을 선택해요.

  6. "Move runner to group"에서 러너의 대상 그룹을 선택해요.

러너 그룹 제거하기

러너 그룹을 제거하려면 먼저 그 그룹의 모든 러너를 이동하거나 제거해야 해요.

  1. 러너 그룹이 있는 조직의 메인 페이지로 이동해요.
  2. 조직 이름 아래에서 Settings 탭을 클릭해요.
  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runner groups을 클릭해요.
  4. 그룹 목록에서 삭제할 그룹 오른쪽의 케밥(세로 점 3개) 아이콘을 클릭해요.
  5. 그룹을 제거하려면 Remove group을 클릭해요.
  6. 확인 프롬프트를 검토하고 Remove this runner group을 클릭해요.