처음이어도 괜찮아요 · 그림부터 시작해요
Trusted Publishing과 attestation 검증을 분리한다
OIDC Trusted Publishing의 repository/workflow/environment identity와 package scope를 제한하고 publish 전후 artifact attestation을 expected subject·signer로 실제 검증한다. 이를 생략하면 long-lived token을 유지하거나 attestation 생성 성공만 보고 다른 artifact·repository identity도 신뢰한다. 상황에서도 데모는 보일 수 있지만 제품·검증·운영 책임을 방어할 수 없습니다.
아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.01 · 가볍게 시작하기
정답을 보기 전에 먼저 골라볼까요?
cp54 frozen synthetic fixture · fixed clock/UTC · outbound deny · secret-like sentinel · one independent mutant- 1먼저 골라보기
틀려도 괜찮아요. 지금 생각한 답 하나를 정해요.
- 2그림으로 확인하기
움직이는 순서와 달라지는 곳만 천천히 찾아요.
- 3내 말로 다시 말하기
한 문장으로 말해 보면 내가 이해한 곳을 확인할 수 있어요.
02 · 그림으로 보기
그림이 움직이는 순서를 직접 확인해요
- 01관찰Trusted Publishing · OIDC publisher · attestation verification · subject digest
- 02추론OIDC Trusted Publishing의 repository/workflow/environment identity와 package scope를 제한하고 publish 전후 artifact attestation을 expected subject·signer로 실제 검증한다. publisher trust policy·OIDC claims·publish dry-run·gh attestation verify output·subject mismatch test는 long-lived token을 유지하거나 attestation 생성 성공만 보고 다른 artifact·repository identity도 신뢰한다.를 포함한 정상·경계·실패 실행에서 독립적으로 다시 계산할 수 있어야 한다. Trusted Publishing과 attestation 검증을 분리한다은 AI-off 기준선을 먼저 봉인하고 AI 제안 diff를 검토한 뒤, AI가 보지 못한 mutant로 재검증하고 사람이 승인·수정·거절한다. public PyPI publish 없이 production-shaped package release를 검증로 전이할 때 구현보다 contract·effect boundary·evidence owner·residual risk를 먼저 보존한다.
- 03검증Trusted Publishing과 attestation 검증을 분리한다의 contract·owner·normal/boundary/failure outcome을 AI 없이 먼저 고정한다. long-lived token을 유지하거나 attestation 생성 성공만 보고 다른 artifact·repository identity도 신뢰한다.를 frozen synthetic fixture로 재현하고 최초 divergence와 expected verdict를 설명한다. AI 제안은 baseline과 diff로만 검토하고 독립 mutant에서 synthetic artifact에서 trusted-publisher policy와 attestation subject verification을 연습하는 release gate를 구현한다.을 다시 실행한다. publisher trust policy·OIDC claims·publish dry-run·gh attestation verify output·subject mismatch test와 사람의 accept·refactor·reject 판정 및 residual risk를 함께 제출한다.
처음 보는 말도 책 읽듯 풀어봐요
이 수업은 쉬운 뜻과 생활 예를 아직 함께 준비하지 못했어요. 설명 없는 정확한 이름은 먼저 보여 주지 않을게요.
그림에서 찾을 쉬운 규칙
- 01OIDC Trusted Publishing의 repository/workflow/environment identity와 package scope를 제한하고 publish 전후 artifact attestation을 expected subject·signer로 실제 검증한다.
- 02publisher trust policy·OIDC claims·publish dry-run·gh attestation verify output·subject mismatch test는 long-lived token을 유지하거나 attestation 생성 성공만 보고 다른 artifact·repository identity도 신뢰한다.를 포함한 정상·경계·실패 실행에서 독립적으로 다시 계산할 수 있어야 한다.
- 03Trusted Publishing과 attestation 검증을 분리한다은 AI-off 기준선을 먼저 봉인하고 AI 제안 diff를 검토한 뒤, AI가 보지 못한 mutant로 재검증하고 사람이 승인·수정·거절한다.
- 04public PyPI publish 없이 production-shaped package release를 검증로 전이할 때 구현보다 contract·effect boundary·evidence owner·residual risk를 먼저 보존한다.
03 · 같이 풀어보기
한 단계씩 따라가면 어렵지 않아요
public PyPI publish 없이 production-shaped package release를 검증의 축소된 product slice에서 Trusted Publishing과 attestation 검증을 분리한다 release 판단을 수행한다.
cp54 frozen synthetic fixture · fixed clock/UTC · outbound deny · secret-like sentinel · one independent mutant04 · 이제 내가 해볼 차례
여기까지 오면 이런 일을 할 수 있어요
synthetic artifact에서 trusted-publisher policy와 attestation subject verification을 연습하는 release gate를 구현한다.을 수행하고 publisher trust policy·OIDC claims·publish dry-run·gh attestation verify output·subject mismatch test로 OIDC Trusted Publishing의 repository/workflow/environment identity와 package scope를 제한하고 publish 전후 artifact attestation을 expected subject·signer로 실제 검증한다.을 독립 검증한다.
- Trusted Publishing과 attestation 검증을 분리한다의 contract·owner·normal/boundary/failure outcome을 AI 없이 먼저 고정한다.
- long-lived token을 유지하거나 attestation 생성 성공만 보고 다른 artifact·repository identity도 신뢰한다.를 frozen synthetic fixture로 재현하고 최초 divergence와 expected verdict를 설명한다.
- AI 제안은 baseline과 diff로만 검토하고 독립 mutant에서 synthetic artifact에서 trusted-publisher policy와 attestation subject verification을 연습하는 release gate를 구현한다.을 다시 실행한다.
- publisher trust policy·OIDC claims·publish dry-run·gh attestation verify output·subject mismatch test와 사람의 accept·refactor·reject 판정 및 residual risk를 함께 제출한다.
05 · 자주 헷갈리는 지점
틀린 답도 이유를 알면 다음에는 맞힐 수 있어요
01Trusted Publishing을 쓰면 workflow와 environment 제한은 필요 없다.
한 번 더 생각해 볼 질문cp54 Trusted Publishing과 attestation 검증을 분리한다에서 이 주장을 깨는 최소 반례와 관찰 가능한 판정값을 쓰세요.
이렇게 고쳐 생각해요OIDC Trusted Publishing의 repository/workflow/environment identity와 package scope를 제한하고 publish 전후 artifact attestation을 expected subject·signer로 실제 검증한다.
02attestation 파일이 다운로드되면 검증도 완료된 것이다.
한 번 더 생각해 볼 질문cp54 Trusted Publishing과 attestation 검증을 분리한다에서 이 주장을 깨는 최소 반례와 관찰 가능한 판정값을 쓰세요.
이렇게 고쳐 생각해요long-lived token을 유지하거나 attestation 생성 성공만 보고 다른 artifact·repository identity도 신뢰한다.는 성공 출력과 별도로 재현하고 최초 위반 지점에서 차단해야 한다.
03AI가 signer를 설명하면 repository·subject binding을 직접 확인할 필요가 없다.
한 번 더 생각해 볼 질문cp54 Trusted Publishing과 attestation 검증을 분리한다에서 이 주장을 깨는 최소 반례와 관찰 가능한 판정값을 쓰세요.
이렇게 고쳐 생각해요publisher trust policy·OIDC claims·publish dry-run·gh attestation verify output·subject mismatch test와 독립 mutant·human verdict가 함께 있어야 승인 범위를 설명할 수 있다.
06 · 더 궁금할 때만 보기
선생님과 검토자를 위한 믿을 만한 원문
원문과 어디까지 참고했는지 펼쳐 보기처음 배우는 동안에는 열지 않아도 괜찮아요.
long-lived cloud credential 대신 short-lived identity token을 사용하고 subject·audience·environment trust를 제한하는 release 경계
artifact·SBOM attestation 생성과 gh attestation verify. 검증하지 않은 attestation은 보안 이득이나 artifact 안전성 증명이 아니다.
GitHub OIDC·id-token write·protected environment로 long-lived PyPI token을 제거한다. 실제 public publish는 선택 release rehearsal 밖이다.
