Skip to main content

더 큰 실행기 액세스 제어

정책을 사용하여 조직 또는 엔터프라이즈에 추가된 더 큰 실행기에 대한 액세스를 제한하는 정책을 사용할 수 있습니다.

누가 이 기능을 사용할 수 있나요?

대형 러너은(는) GitHub Team 플랜 또는 GitHub Enterprise Cloud 플랜을 사용하는 조직 및 기업만 사용할 수 있습니다.

참고: 이 문서의 정보 및 지침은 Linux 및 Windows 운영 체제의 더 큰 실행기에만 적용됩니다.

실행기 그룹 정보

  1. 그룹 목록에서 삭제하려는 그룹의 오른쪽에 있는 을 클릭합니다.
  2. 그룹을 제거하려면 그룹 제거를 클릭합니다.
  3. 확인 프롬프트를 검토하고 이 실행기 그룹 제거를 클릭합니다.

실행기 액세스 관리

참고: 워크플로가 더 큰 실행기에 작업을 보내려면 먼저 실행기 그룹에 대한 권한을 구성해야 합니다. 자세한 내용은 다음 섹션을 참조하세요.

실행기 그룹은 더 큰 실행기에서 작업을 실행할 수 있는 리포지토리를 제어하는 데 사용됩니다. 더 큰 실행기를 정의한 위치에 따라 관리 계층의 각 수준에서 그룹에 대한 액세스 권한을 부여해야 합니다.

  • 엔터프라이즈 수준의 실행기: 기본적으로 조직의 리포지토리는 엔터프라이즈 수준 실행기 그룹에 액세스할 수 없습니다. 엔터프라이즈 실행기 그룹에 대한 리포지토리 액세스 권한을 부여하려면 조직 소유자가 각 엔터프라이즈 실행기 그룹을 구성하고 액세스 권한이 있는 리포지토리를 선택해야 합니다.
  • 조직 수준의 실행기: 기본적으로 조직의 모든 리포지토리에는 조직 수준 실행기 그룹에 대한 액세스 권한이 부여됩니다. 액세스 권한이 있는 리포지토리를 제한하려면 조직 소유자 및 "조직 실행기 및 실행기 그룹 관리" 권한을 가진 사용자는 조직 실행기 그룹을 구성하고 액세스 권한을 가질 리포지토리를 선택해야 합니다.

예를 들어 다음 다이어그램에는 엔터프라이즈 수준에 grp-ubuntu-20.04-16core라는 된 실행기 그룹이 있습니다. octo-repo이라는 이름의 리포지토리가 그룹에서 실행기를 사용하려면 먼저 엔터프라이즈 수준에서 그룹을 구성하여 octo-org 조직의 액세스를 허용해야 합니다. 그런 다음, 에 대한 액세스를 허용하도록 조직 수준에서 그룹을 구성해야 합니다 octo-repo.

두 리포지토리에 대한 액세스를 허용하는 조직 구성을 사용하여 엔터프라이즈 수준에서 정의된 실행기 그룹을 보여 주는 다이어그램.

조직에 대한 실행기 그룹 만들기

경고: 고정된 IP 범위를 사용 중이라면, 개인 리포지토리에는 더 큰 실행기만 사용하는 것이 좋습니다. 리포지토리의 포크가 워크플로에서 코드를 실행하는 끌어오기 요청을 만들어 더 큰 실행기에서 위험한 코드를 실행할 수 있기 때문입니다.

참고: 실행기 그룹을 만들 때 리포지토리 및 워크플로가 실행기 그룹에 액세스할 수 있게 정의하는 정책을 선택해야 합니다. 실행기 그룹에 액세스할 수 있는 리포지토리 및 워크플로를 변경하려면 조직 소유자 및 "조직 실행기 및 실행기 그룹 관리" 권한을 가진 사용자가 조직에 대한 정책을 설정할 수 있습니다. 자세한 내용은 "엔터프라이즈에서 GitHub Actions에 대한 정책 적용"을(를) 참조하세요.

모든 조직에는 단일 기본 실행기 그룹이 있습니다. 조직 소유자 및 "조직 실행기 및 실행기 그룹 관리" 권한을 가진 사용자는 조직 수준의 실행기 그룹을 추가로 만들 수 있습니다. 사용자 지정 조직 역할에 대한 자세한 정보는 "사용자 지정 조직 역할 소개"을(를) 참조하세요.

실행기를 등록하면서 그룹이 지정되지 않은 경우, 자동으로 기본 그룹에 추가됩니다. 실행기를 기본 그룹에서 사용자 지정 그룹으로 이동할 수 있습니다. 자세한 내용은 실행기를 그룹으로 이동을 참조하세요.

