Skip to main content

엔터프라이즈에서 GitHub Actions에 대한 정책 적용

정책을 적용하여 엔터프라이즈 내에서 GitHub Actions를 사용하는 방법을 관리할 수 있습니다.

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

Enterprise owners

GitHub Actions에 대한 정책은 무엇입니까?

엔터프라이즈 정책은 엔터프라이즈 구성원이 GitHub Actions를 사용할 때 사용할 수 있는 옵션을 제어합니다.

엔터프라이즈 정책을 시행하지 않으면 조직 소유자 및 "조직 작업 정책 관리" 권한이 있는 사용자가 조직의 GitHub Actions에 대한 전체 제어 권한을 갖습니다.

정책 적용

  1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭합니다.
  2. 사용자 환경에 따라 사용자 엔터프라이즈를 클릭하거나 사용자 엔터프라이즈를 클릭한 다음, 보고 싶은 엔터프라이즈를 클릭합니다.
  3. 페이지 왼쪽의 엔터프라이즈 계정 사이드바에서 정책을 클릭합니다.
  4. " 정책"에서 작업을 클릭합니다.
  5. 각 정책을 구성한 후 저장을 클릭합니다.

"정책" 페이지의 각 섹션에 대한 자세한 내용은 계속 읽어보세요.

정책

"정책" 섹션에서 다음 옵션을 사용하여 엔터프라이즈 내의 조직에서 GitHub Actions을(를) 사용할 수 있는 조직을 제어할 수 있습니다.

  • 모든 조직에 GitHub Actions 사용 설정
  • 특정 조직에 GitHub Actions 사용 설정
  • 모든 조직에 GitHub Actions 사용 중지

다음 옵션을 사용하여 공용 작업 및 재사용 가능한 워크플로의 사용을 제한할 수도 있습니다.

  • 모든 작업 and reusable workflows 허용: 작성자나 정의한 위치에 관계없이 또는 재사용 가능한 워크플로 작업을 모두 사용할 수 있습니다.
  • 엔터프라이즈 작업 및 재사용 가능한 워크플로: 엔터프라이즈 내 리포지토리에 정의된 작업 및 재사용 가능한 워크플로만 사용할 수 있습니다. actions/checkout 작업과 같이 GitHub가 만든 작업에 대한 모든 액세스를 차단합니다.
  • 엔터프라이즈를 허용하고 엔터프라이즈가 아닌 작업 및 재사용 가능한 워크플로 선택____: 엔터프라이즈 내 리포지토리에 정의된 모든 작업 또는 재사용 가능한 워크플로을(를) 사용할 수 있으며, 지정한 조건과 일치하는 또는 재사용 가능한 워크플로을(를) 사용할 수 있습니다.

엔터프라이즈를 허용하고 엔터프라이즈가 아닌 작업 및 재사용 가능한 워크플로 선택____

이 옵션을 선택하면 엔터프라이즈 내의 작업 및 재사용 가능한 워크플로이(가) 허용되며, 다른 작업 및 재사용 가능한 워크플로을(를) 허용하기 위한 다음 옵션이 제공됩니다.

  • GitHub에서 만든 작업을 허용합니다. actionsgithub 조직에 있는 GitHub에서 만든 모든 작업을 허용합니다.
  • 확인된 작성자의 마켓플레이스 작업 허용: 로 레이블이 지정된 확인된 작성자가 만든 모든 GitHub Marketplace 작업을 허용합니다.
  • 지정된 작업 및 재사용 가능한 워크플로 허용: 지정한 작업 및 재사용 가능한 워크플로를 허용합니다. 개별 작업 및 재사용 가능한 워크플로 또는 전체 조직 및 리포지토리를 지정할 수 있습니다.

작업 및 재사용 가능한 워크플로를 지정할 때 다음 구문을 사용합니다.

  • 특정 태그에 대한 액세스를 제한하거나 작업 또는 재사용 가능한 워크플로의 SHA를 커밋하려면 워크플로에서 사용된 것과 동일한 구문을 사용하여 작업 또는 재사용 가능한 워크플로를 선택합니다.
    • 작업의 경우 구문은 OWNER/REPOSITORY@TAG-OR-SHA입니다. 예를 들어 actions/javascript-action@v1.0.1을 사용하여 태그를 선택하거나 actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f를 사용하여 SHA를 선택합니다.
    • 재사용 가능한 워크플로의 경우 구문은 OWNER/REPOSITORY/PATH/FILENAME@TAG-OR-SHA입니다. 예들 들어 octo-org/another-repo/.github/workflows/workflow.yml@v1입니다.
  • 패턴을 지정하려면 와일드카드 문자 *를 사용합니다.
    • space-org로 시작하는 조직에서 모든 작업 및 재사용 가능한 워크플로를 허용하려면 space-org*/*를 사용합니다.
    • octocat으로 시작하는 리포지토리에서 모든 작업 및 재사용 가능한 워크플로를 허용하려면 */octocat**@*을 사용합니다.

실행기

기본적으로 리포지토리에 대한 관리자 액세스 권한이 있는 모든 사용자는 리포지토리에 대한 자체 호스트형 실행기를 추가할 수 있으며 자체 호스트형 실행기에는 위험이 있습니다.

  • 자체 호스트형 실행기가 임시 클린 가상 머신에서 호스트된다는 보장은 없습니다. 이에 따라 워크플로에서 신뢰할 수 없는 코드로 손상될 수 있습니다.
  • 리포지토리를 포크하고 끌어오기 요청을 열 수 있는 모든 사용자는 자체 호스트형 실행기 환경을 손상시켜 리포지토리에 대한 쓰기 액세스 권한이 있을 수 있는 비밀 및 GITHUB_TOKEN에 액세스할 수 있습니다.

