Skip to main content

변경이 불가능한 릴리스

변경이 불가능한 릴리스와 소프트웨어 공급망의 무결성을 유지하는 데 도움이 되는 방법에 대해 알아봅니다.

          **변경이 불가능한 릴리스**란, 게시 후 자산과 연결된 Git 태그를 변경할 수 없는 릴리스를 말합니다. 이러한 유형의 릴리스를 사용하면 공급망 공격을 차단하여 보안을 강화합니다. 공격자는 다음을 수행할 수 없습니다.
  • 현재 프로젝트 릴리스에 취약성 또는 맬웨어를 삽입합니다.
  • 개발자 워크플로를 중단시킬 수 있는 자산 및 태그를 변경합니다.

변경할 수 없는 릴리스로 보호되는 항목

변경할 수 없는 릴리스를 사용하도록 설정하면 다음 보호가 적용됩니다.

  •         **Git 태그를 이동하거나 삭제할 수 없습니다**. 변경할 수 없는 릴리스가 게시되면 연결된 Git 태그가 특정 커밋에 잠겨 있으므로 변경하거나 제거할 수 없습니다.
    
  •         **릴리스 자산을 수정하거나 삭제할 수 없습니다**. 릴리스에 연결된 모든 파일(예: 이진 파일 및 보관 파일)은 수정 또는 삭제로부터 보호됩니다.
    

또한, 변경이 불가능한 릴리스를 생성하면 릴리스 태그, 커밋 SHA, 릴리스 자산을 포함하는 릴리스의 암호화된 검증 기록인 릴리스 증명이 자동으로 생성됩니다. 소비자는 이 증명을 사용하여 자신이 사용하는 릴리스 및 아티팩트가 게시된 GitHub 릴리스와 정확히 일치하는지 확인할 수 있습니다.

참고 항목

변경할 수 없는 릴리스에는 리포지토리 부활 공격에 대한 보호가 포함됩니다. 리포지토리를 삭제하고 이름이 같은 새 리포지토리를 만드는 경우에도 원래 리포지토리에서 변경할 수 없는 릴리스와 연결된 태그를 다시 사용할 수 없습니다.

릴리스가 변경이 불가능한 경우, 릴리스 페이지의 제목 아래에 " Immutable"이라는 메시지가 표시됩니다.

변경할 수 없는 릴리스를 게시하기 위한 모범 사례

변경할 수 없는 릴리스를 게시하려면 다음 워크플로를 사용하는 것이 좋습니다.

  1. 릴리스를 초안으로 만들기.
  2. 연결된 모든 자산을 초안 릴리스에 연결합니다.
  3. 초안 릴리스를 게시합니다.

이렇게 하면 릴리스가 불변성이 되기 전에 모든 리소스가 준비되어 불변성 제한을 해결하지 않아도 됩니다.

다음 단계

리포지토리 또는 조직에 변경이 불가능한 릴리스를 사용하도록 설정하는 방법을 알아보려면 릴리스 변경 방지을(를) 참조하세요.

릴리스 및 로컬 자산이 변경되지 않도록 하는 방법을 알아보려면 릴리스의 무결성 유효성 검사을(를) 참조하세요.