WEBBOOK CHAPTER

Git에서 EKS까지: 22장 GitHub Actions에서 build once를 구현한다

22장 GitHub Actions에서 build once를 구현한다

examples/pipelines/github-actions.yaml의 build job은 다음 순서다.

  1. source checkout
  2. id-token: write로 GitHub OIDC token 요청 권한 부여
  3. build role assume
  4. ECR login
  5. Git SHA tag로 image build·push
  6. image URI를 deploy job output으로 전달

id-token: write는 AWS resource를 직접 쓸 권한이 아니다. OIDC token을 요청할 권한이며, AWS trust와 permission이 추가로 통과해야 한다. job-level permissions를 최소화하고 pull request job에는 production role이 발급되지 않게 environment와 event 조건을 나눈다.

예제는 이해를 위해 verified action의 major tag를 쓴다. production은 action source를 review하고 full commit SHA로 pin하며 Dependabot 또는 Renovate가 update PR을 만들게 한다. third-party action은 repository secret과 token에 접근할 supply-chain code이므로 dependency와 같다.

image output을 눈으로 확인한다.


111122223333.dkr.ecr.ap-northeast-2.amazonaws.com/flownote:
8f30c51f0d8f42d2...

tag를 줄여 사람이 보기 쉽게 만들더라도 배포 증거에는 full SHA와 digest를 보관한다. provenance와 SBOM 생성이 실제 registry에 첨부되는지 사용 중인 build action·registry 조합에서 검증한다.