저는 31개의 GitHub Actions를 커밋 SHA에 고정했습니다. 하나의 주요 태그는 두 버전이 뒤처져 있었습니다.
GitHub Actions를 특정 커밋 SHA에 고정하는 것은 태그가 이동될 수 있기 때문에 보안 및 안정성에 매우 중요합니다. 이 관행은 검토된 정확한 코드가 항상 실행되도록 보장하여 예상치 못한 변경을 방지합니다. 고정할 때, 사람이 읽을 수 있도록 SHA 옆에 릴리스 버전을 주석으로 포함하는 것이 좋습니다.API나 외부 블로그에 의존하지 않고 액션에 대한 올바른 SHA를 찾으려면 git ls-remote --tags 명령을 사용할 수 있습니다. 이 명령은 속도 제한이 없으며 리포지토리의 모든 태그를 검색합니다. 출력에는 태그와 해당 태그가 가리키는 커밋이 모두 표시되며, 주석이 달린 태그의 경우 특정 커밋 SHA는 ^{} 접미사로 식별됩니다.최근 패키징 작업 중에 기존 액션 사용에서 세 가지 일반적인 문제가 확인되었습니다. 한 액션의 주요 태그는 상당히 오래되어 최신 릴리스보다 훨씬 이전 버전을 가리키고 있었습니다. 다른 액션의 주요 태그는 자체 최근 릴리스보다 뒤처져 최신 상태라는 잘못된 인상을 주고 있었습니다. 마지막으로, 일부 액션에는 주요 태그가 없어 사용자가 master 브랜치에 고정해야 했으며, 이는 특정 버전을 사용하는 것보다 보안이 취약합니다.고정 외에도 GitHub 워크플로에 보안 모범 사례를 구현하는 것이 필수적입니다. 여기에는 제한적인 권한 설정, 경쟁 조건을 방지하기 위한 동시성 구성, 배포와 같은 민감한 작업이 풀 리퀘스트에서 실행되지 않도록 보장하는 것이 포함됩니다. 또한 pull_request_target 사용을 피하는 것이 중요한 보안 조치입니다.이러한 보안 원칙을 통합한 프로덕션 준비 GitHub 워크플로의 포괄적인 세트가 제공됩니다. 이러한 워크플로는 다양한 CI/CD 작업을 다루며 쉽게 적응할 수 있도록 설계되었습니다. 액션을 고정하고 이러한 보안 규칙을 적용하는 프로세스는 간단한 명령과 구성을 사용하여 효율적으로 수행할 수 있습니다. 액션을 SHA에 고정하는 것은 더 넓은 보안 태세의 기본 단계입니다.
git ls-remote --tags명령을 사용할 수 있습니다. 이 명령은 속도 제한이 없으며 리포지토리의 모든 태그를 검색합니다. 출력에는 태그와 해당 태그가 가리키는 커밋이 모두 표시되며, 주석이 달린 태그의 경우 특정 커밋 SHA는^{}접미사로 식별됩니다.최근 패키징 작업 중에 기존 액션 사용에서 세 가지 일반적인 문제가 확인되었습니다. 한 액션의 주요 태그는 상당히 오래되어 최신 릴리스보다 훨씬 이전 버전을 가리키고 있었습니다. 다른 액션의 주요 태그는 자체 최근 릴리스보다 뒤처져 최신 상태라는 잘못된 인상을 주고 있었습니다. 마지막으로, 일부 액션에는 주요 태그가 없어 사용자가master브랜치에 고정해야 했으며, 이는 특정 버전을 사용하는 것보다 보안이 취약합니다.고정 외에도 GitHub 워크플로에 보안 모범 사례를 구현하는 것이 필수적입니다. 여기에는 제한적인 권한 설정, 경쟁 조건을 방지하기 위한 동시성 구성, 배포와 같은 민감한 작업이 풀 리퀘스트에서 실행되지 않도록 보장하는 것이 포함됩니다. 또한pull_request_target사용을 피하는 것이 중요한 보안 조치입니다.이러한 보안 원칙을 통합한 프로덕션 준비 GitHub 워크플로의 포괄적인 세트가 제공됩니다. 이러한 워크플로는 다양한 CI/CD 작업을 다루며 쉽게 적응할 수 있도록 설계되었습니다. 액션을 고정하고 이러한 보안 규칙을 적용하는 프로세스는 간단한 명령과 구성을 사용하여 효율적으로 수행할 수 있습니다. 액션을 SHA에 고정하는 것은 더 넓은 보안 태세의 기본 단계입니다.