GitHub Actions 워크플로를 실행할 수 있는 사용자 제어하기
GitHub Actions 워크플로를 실행할 수 있는 사용자 제어하기
엔터프라이즈, 조직, 리포지토리 전반에서 누가 GitHub Actions 워크플로를 트리거할 수 있고 어떤 이벤트가 실행을 허용하는지 제어하는 방법을 알아볼게요.
워크플로 실행 보호(workflow execution protections)를 사용하면 누가 GitHub Actions 워크플로를 트리거할 수 있고 어떤 이벤트가 실행을 허용하는지 제어하는 허용 목록(allowlist)을 정의할 수 있어요. 자세한 내용은 Actions 정책 소개를 참고하세요.
[!NOTE] GitHub는 공개 리포지토리에서
pull_request_target이벤트를 차단하는 기본 정책을 추가했어요. 이 정책은 2026년 11월 2일에 적용될 예정이에요. 자세한 내용은 pull_request_target 안전하게 사용하기를 참고하세요.
보호 기능 추가 준비
룰셋(rulesets)처럼 워크플로 실행 보호도 같은 리포지토리, 조직, 엔터프라이즈의 다른 보호 기능과 함께 계층화돼요.
계정당 하나의 큰 정책을 만드는 대신, 명확하게 정의된 여러 정책을 만들고 계정 수준에 걸쳐 보호 기능을 계층화하는 것을 권장해요. 엔터프라이즈 소유자는 광범위하고 타협할 수 없는 정책을 엔터프라이즈 수준에서 만들 수 있어요. 그러면 조직 소유자와 리포지토리 관리자가 이런 제한에 추가할 수 있어요.
정의하는 각 정책에 대해 다음을 생각해 보세요:
-
어떤 조직 또는 리포지토리를 보호 대상으로 삼을지. 예를 들어 오픈소스 리포지토리는 누가 워크플로를 트리거할 수 있는지에 대해 더 엄격한 제한이 필요할 수 있어요. 가시성, 배포 상태, 사용자 지정 속성 같은 요인으로 리포지토리를 대상으로 삼을 수 있어요.
- 배포 상태는 조직의 연결된 아티팩트(linked artifacts) 페이지에서 나와요. 이 요인이 중요하다면 아티팩트가 배포될 때 배포 레코드를 업로드하고 있는지 확인하세요. 연결된 아티팩트 소개를 참고하세요.
- 사용자 지정 속성을 만들고 할당하려면 조직의 리포지토리 사용자 지정 속성 관리하기를 참고하세요.
-
어떤 워크플로를 보호할지. 예를 들어 프로덕션 코드를 배포하는 워크플로는 일정 수준의 보호가 필요할 수 있지만, 덜 민감한 자동화는 같은 수준의 보호가 필요하지 않을 수 있어요. 특정 워크플로 경로나 필수 워크플로로 정책 범위를 지정할 수 있어요.
-
대상으로 하는 리포지토리에서 누가 이 워크플로를 실행할 수 있어야 하는지. 특정 역할을 가진 사용자, 선택된 봇 계정, 특정 팀일 수 있어요. 이 사용자들을 조직 또는 엔터프라이즈 팀으로 그룹화해서 여러 룰셋 전반에서 쉽게 연락하고 참조할 수 있도록 고려하세요. 조직 팀 만들기 또는 엔터프라이즈 팀 만들기를 참고하세요.
워크플로 실행 정책 만들기
먼저 작업 중인 계정 수준에 대해 새 Actions 정책을 만드세요.
리포지토리 또는 조직에서:
- Settings(설정) 탭을 클릭하세요.
- 왼쪽 사이드바의 Actions 아래에서 Policies(정책) 를 클릭하세요.
엔터프라이즈에서:
- Policies(정책) 탭을 클릭하세요.
- 왼쪽 사이드바에서 Actions를 클릭한 다음 Policies(정책) 를 클릭하세요.
[!TIP] 정책을 프로그래밍 방식으로 관리하려면 GitHub Actions 정책용 REST API 엔드포인트를 참고하세요.
정책 구성
다음으로 새 정책을 만드세요.
- 정책 이름을 선택하세요.
- 적용 상태(enforcement status)를 선택하세요. 평가(Evaluate) 를 선택하면(GitHub Enterprise Cloud 전용) 정책 인사이트에서 사용자가 제한에 언제 도달할지 모니터링할 수 있어요.
- 원하는 워크플로, 조직 또는 리포지토리를 대상으로 지정하세요.
- 다음 워크플로 실행 보호 기능을 구성하세요.
액터 제한(Restrict actors)
기본적으로 리포지토리에 쓰기 권한이 있는 모든 사용자가 워크플로를 트리거할 수 있어요. Actor 규칙을 사용하면 코드를 기여하는 사람과 CI를 실행하는 사람을 분리해서, 기여자에게 워크플로를 실행할 권한은 주지 않고 쓰기 권한만 줄 수 있어요.
허용된 액터만 대상 리포지토리에서 지정된 워크플로를 실행할 수 있어요. 이벤트도 제한하면 이 사용자들은 허용된 이벤트로만 워크플로를 트리거할 수 있어요. 허용되지 않은 액터는 지정된 워크플로를 전혀 실행할 수 없어요.
GitHub 기능은 GitHub Actions에서 실행되는 내장 프로세스에 대해 이 제한에서 면제돼요. 하지만 dependabot[bot] 같은 GitHub 기능과 연결된 신원이 실행해야 하는 워크플로를 만들었다면 그 신원을 허용된 액터로 추가해야 해요.
이벤트 제한(Restrict events)
이벤트 규칙은 push, pull_request, pull_request_target, workflow_dispatch 같은 어떤 이벤트가 허용되는지 제어해요.
정책 평가
정책 인사이트(policy insights)를 보고 차단된(활성 정책의 경우) 또는 차단되었을("평가" 정책의 경우) 워크플로 실행을 확인할 수 있어요. 이는 정책이 의도대로 동작하고 불필요한 마찰을 일으키지 않는지 확인하는 좋은 방법이에요.
인사이트를 보려면 Policy insights 페이지를 클릭하세요. 리포지토리, 조직 또는 엔터프라이즈 사이드바의 GitHub Actions 정책 페이지 바로 아래에서 찾을 수 있어요.