세 가지 통증: 영구 키가 조용히 블라스트 반경을 키운다
첫째, 아이덴티티가 파이프라인 수명에서 벗어난다.저장소 이름 변경·포크 상속으로 오래된 비밀이 남고, 감사에서 어떤 워크플로가 sftp_prod인지 발굴해야 한다. 여러 팀이 같은 Unix 계정을 쓰는 원격 Mac에서는 OpenSSH 로그가 publickey 성공만 보여 Organization·Group까지 연결하기 어렵다.
둘째, 시크릿 평면이 비대해져 최소 권한을 깬다.조직 시크릿은 편하지만 실험 워크플로까지 프로덕션 업로드 경로에 닿을 수 있다. base64 키를 echo 하면 러너 로그·캐시에 남는다. 디렉터리 경계만큼 시크릿 범위도 엄격히 설계한다.
셋째, 로테이션 일정은 사고까지 미뤄진다.단명 토큰은 만료를 일상화하지만 정적 키는 분기 작업으로 잊히기 쉽다. 체크섬 게이트·원자적 릴리스와 같은 변경 관리에 자격 관리를 둔다.
보충: 규정은 증명 가능한 폐기·직무 분리를 요구한다. OIDC 클레임으로 staging/production를 경계화하고 run id·issuer·principal을 인증서 확장과 대조하라. 고병렬에서 동일 비밀 재사용은 유출 시 반경을 키우므로 계정이나 키를 분할하라.
자격 모델: OIDC·deploy key·PAT·SSH 인증서
GitHub Actions OIDC / GitLab JWT는 러너가 토큰 교환 서비스에 신원을 증명하고 단명 SSH 키나 사용자 인증서를 발급받게 한다. 신뢰 뿌리를 정적 파일에서 감사 가능한 사슬로 옮긴다. 발급기에는 MFA·패치·속도 제한·SIEM이 필요하다. 발급 실패를 무시하면 개발자 PC 수동 업로드라는 섀도 IT로 회귀한다.
deploy key는 단일 저장소·단일 대상 접두사에 규율 있는 소규모 팀에 적합하다. 읽기 전용과 쓰기를 분리하고 공개 키 주석에 워크플로와 담당자를 적는다. PAT는 주로 HTTPS Git용이며 SFTP와 같은 시크릿 이름에 두지 않는다. SSH 인증서는 TTL·Principal을 실어 chroot와 잘 맞는다.
교환 엔드포인트와 서명 키도 고가치 자산이며 실패 알림과 수동 폴백 절차를 마련한다.
의사결정 매트릭스
방화벽 변경 티켓과 같은 문서에 결론을 남긴다.
| 모델 | 적합 상황 | 노출 창 | 운영 부담 |
|---|---|---|---|
| 장수명 deploy key | 최소 팀·저빈도 릴리스 | 높음 | 초기 낮음·장기 높음 |
| OIDC→단명 SSH | 중간 규모·규제·클레임 경계 | 낮음(분 단위) | 중고(HA) |
| SSH 사용자 인증서 | 기존 CA | 중저 | 중 |
| Unix 분할만 | 이행 중 | 중 | 중저 |
자격을 세분화해도 MaxSessions 압력은 남는다.
실무: GitHub Actions에서 sshd까지 여섯 단계 이상
스테이징에서 검증하고 sshd 리로드 시 두 세션을 유지한다.
# 1 OIDC 활성화(공식 문서)
# 2 JWT 검증 후 RUNNER_TEMP에 단명 ed25519 또는 사용자 인증서 기록
Host mac-ci-prod
HostName 10.0.50.20
User sftp_ci_prod
IdentityFile "$RUNNER_TEMP/ci_ed25519"
StrictHostKeyChecking accept-new
ServerAliveInterval 60
# RSYNC_RSH="ssh -F ~/.ssh/config_ci -o BatchMode=yes"
# Match User + internal-sftp + ChrootDirectory
production environment와 리뷰어를 연결하고 로그에는 지문과 RUN_ID만 남긴다. 업로드는 원자적 릴리스 디렉터리로.
정량 기준: 이중 키·SIEM
정적 키는 프로덕션 Mac 빌더에서 30일마다 검토한다. 이중 키는 72시간 겹침, 롤백용 24시간 읽기 전용 유지. 발급 KMS는 14일 이내 복구 훈련. SIEM은 github_actor·run_id·environment·key_fp·Unix 계정을 조인한다.
러너 위생: 관리형 단명 디스크는 키 잔류 위험을 줄인다. 셀프호스트는 tmpfs·재이미징으로 잔여 파일을 줄인다. 핸드셰이크 P95가 800ms를 넘기면 배스천 CPU·FW 세션을 먼저 의심한다.
분기별 테이블톱으로 발급 키 에스크로 공백을 드러내고 Terraform과 같은 저장소에 교훈을 남긴다.
FAQ·호스팅 원격 Mac
OIDC만으로 deploy key가 사라지나
sshd가 신뢰할 재료를 돌려주는 발급 구성요소가 필요하다.
로그에 절대 넣지 말 것
PEM 본문, 생 시크릿, 패스프레이즈 대화형 ssh.
토큰이 짧아도 Unix 분할이 필요한가
인증과 디렉터리 POSIX 분리는 별 층이다.
요약:단명·클레임 경계 CI 인증을 chroot·동시성·원자 배포와 맞춘다.한계:발급·프록시·로그는 자체 운영이 남는다.SFTPMAC 호스팅 원격 Mac은 진입·테넌트 격리를 묶어 컴파일러·배포에 집중하게 한다.
자체 Mac은 전원·예비 부품·원격 핸즈 비용을 안고 자격 관리 지연과 겹친다. 경영진에게는 영구 비밀 감소·감사 준비 시간 절감을 수치로 말하라.
진입과 디렉터리를 함께 맡기려면 SFTPMAC 플랜을 참고하세요.