REST API를 사용하여 실행기 그룹을 만드는 방법에 대한 자세한 내용은 “GitHub Actions에 대한 REST API 엔드포인트”을(를) 참조하세요.

  1. GitHub에서 조직의 기본 페이지로 이동합니다.

  2. 조직 이름에서 설정을 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    조직 프로필에 있는 여러 탭의 스크린샷. "설정" 탭이 진한 주황색으로 표시됩니다.

  3. 왼쪽 사이드바에서 작업을 클릭한 다음 실행기 그룹을 클릭합니다.

  4. “실행기 그룹” 섹션에서 새 실행기 그룹을 클릭합니다.

  5. 실행기 그룹의 이름을 입력합니다.

  6. 리포지토리 액세스에 대한 정책을 할당합니다.

    특정 리포지토리 목록 또는 조직의 모든 리포지토리에 액세스할 수 있도록 실행기 그룹을 구성할 수 있습니다. 기본적으로 프라이빗 리포지토리만 실행기 그룹의 실행기에서 액세스할 수 있지만 이를 재정의할 수 있습니다. 엔터프라이즈에서 공유한 조직의 실행기 그룹을 구성하는 경우 이 설정을 재정의할 수 없습니다.

  7. 워크플로 액세스에 대한 정책을 할당합니다.

    특정 워크플로 목록 또는 모든 워크플로에 액세스할 수 있도록 실행기 그룹을 구성할 수 있습니다. 엔터프라이즈에서 공유한 조직의 실행기 그룹을 구성하는 경우 이 설정을 재정의할 수 없습니다. 실행기 그룹에 액세스할 수 있는 워크플로를 지정하는 경우 리포지토리 이름, 소유자를 포함한 워크플로의 전체 경로를 사용해야 하며 워크플로를 분기, 태그 또는 전체 SHA에 고정해야 합니다. 예: octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main

    선택한 워크플로 내에서 직접 정의된 작업만 실행기 그룹에 액세스할 수 있습니다. 조직 소유 실행기 그룹은 엔터프라이즈의 다른 조직에서 워크플로에 액세스할 수 없습니다. 따라서 엔터프라이즈 소유 실행기 그룹을 만들어야 합니다. 1. 그룹 생성을 클릭하여 그룹을 만들고 정책을 적용합니다.

엔터프라이즈에 대한 실행기 그룹 만들기

경고: 고정된 IP 범위를 사용 중이라면, 개인 리포지토리에는 더 큰 실행기만 사용하는 것이 좋습니다. 리포지토리의 포크가 워크플로에서 코드를 실행하는 끌어오기 요청을 만들어 더 큰 실행기에서 위험한 코드를 실행할 수 있기 때문입니다.

엔터프라이즈는 액세스 관리를 위해 실행기를 그룹에 추가할 수 있습니다. 엔터프라이즈는 엔터프라이즈 계정의 특정 조직 또는 특정 워크플로에 액세스할 수 있는 실행기 그룹을 만들 수 있습니다. 조직 소유자는 엔터프라이즈 실행기 그룹에 추가 세분화된 리포지토리 또는 워크플로 액세스 정책을 할당할 수 있습니다. REST API를 사용하여 실행기 그룹을 만드는 방법에 대한 자세한 내용은 GitHub Actions REST API의 엔터프라이즈 엔드포인트를 참조하세요.

실행기를 등록하면서 그룹이 지정되지 않은 경우, 자동으로 기본 그룹에 추가됩니다. 실행기를 기본 그룹에서 사용자 지정 그룹으로 이동할 수 있습니다. 자세한 내용은 실행기를 그룹으로 이동을 참조하세요.

그룹을 만들 때 실행기 그룹에 액세스할 수 있는 조직을 정의하는 정책을 선택해야 합니다.

  1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 엔터프라이즈를 클릭합니다.

  2. 엔터프라이즈 목록에서 보려는 엔터프라이즈를 클릭합니다.

  3. 페이지 왼쪽의 엔터프라이즈 계정 사이드바에서 정책을 클릭합니다.

  4. " 정책"에서 작업을 클릭합니다.

  5. 실행기 그룹 탭을 클릭합니다.

  6. 새 실행기 그룹을 클릭합니다.

  7. “그룹 이름”에 실행기 그룹의 이름을 입력합니다.

  8. 조직 액세스에 대한 정책을 선택하려면 조직 액세스 드롭다운 메뉴를 선택하고 정책을 클릭합니다. 특정 조직 목록 또는 엔터프라이즈의 모든 조직에 액세스할 수 있도록 실행기 그룹을 구성할 수 있습니다.

  9. 워크플로 액세스에 대한 정책을 할당합니다.

    특정 워크플로 목록 또는 모든 워크플로에 액세스할 수 있도록 실행기 그룹을 구성할 수 있습니다. 엔터프라이즈에서 공유한 조직의 실행기 그룹을 구성하는 경우 이 설정을 재정의할 수 없습니다. 실행기 그룹에 액세스할 수 있는 워크플로를 지정하는 경우 리포지토리 이름, 소유자를 포함한 워크플로의 전체 경로를 사용해야 하며 워크플로를 분기, 태그 또는 전체 SHA에 고정해야 합니다. 예: octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main

    선택한 워크플로 내에서 직접 정의된 작업만 실행기 그룹에 액세스할 수 있습니다.

  10. 그룹 저장을 클릭하여 그룹을 만들고 정책을 적용합니다.

