싱가포르, 일본, 한국, 홍콩, 미국 동부, 미국 서부에 걸친 전용 원격 Mac 호스트에서 Jenkins 또는 Buildkite macOS 에이전트를 돌리면서 이미 GitHub Actions 또는 GitLab 셀프호스트 runner를 운영한다면, 예산과 감사에서 가장 아픈 지점은 종종 vCPU가 아니라 두 번째 컨트롤러가 만든 자격 증명 폭발 반경입니다. 90일 PAT를 누가 쥐는지, 어떤 사용자 컨텍스트가 match 복호화 키체인과 ASC 세션을 소유하는지, 버스트 호스트 재구축 시 비밀이 이미지에 고정되는지 여부입니다. 이 글은 자격 증명 토폴로지, 뮤텍스 규칙, 리스 회계 세 가지 원장을 제공하며 Jenkins·Buildkite 단계적 리스 런북 및 runner 라벨·시크릿 체크리스트와 보완적입니다. 후자가 큐를 다루면 본문은 신원, OIDC, 폐기 경로를 다룹니다.
~/.ssh, buildkite-agent, actions-runner가 같은 로그인 아래에 있으면 git credential-osxkeychain 프롬프트만 나와도 무인 CI가 들쭉날쭉한 그린 빌드가 됩니다.여섯 리전의 가치는 예측 가능한 코로케이션과 전용 IO입니다. 자격 증명 토폴로지가 불명확하면 혼란만 스케일합니다. Xcode Cloud 하이브리드 CI까지 돌린다면 ASC와 내부 레지스트리 중 무엇을 어떤 신원이 건드릴 수 있는지 적시하지 않으면 하이브리드 매트릭스가 하이브리드 사고가 됩니다.
자격 증명 RACI를 두십시오. 플랫폼은 머신 사용자와 OIDC 바인딩을, 저장소는 워크플로 범위를, 보안은 폐기 드릴을 소유합니다. 두 번째 컨트롤러가 라이브가 되면 여기 빈틈이 곧 사고로 번집니다.
| 차원 | 장수명 PAT·배포 키 선호 | OIDC·단명 토큰 선호 |
|---|---|---|
| 리스 | 월 단위 이상 베이스라인 호스트에 한정하고 이미지 밖 비밀 주입 | 신뢰 조건이 빡세면 일일·주간 버스트에 적합 |
| 감사 입도 | “누가 어떤 호스트에 PAT를 올렸는지” 추가 로깅 필요, 로테이션은 회계 분기에 종종 묶임 | 클라우드가 저장소·환경·풀까지 묶어 작업 단위 귀속이 쉬움 |
| Jenkins 플러그인 생태계 | 많은 플러그인이 정적 자격 증명 파일을 전제 | 명시적 파이프라인 리팩터 필요, 일회 비용 큼 |
| Buildkite | 훅이 비밀을 조용히 내보낼 수 있음 | 훅은 조립만 하고 비밀은 OIDC로 교환한 단명 토큰에서 |
| GHA·GitLab runner | 셀프호스트 runner가 긴 .credentials 파일을 흔히 유지 |
클라우드 STS로의 OIDC가 주류—먼저 정렬 |
금지선: 일일 버스트 호스트에 조직 전역 장수명 PAT나 루트급 배포 키를 만들지 마십시오. 사업이 고집하면 같은 승인 티켓에서 비밀 수명을 리스 상한에 묶으십시오.
jenkins, buildkite, runner. CI에 대화형 로그인 공유 금지.ROUTING.md와 파이프라인 주석에 둡니다.# Example mutex (replace flock backend with your coordination service)
exec 9>/var/lock/match-decrypt.lock
flock -n 9 || { echo "match decrypt busy"; exit 42; }
# Example split users (LaunchDaemon sketch—do not copy paths blindly)
# UserName=buildkite vs UserName=runner — each HOME keeps its own git credential helper config
.env가 두 번째 컨트롤러를 안 두는 것보다 나쁜 이유수동 키체인 작업은 감사 불가입니다. 마지막으로 잠금 해제한 사람, 대화 세션이 열린 채인지는 SOC2 증빙으로 못 팝니다. 만능 .env는 한 저장소에서 컨테이너를 시작할 수 있는 모든 사람에게 표면을 넓혀 작업 단위 OIDC 최소 권한과 정반대입니다.
Jenkins·Buildkite와 runner를 공존시키면서 전용 Apple Silicon에서 안정적인 리전 egress와 베이스라인 대 버스트 리스 분리가 필요하면 MACCOME 클라우드 Mac mini가 물리 앵커로 더 나은 경우가 많으며, 싱가포르·일본·한국·홍콩·미 동·서 해안에서 일·주·월·분기 리스를 선택할 수 있습니다. 컴파일 처리량을 쫓기 전에 어떤 신원이 어떤 호스트에 얼마나 머물 수 있는지를 원장에 올리십시오—시뮬레이터 다섯과 공증 업로드 세 개를 돌리면서 일일 호스트에 90일 PAT를 얼리지 마십시오.
세 표를 내보냅니다: 머신 사용자 ↔ HOME 맵, 뮤텍스 리소스 ↔ 잠금 이름, OIDC 신뢰 ↔ STS 범위. 입사 첫날 신입이 어떤 신원을 쓰는지, 실패 시 어떤 토큰 클래스를 폐기하는지, 버스트에 90일 PAT가 없는 이유를 말할 수 있어야 합니다.
runner 시크릿 체크리스트와 짝을 이룰 때는 “GitHub 쪽 OIDC”와 “macOS 키체인 파티션”을 같은 변경 티켓에 합치지 않으면 클라우드 신뢰 정책은 완벽한데 베어 메탈 파티션은 비어 있는 모순이 남습니다.