워크플로 실행 보호를 사용하면 워크플로를 트리거 GitHub Actions 할 수 있는 사용자와 워크플로를 실행할 수 있는 이벤트를 제어하는 허용 목록을 정의할 수 있습니다. 자세한 내용은 Actions 정책 정보을 참조하세요.
참고
GitHub 는 공용 리포지토리에서 이벤트를 차단하는 pull_request_target 기본 정책을 추가했습니다. 이 정책은 2026년 11월 2일에 적용됩니다.
pull_request_target 안전하게 사용을(를) 참조하세요.
보호 추가 준비
규칙 집합과 마찬가지로 워크플로 실행 보호 계층은 동일한 리포지토리, 조직 또는 엔터프라이즈의 다른 보호를 사용합니다.
계정당 하나의 큰 정책을 만드는 대신 명확하게 정의된 여러 정책을 만들고 계정 수준에서 보호를 계층화하는 것이 좋습니다. 엔터프라이즈 소유자는 협상할 수 없는 광범위한 정책에 대해 엔터프라이즈 수준에서 보호를 만들 수 있습니다. 조직 소유자 및 리포지토리 관리자는 이러한 제한 사항에 추가할 수 있습니다.
정의하는 각 정책에 대해 다음을 고려해야 합니다.
-
보호 대상이 될 조직 또는 리포지토리입니다. 예를 들어 오픈 소스 리포지토리에는 워크플로를 트리거할 수 있는 사용자에 대한 엄격한 제한이 필요할 수 있습니다. 표시 유형, 배포 상태 또는 사용자 지정 속성과 같은 요소별로 리포지토리를 대상으로 지정할 수 있습니다.
- 배포 상태는 조직의 linked artifacts page에서 가져옵니다. 이것이 중요한 요소인 경우 아티팩트가 배포될 때 배포 레코드를 업로드하는지 확인합니다. 연동된 아티팩트 개요을(를) 참조하세요.
- 사용자 지정 속성을 만들고 할당하려면 조직의 리포지토리에 대한 사용자 지정 속성 관리을 참조하세요.
-
어떤 워크플로가 보호될지## 예를 들어 프로덕션 코드를 배포하는 워크플로에는 특정 수준의 보호가 필요할 수 있지만 덜 중요한 자동화는 동일한 수준의 보호가 필요하지 않을 수 있습니다. 정책 범위를 특정 워크플로 경로 또는 필요한 워크플로로 지정할 수 있습니다.
-
대상으로 하는 리포지토리에서 이러한 워크플로를 실행할 수 있는 사람은 누구인가요? 특정 역할, 선택한 봇 계정 또는 특정 팀을 가진 사용자일 수 있습니다. 여러 규칙 집합에서 쉽게 연락하고 참조할 수 있도록 조직 또는 엔터프라이즈 팀에서 이러한 사용자를 그룹화해 보세요. 조직 팀 만들기 또는 엔터프라이즈 팀 만들기을(를) 참조하세요.
워크플로 실행 정책 만들기
먼저 작업 중인 계정 수준에 대한 새 작업 정책을 만듭니다.
리포지토리 또는 조직에서:
- 설정 탭을 클릭합니다.
- 왼쪽 사이드바의 작업에서 정책을 클릭합니다.
엔터프라이즈에서:
- 정책 탭을 클릭합니다.
- 왼쪽 사이드바에서 작업을 클릭한 다음 정책을 클릭합니다.
팁
프로그래밍 방식으로 정책을 관리하려면 GitHub Actions 정책에 대한 REST API 엔드포인트을 참조하세요.
정책 구성
다음으로, 새 정책을 만듭니다.
- 정책의 이름을 선택합니다.
- 적용 상태를 선택합니다. 평가만GitHub Enterprise Cloud을 선택하면 사용자가 정책 인사이트의 제한에 도달한 시기를 모니터링할 수 있습니다.
- 원하는 워크플로, 조직 또는 리포지토리를 대상으로 지정합니다.
- 다음 워크플로 실행 보호를 구성합니다.
행위자 제한
기본적으로 리포지토리에 대한 쓰기 권한이 있는 모든 사용자는 워크플로를 트리거할 수 있습니다. 행위자 규칙을 사용하면 코드를 작성하는 사람과 CI를 실행하는 사용자를 구분할 수 있으므로 워크플로를 실행할 수 있는 기능을 부여하지 않고도 참가자에게 쓰기 권한을 부여할 수 있습니다.
허용되는 행위자만 대상 리포지토리에서 지정된 워크플로를 실행할 수 있습니다. 또한 이벤트를 제한하는 경우 이러한 사용자는 허용된 이벤트로만 워크플로를 트리거할 수 있습니다. 허용되지 않는 행위자는 지정된 워크플로를 전혀 실행할 수 없습니다.
GitHub 기능은 실행되는 GitHub Actions기본 제공 프로세스에 대해 이러한 제한 사항에서 제외됩니다. 그러나 GitHub와 같은 dependabot[bot] 기능에 연결된 ID로 실행되어야 하는 워크플로를 만든 경우, 이 ID를 허용된 작업 주체로 추가해야 합니다.
이벤트 제한
이벤트 규칙은 허용되는 이벤트(예: push, pull_request``pull_request_target및 workflow_dispatch)를 제어합니다.
lockfile 필요함
잠금 파일 요구 보호는 종속성이 종속성 잠금 파일에 고정되지 않은 경우, 다른 작업에 대한 종속성이 있는 워크플로 실행(run)을 차단합니다. 이렇게 하면 지정된 워크플로가 런타임에 태그 또는 분기가 가리키는 것이 아니라 예측 가능하고 검증된 코드를 실행할 수 있습니다. 워크플로 종속성 락파일을(를) 참조하세요.
이 보호를 활성으로 설정하기 전에 대상으로 하는 리포지토리에서 잠금 파일을 생성하고 확인합니다. 그렇지 않으면 준비되지 않은 리포지토리의 워크플로 실행이 차단됩니다. 단계적 배포에 대해서는 액션 종속성에 lockfile 적용을 참조하세요.
잠금 파일을 채택할 때 작업을 전체 길이 커밋 SHA에 고정하도록 요구 옵션을 활성화된 상태로 유지할 수 있습니다. lockfile로 관리되는 종속성에 대해 GitHub는 잠긴 커밋 SHA를 사용하여 이 요구 사항을 평가합니다. 스테이징된 롤아웃 중에 정책을 사용하도록 설정하면 아직 잠금 파일을 채택하지 않은 워크플로에 대한 SHA 고정 적용이 유지됩니다.
정책 평가
정책 인사이트를 확인하여 차단된 워크플로 실행(활성 정책의 경우) 또는 차단되었을 워크플로 실행("평가" 정책의 경우)을 볼 수 있습니다. 이는 정책이 의도한 대로 작동하고 불필요한 마찰을 일으키지 않는지 확인하는 좋은 방법입니다.
인사이트를 보려면 정책 인사이트 페이지를 클릭합니다. 리포지토리, 조직 또는 엔터프라이즈의 사이드바에서 GitHub Actions 정책 페이지 바로 아래에서 찾을 수 있습니다.