GitHub Actions에서 배포 및 서버 접근 시 보안을 강화하고 키 관리의 복잡성을 줄여줄 새로운 오픈소스 도구 'oidc-ssh-ca'가 공개되었습니다. 이 프로젝트는 기존의 장기 SSH 개인 키를 GitHub Secrets에 저장하는 방식 대신, OIDC(OpenID Connect)를 활용해 단기 SSH 인증서를 발급하는 방식을 제안합니다. 워크플로우가 실행될 때마다 임시 키 쌍을 생성하고 GitHub OIDC 토큰으로 신원을 증명하면, 단 몇 분만 유효한 SSH 사용자 인증서를 받아 서버에 안전하게 접근할 수 있습니다.
'oidc-ssh-ca'는 GitHub Actions 워크플로우의 ID를 SSH 접근 권한의 단위로 삼아 보안을 한층 강화합니다. 예를 들어, 특정 워크플로우는 특정 명령어(/usr/local/bin/deploy-prod)만 실행하도록 강제할 수 있어, 설령 인증서가 유출되더라도 일반적인 셸 접근으로는 재사용될 수 없습니다. 모든 발급된 인증서는 감사(audit) 목적으로 기록되며, 서버는 오직 CA(인증 기관) 공개 키만 신뢰하므로 authorized_keys 파일을 배포하거나 관리할 필요가 없어집니다. 이 도구는 Vault, OpenBao, Teleport와 같은 복잡한 솔루션을 대체하기보다는, GitHub Actions 내에서 장기 SSH 키를 단기 OIDC 기반 인증서로 전환하는 데 초점을 맞춘 가볍고 단일 바이너리 형태의 솔루션입니다.
이러한 접근 방식은 CI/CD 파이프라인의 보안 취약점을 크게 줄일 수 있다는 점에서 중요합니다. 장기 키는 유출 시 심각한 보안 위협이 되지만, 단기 인증서는 유효 기간이 짧고 특정 명령어로 제한될 수 있어 공격 표면을 최소화합니다. 또한, 키 회전(key rotation) 및 관리에 드는 운영 부담을 CA 키 하나로 집중시켜 효율성을 높일 수 있습니다. 개발팀은 policy.yaml 파일을 통해 워크플로우별 접근 정책을 명확히 정의하고 검토할 수 있어, 배포 프로세스의 투명성과 통제력을 확보하는 데 기여할 것입니다.