"실행기" 섹션에서 리포지토리 수준 자체 호스트형 실행기를 사용하지 않도록 설정하여 이러한 위험을 중재할 수 있습니다.

  • 모든 조직에 대해 사용 안 함: 리포지토리 수준에서 실행기를 만들지 못하게 합니다.
  • 모든 EMU(Enterprise Managed User) 리포지토리에서 사용 안 함: 관리형 사용자 계정이(가) 소유한 리포지토리에 대한 실행기를 만들지 못하도록 합니다.

Note

리포지토리 수준 자체 호스트형 실행기 생성을 사용하지 않도록 설정한 경우 워크플로는 엔터프라이즈 또는 조직 수준에서 자체 호스트형 실행기에 계속 액세스할 수 있습니다.

아티팩트 및 로그 보존

기본적으로 워크플로에서 생성된 아티팩트 및 로그 파일은 90일 동안 보존됩니다. 보존 기간을 변경할 수 있습니다.

  • 퍼블릭 리포지토리의 경우 1일에서 90일 사이의 기간을 구성할 수 있습니다.
  • 프라이빗 및 내부 리포지토리의 경우 1일에서 400일 사이의 기간을 구성할 수 있습니다.

변경 내용은 새 아티팩트 및 로그 파일에만 적용됩니다.

외부 협력자의 끌어오기 포크 요청 워크플로

누구나 퍼블릭 리포지토리를 포크한 다음, 끌어오기 요청을 제출하여 리포지토리의 워크플로에 대한 변경 사항을 제안할 수 있습니다. 남용을 방지하기 위해 워크플로는 일부 기여자가 만든 끌어오기 요청에서 자동으로 실행되지 않습니다.

승인이 필요한 끌어오기 요청을 실행하기 전에 구성할 수 있습니다.

Warning

처음 참가자(처음 두 설정)에 대해서만 승인이 필요한 경우 커밋 또는 끌어오기 요청을 리포지토리에 병합한 사용자에게는 승인이 필요하지 않습니다. 악의적인 사용자는 작성한 끌어오기 요청의 일부 또는 다른 사용자의 끌어오기 요청의 일부로 관리자가 수락한 간단한 오타 또는 기타 무해한 변경 내용을 가져와서 이 요구 사항을 충족할 수 있습니다.

  • GitHub를 처음 사용하는 기여자에 대한 승인 필요. 리포지토리에 커밋한 적이 없고 새 GitHub 계정이 있는 사용자에 대한 승인이 필요합니다.
  • 처음 참여하는 기여자에 대한 승인 필요. 리포지토리에 커밋한 적이 없는 사용자에 대한 승인이 필요합니다.
  • 모든 외부 공동 작업자에 대한 승인 필요. 조직 구성원이 아닌 모든 사용자에 대한 승인이 필요합니다.

Note

pull_request_target 이벤트에 의해 트리거된 베이스 분기의 워크플로는 승인 설정에 관계없이 항상 실행됩니다.

프라이빗 리포지토리의 포크 끌어오기 요청 워크플로

사용자가 프라이빗 및 내부 리포지토리의 pull_request 이벤트에 대해 워크플로를 실행하는 방법을 제어할 수 있습니다.

  • 포크 끌어오기 요청에서 워크플로를 실행합니다. 사용자는 포크 끌어오기 요청에서 워크플로를 실행할 수 있습니다. 기본적으로 워크플로는 비밀에 대한 액세스 권한이 없는 읽기 전용 권한이 있는 GITHUB_TOKEN를 사용합니다.
  • 끌어오기 요청에서 워크플로에 쓰기 토큰을 보냅니다. 워크플로는 쓰기 권한이 있는 GITHUB_TOKEN를 사용합니다.
  • 끌어오기 요청에서 워크플로에 비밀을 보냅니다. 모든 비밀은 끌어오기 요청에 사용할 수 있습니다.
  • 포크 끌어오기 요청 워크플로에 대한 승인이 필요합니다. 쓰기 권한이 없는 공동 작업자의 끌어오기 요청에 대한 워크플로는 실행하기 전에 쓰기 권한이 있는 사람의 승인이 필요합니다.

엔터프라이즈에 대한 정책을 사용할 수 있도록 설정한 경우, 개별 조직 또는 리포지토리에서 정책을 선택적으로 사용하지 않도록 설정할 수 있습니다. 엔터프라이즈에 대해 정책을 사용하지 않도록 설정한 경우, 개별 조직 또는 리포지토리에서 정책을 사용하도록 설정할 수 없습니다.

워크플로 권한

"워크플로 권한" 섹션에서 GITHUB_TOKEN에 부여되는 기본 권한을 설정할 수 있습니다.

  • 읽기 및 쓰기 권한: 기본적으로 GITHUB_TOKEN는 모든 범위에 대한 읽기 및 쓰기 액세스 권한을 갖습니다.
  • 리포지토리 콘텐츠 및 패키지 읽기 권한: 기본적으로 GITHUB_TOKENcontentspackages 범위에 대한 읽기 권한만 갖습니다. 더 많은 권한 설정은 개별 조직 또는 리포지토리에 대한 기본값으로 선택할 수 없습니다.

리포지토리에 대한 쓰기 액세스 권한이 있는 모든 사용자는 워크플로 파일의 permissions 키를 편집하여 특정 워크플로에 대해 GITHUB_TOKEN에 부여된 권한을 수정할 수 있습니다.

GitHub Actions에서 끌어오기 요청을 만들고 승인하도록 허용하는 것은 기본적으로 비활성화되어 있습니다. 이 설정을 사용하도록 설정하면 GITHUB_TOKEN에서 끌어오기 요청을 만들고 승인할 수 있습니다.