WEBBOOK CHAPTER

코드로 운영하는 클라우드 인프라: 16장. CI/CD 권한을 최소화한다

16장. CI/CD 권한을 최소화한다

CI는 lint·test·plan·정상 배포에 사용하고 OIDC short-lived role을 쓴다. PR의 untrusted code가 production secret과 apply 권한을 얻지 않게 environment approval을 둔다. 외부 사이트 수집용 schedule을 만들지 않는다.

손쉽게 따라 하기

plan job과 승인된 apply job의 권한을 분리한다. 입력에는 실제 고객·계정·도메인 대신 tenant-demo, example.invalid와 저장소 fixture만 사용한다. 시작 전 기대 결과와 바꾸지 않을 불변식을 한 줄로 적는다.

같은 화면에서 확인할 증거

lab/public/index.html의 공통 FieldPass Evidence Board에서 책 slug cloud-infrastructure-as-code, 장 번호 16, run ID를 선택한다. 입력, 판정, 관측값, rollback을 채우고 명령 결과와 같은지 확인한다. 성공 화면만 캡처하지 않고 의도한 실패 하나와 다음 안전 행동을 함께 남긴다.

막혔을 때

fork PR에서 cloud role을 얻을 수 있으면 trust policy를 즉시 좁힌다. 원인을 확정하기 전 최근 변경, 환경, 권한, 시간 범위와 실제 오류를 고정한다. 외부 서비스를 반복 호출하지 않고 로컬 fixture로 최소 재현한 뒤 한 변수만 바꾼다. 복구는 process 상태가 아니라 FieldPass 예약·결제·정산의 업무 결과로 선언한다.