실행기 그룹에 고유한 이름 사용

GitHub Actions에서 실행기 그룹 이름은 조직 수준에서 고유해야 합니다. 즉, 조직에서는 더 이상 엔터프라이즈의 실행기 그룹과 동일한 이름을 가진 실행기 그룹을 만들 수 없습니다. 또한 엔터프라이즈의 그룹과 동일한 이름을 공유하는 실행기 그룹에 경고 배너가 표시되며 조직 그룹의 이름을 바꿔야 합니다.

모호성을 방지하기 위해 조직 및 엔터프라이즈에 중복된 실행기 그룹이 있는 경우 워크플로가 실패합니다. 문제를 해결하려면 조직 또는 엔터프라이즈에서 실행기 그룹 중 하나의 이름을 바꾸거나 워크플로 파일을 업데이트하여 실행기 그룹 이름에 접두사를 추가할 수 있습니다.

  • org/ 또는 organization/
  • ent/ 또는 enterprise/

예: 접두사를 사용하여 실행기 그룹 구분

예를 들어 조직에서 명명된 실행기 그룹 my-group과 엔터프라이즈에 이름이 다른 실행기 그룹 my-group가 있는 경우 워크플로 파일을 업데이트하여 org/my-group 또는 ent/my-group를 사용하여 두 그룹을 구분할 수 있습니다.

org/사용:

runs-on:
  group: org/my-group
  labels: [ self-hosted, label-1 ]

ent/사용:

runs-on:
  group: ent/my-group
  labels: [ self-hosted, label-1 ]

러너 그룹에 액세스할 수 있는 조직 변경하기

경고: 고정된 IP 범위를 사용 중이라면, 개인 리포지토리에는 더 큰 실행기만 사용하는 것이 좋습니다. 리포지토리의 포크가 워크플로에서 코드를 실행하는 끌어오기 요청을 만들어 더 큰 실행기에서 위험한 코드를 실행할 수 있기 때문입니다.

엔터프라이즈의 실행기 그룹의 경우 엔터프라이즈의 조직이 실행기 그룹에 액세스할 수 있는 항목을 변경할 수 있습니다.

  1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 엔터프라이즈를 클릭합니다.

  2. 엔터프라이즈 목록에서 보려는 엔터프라이즈를 클릭합니다.

  3. 페이지 왼쪽의 엔터프라이즈 계정 사이드바에서 정책을 클릭합니다.

  4. " 정책"에서 작업을 클릭합니다.

  5. 실행기 그룹 탭을 클릭합니다.

  6. "조직 액세스"의 드롭다운 메뉴에서 선택한 조직을 클릭합니다.

    1. 드롭다운 메뉴 오른쪽에 있는 을 클릭합니다.
    2. 팝업창에서 해당 실행기 그룹을 사용할 수 있는 조직을 확인란으로 선택합니다.
  7. 그룹 저장을 클릭합니다.

실행기 그룹에 액세스할 수 있는 조직 또는 리포지토리 변경

경고: 고정된 IP 범위를 사용 중이라면, 개인 리포지토리에는 더 큰 실행기만 사용하는 것이 좋습니다. 리포지토리의 포크가 워크플로에서 코드를 실행하는 끌어오기 요청을 만들어 더 큰 실행기에서 위험한 코드를 실행할 수 있기 때문입니다.

조직의 실행기 그룹의 경우 조직의 리포지토리에서 실행기 그룹에 액세스할 수 있는 리포지토리를 변경할 수 있습니다.

  1. 실행기 그룹이 있는 조직의 기본 페이지로 이동합니다.

  2. 설정을 클릭합니다.

  3. 왼쪽 사이드바에서 작업을 클릭한 다음 실행기 그룹을 클릭합니다.

  4. 그룹 목록에서 구성하려는 실행기 그룹을 클릭합니다.

  5. "리포지토리 액세스"의 드롭다운 메뉴에서 선택한 리포지토리를 클릭합니다.

    1. 드롭다운 메뉴 오른쪽에 있는 을 클릭합니다.
    2. 팝업창에서 해당 실행기 그룹에 액세스할 수 있는 리포지토리를 확인란으로 선택합니다.
  6. 그룹 저장을 클릭합니다.

