LabHub

블로그

GitHub Actions ARC 운영 가이드: Ephemeral Runner, Scale Set, 보안 경계

한국어English日本語

GitHub Actions ARC 운영 가이드

들어가며

GitHub Actions를 조직 규모로 운영하기 시작하면 self-hosted runner는 단순 비용 절감 수단이 아니라 실행 격리와 보안 경계를 설계하는 인프라가 됩니다. 특히 Kubernetes 환경에서는 Actions Runner Controller, ARC를 쓰는 순간 다음 질문이 중요해집니다.

이 글은 GitHub 공식 ARC 문서를 기준으로 운영 관점의 판단 기준을 정리합니다.

왜 Ephemeral Runner가 기본값에 가까운가

장수형 runner는 빠르게 시작할 수 있지만, 시간이 지날수록 상태가 누적됩니다.

반면 ephemeral runner는 job 또는 짧은 수명 주기 후 사라지므로 다음 장점이 있습니다.

운영 난이도는 조금 올라가지만, 보안과 재현성을 생각하면 기본 선택지로 두는 편이 더 안전합니다.

Scale Set 경계는 workload와 trust boundary 기준으로 나눈다

ARC를 처음 도입할 때 흔한 실수는 조직 전체를 하나의 giant scale set으로 묶는 것입니다. 이렇게 하면 자원 공유는 쉬워 보여도, 보안 경계와 우선순위 제어가 약해집니다.

더 나은 기준은 다음과 같습니다.

예시:

scale set용도분리 이유
public-ci외부 기여 PR 검증신뢰되지 않은 코드 격리
internal-build내부 서비스 빌드내부 패키지, 캐시 접근 허용
deploy-ops배포와 운영 자동화강한 자격 증명과 승인 경계 필요

보안은 runner 자체보다 주변 경계가 좌우한다

runner 보안은 단순히 컨테이너 이미지를 최신으로 유지하는 문제보다 넓습니다.

꼭 봐야 할 보안 경계

특히 untrusted pull request를 처리하는 runner와 배포 자격 증명을 가진 runner를 같은 경계에 두는 것은 피해야 합니다.

이미지 전략은 "빠른 시작"과 "깨끗한 실행" 사이 균형이다

ephemeral runner를 쓰면 이미지 전략이 중요해집니다. 이미지가 너무 비어 있으면 매 job 설치 비용이 커지고, 너무 무거우면 pull 시간이 커집니다.

실무적으로는 다음 방식이 균형이 좋습니다.

네트워크와 시크릿은 최소 권한 원칙으로

ARC runner는 CI 워크로드지만, 실제로는 매우 강한 권한이 붙기 쉬운 실행 환경입니다. 따라서 다음 기준을 권장합니다.

운영 지표와 체크리스트

운영 중에는 다음을 봐야 합니다.

운영 체크리스트

흔한 안티패턴

모든 저장소를 하나의 runner 그룹에 넣는다

운영은 단순해 보여도 보안과 우선순위 제어가 무너집니다.

장수형 runner에 상태를 많이 남긴다

빠른 빌드처럼 보이지만, drift와 오염 가능성이 커집니다.

배포 자격 증명과 외부 PR 검증을 같은 경계에서 처리한다

가장 피해야 할 구성입니다.

마무리

ARC 운영의 핵심은 Kubernetes 위에서 runner를 띄우는 기술이 아니라, 어떤 job을 어떤 신뢰 경계에서 실행할지 결정하는 운영 모델입니다. ephemeral runner, 분리된 scale set, 최소 권한 네트워크와 시크릿 전략이 그 모델의 중심입니다.

References

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다