10장 CI workflow 자체도 dependency다
application dependency만 scan하고 action과 runner image를 놓치기 쉽다. uses: owner/action@v4 같은 tag는 편하지만 tag가 움직일 수 있다. 고위험 release workflow는 검토된 commit SHA에 pin하고 자동 업데이트 PR로 유지한다.
workflow 최소 권한:
permissions:
contents: read
id-token: write
attestations: write
모든 job에 write-all을 주지 않는다. fork pull request에서 untrusted code를 privileged context로 실행하지 않는다. self-hosted runner는 이전 job의 file과 credential이 남지 않게 ephemeral하게 운영한다.
third-party action도 source repository, release, maintainer, dependency를 가진 software다. SBOM과 inventory에 CI component를 포함하는 이유다.