실행기 그룹에 액세스할 수 있는 워크플로 변경

경고: 고정된 IP 범위를 사용 중이라면, 개인 리포지토리에는 더 큰 실행기만 사용하는 것이 좋습니다. 리포지토리의 포크가 워크플로에서 코드를 실행하는 끌어오기 요청을 만들어 더 큰 실행기에서 위험한 코드를 실행할 수 있기 때문입니다.

선택한 워크플로 또는 모든 워크플로를 실행하도록 실행기 그룹을 구성할 수 있습니다. 예를 들어 이 설정을 사용하여 실행기에서 저장된 비밀을 보호하거나 실행기 그룹이 재사용 가능한 특정 워크플로만 실행하도록 제한하여 배포 워크플로를 표준화할 수 있습니다. 엔터프라이즈에서 공유한 조직의 실행기 그룹을 구성하는 경우 이 설정을 재정의할 수 없습니다.

조직 실행기 그룹에 액세스할 수 있는 워크플로 변경

  1. 실행기 그룹이 있는 조직의 기본 페이지로 이동합니다.

  2. 설정을 클릭합니다.

  3. 왼쪽 사이드바에서 작업을 클릭한 다음 실행기 그룹을 클릭합니다.

  4. 그룹 목록에서 구성하려는 실행기 그룹을 클릭합니다.

  5. 워크플로 액세스에서 드롭다운 메뉴를 선택하고 선택한 워크플로를 클릭합니다.

  6. 아이콘을 클릭합니다.

  7. 실행기 그룹에 액세스할 수 있는 워크플로의 목록을 쉼표로 구분하여 입력합니다. 전체 경로를 사용합니다(리포지토리 이름 및 소유자 포함). 분기, 태그 또는 전체 SHA에 워크플로를 고정합니다. 예: octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main

    선택한 워크플로 내에서 직접 정의된 작업만 실행기 그룹에 액세스할 수 있습니다.

    조직 소유의 실행기 그룹은 엔터프라이즈의 다른 조직에서 워크플로에 액세스할 수 없습니다. 대신 엔터프라이즈 소유 실행기 그룹을 만들어야 합니다.

  8. 저장을 클릭합니다.

엔터프라이즈 실행기 그룹에 액세스할 수 있는 워크플로 변경

  1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 엔터프라이즈를 클릭합니다.

  2. 엔터프라이즈 목록에서 보려는 엔터프라이즈를 클릭합니다.

  3. 페이지 왼쪽의 엔터프라이즈 계정 사이드바에서 정책을 클릭합니다.

  4. " 정책"에서 작업을 클릭합니다.

  5. 실행기 그룹 탭을 클릭합니다.

  6. 그룹 목록에서 구성하려는 실행기 그룹을 클릭합니다.

  7. 워크플로 액세스에서 드롭다운 메뉴를 선택하고 선택한 워크플로를 클릭합니다.

  8. 아이콘을 클릭합니다.

  9. 실행기 그룹에 액세스할 수 있는 워크플로의 목록을 쉼표로 구분하여 입력합니다. 전체 경로를 사용합니다(리포지토리 이름 및 소유자 포함). 분기, 태그 또는 전체 SHA에 워크플로를 고정합니다. 예: octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main

    선택한 워크플로 내에서 직접 정의된 작업만 실행기 그룹에 액세스할 수 있습니다.

    조직 소유의 실행기 그룹은 엔터프라이즈의 다른 조직에서 워크플로에 액세스할 수 없습니다. 대신 엔터프라이즈 소유 실행기 그룹을 만들어야 합니다.

  10. 저장을 클릭합니다.

더 큰 실행기를 위한 프라이빗 네트워크 액세스 구성

Azure VNET에서 GitHub 호스트형 실행기를 사용할 수 있습니다. 이렇게 하면 실행기 네트워킹 정책의 모든 권한을 제공하면서 CI/CD의 GitHub관리 인프라를 사용할 수 있습니다. Azure VNET에 대한 자세한 내용은 Azure 문서의 Azure Virtual Network란?을 참조하세요.

