필요한 정보 모아보기
테크

GitHub Actions 워크플로 실행 보호 기능 정식 출시

#GitHub Actions#보안#CI/CD

핵심 내용

GitHub Actions 워크플로 실행 보호(workflow execution protections)는 누가·어떤 이벤트가 워크플로를 실행할 수 있는지 허용목록으로 통제하는 기능으로, 이번에 정식 출시됐다. 허용목록 기반으로 동작하며, 누가 워크플로를 실행할 수 있는지 정하는 "액터 규칙"과 어떤 이벤트가 워크플로를 시작시킬 수 있는지 정하는 "이벤트 규칙" 두 가지로 구성된다. 워크플로 파일 단위로 다른 정책을 적용할 수 있어서, 예를 들어 deploy.yml은 특정 팀만 실행하도록 제한하고 일반 CI 워크플로는 모든 기여자에게 열어두는 식의 세밀한 설정이 가능하다. 규칙을 실제로 적용하기 전에 어떤 워크플로가 차단될지 미리 확인하는 "평가 모드"도 제공된다.

가장 중요한 적용 시나리오는 pull_request_target 이벤트다. 이 이벤트는 대상 저장소의 시크릿에 접근할 수 있는 컨텍스트에서 실행되기 때문에, 포크에서 온 신뢰할 수 없는 코드가 실행되면 파이프라인이 오염될 위험이 있다. 이 때문에 공개 저장소에는 기본적으로 pull_request_target을 비활성화하는 규칙이 적용되며, 2026년 11월 2일부터 자동으로 시행된다. 규칙은 REST API를 통해 엔터프라이즈·조직·저장소 단위로 프로그래밍 방식으로 관리할 수 있다.

사용 방법

REST API로 엔터프라이즈/조직/저장소 단위 규칙을 등록하는 방식이다. 예를 들어 배포용 워크플로만 특정 팀으로 제한하고 싶다면, deploy.yml을 대상으로 한 액터 규칙에 허용할 팀만 등록하고, 나머지 CI 워크플로 파일에는 규칙을 걸지 않으면 기존처럼 모든 기여자에게 열려 있다. 규칙을 실제로 켜기 전에는 "평가 모드"로 먼저 등록해서 어떤 실행이 차단 대상이 되는지 미리 확인해보는 것이 안전하다.

특히 이 상황이라면

이건 이론적인 위험이 아니다. GitGuardian의 2026년 보고서에 따르면 2025년 credential 탈취 사고의 59%가 개발자 PC가 아니라 CI/CD 러너에서 발생했고, 2026년 4월에는 pull_request_target을 노린 자동화 공격이 26시간 만에 475개의 악성 PR을 열기도 했다.

포크 PR을 받는 공개 저장소를 관리한다면 11월 2일 이후를 미리 대비해두는 게 좋다. pull_request_target을 의도적으로 쓰고 있었다면 그날부터 기본 차단되니, 예외 처리 없이 넘어가면 워크플로가 갑자기 멈추는 걸 보게 된다. 배포처럼 민감한 워크플로만 따로 통제하고 싶은 팀에게도 쓸모가 있다 — CI는 그대로 열어두고 deploy.yml만 특정 팀으로 좁히는 식으로 세밀하게 나눌 수 있다.

미리 볼 것들:

  1. 저장소에 pull_request_target을 쓰는 워크플로가 있는지 검색해본다.
  2. 11월 2일 전에 평가 모드로 어떤 실행이 막히는지 확인한다.
  3. 민감한 워크플로에는 별도 액터 규칙(허용 팀)을 걸어둔다.
출처 github.blog