Azure VNET에 연결하도록 엔터프라이즈 또는 조직을 구성한 경우 실행기 그룹에 가상 네트워크에 대한 액세스 권한을 부여할 수 있습니다. 자세한 정보는 "GitHub 호스팅 실행기를 사용하는 프라이빗 네트워킹 정보"을(를) 참조하세요.

실행기 그룹의 이름 변경

엔터프라이즈 및 조직 수준에서 실행기 그룹의 이름을 바꿀 수 있습니다.

조직 실행기 그룹의 이름 변경

  1. 실행기 그룹이 있는 조직의 기본 페이지로 이동합니다.
  2. 설정을 클릭합니다.
  3. 왼쪽 사이드바에서 작업을 클릭한 다음 실행기 그룹을 클릭합니다.
  4. 왼쪽 사이드바에서 작업을 클릭한 다음 실행기 그룹을 클릭합니다.
  5. "그룹 이름"의 텍스트 필드에 새 실행기 그룹 이름을 입력합니다.
  6. 저장을 클릭합니다.

엔터프라이즈 실행기 그룹의 이름 변경

  1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 엔터프라이즈를 클릭합니다.

  2. 엔터프라이즈 목록에서 보려는 엔터프라이즈를 클릭합니다.

  3. 페이지 왼쪽의 엔터프라이즈 계정 사이드바에서 정책을 클릭합니다.

  4. " 정책"에서 작업을 클릭합니다.

  5. 실행기 그룹 탭을 클릭합니다.

  6. 왼쪽 사이드바에서 작업을 클릭한 다음 실행기 그룹을 클릭합니다.

  7. "그룹 이름"의 텍스트 필드에 새 실행기 그룹 이름을 입력합니다.

  8. 저장을 클릭합니다.

실행기를 그룹으로 이동

등록 프로세스 중에 실행기 그룹을 지정하지 않으면 새 실행기는 기본 그룹에 자동으로 할당된 다음 다른 그룹으로 이동할 수 있습니다.

조직 실행기를 그룹으로 이동

  1. GitHub에서 조직의 기본 페이지로 이동합니다.

  2. 조직 이름에서 설정을 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    조직 프로필에 있는 여러 탭의 스크린샷. "설정" 탭이 진한 주황색으로 표시됩니다.

  3. 왼쪽 사이드바에서 작업을 클릭한 다음 길행기를 클릭합니다.

  4. “실행기” 목록에서 구성하려는 실행기를 클릭합니다.

  5. 실행기 그룹 드롭다운을 선택합니다.

  6. “그룹으로 실행기 이동”에서 실행기의 대상 그룹을 선택합니다.

엔터프라이즈 실행기를 그룹으로 이동

  1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 엔터프라이즈를 클릭합니다.

  2. 엔터프라이즈 목록에서 보려는 엔터프라이즈를 클릭합니다.

  3. 페이지 왼쪽의 엔터프라이즈 계정 사이드바에서 정책을 클릭합니다.

  4. " 정책"에서 작업을 클릭합니다.

  5. 실행기 탭을 클릭합니다.

  6. “실행기” 목록에서 구성하려는 실행기를 클릭합니다.

  7. 실행기 그룹 드롭다운을 선택합니다.

  8. “그룹으로 실행기 이동”에서 실행기의 대상 그룹을 선택합니다.

실행기 그룹 제거

실행기 그룹을 제거하려면 먼저 그룹에서 모든 실행기를 이동하거나 제거해야 합니다.

조직에서 실행기 그룹 제거

  1. 실행기 그룹이 있는 조직의 기본 페이지로 이동합니다.
  2. 설정을 클릭합니다.
  3. 왼쪽 사이드바에서 작업을 클릭한 다음 실행기 그룹을 클릭합니다.
  4. 그룹 목록에서 삭제하려는 그룹의 오른쪽에 있는 을 클릭합니다.
  5. 그룹을 제거하려면 그룹 제거를 클릭합니다.
  6. 확인 프롬프트를 검토하고 이 실행기 그룹 제거를 클릭합니다.

엔터프라이즈에서 실행기 그룹 제거

  1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 엔터프라이즈를 클릭합니다.

  2. 엔터프라이즈 목록에서 보려는 엔터프라이즈를 클릭합니다.

  3. 페이지 왼쪽의 엔터프라이즈 계정 사이드바에서 정책을 클릭합니다.

  4. " 정책"에서 작업을 클릭합니다.

  5. 실행기 그룹 탭을 클릭합니다.

  6. 그룹 목록에서 삭제하려는 그룹의 오른쪽에 있는 을 클릭합니다.

  7. 그룹을 제거하려면 그룹 제거를 클릭합니다.

  8. 확인 프롬프트를 검토하고 이 실행기 그룹 제거를 클릭합니다.