시크릿 탐지
당신의 애플리케이션은 CI/CD 서비스, 데이터베이스 또는 외부 저장소와 같은 외부 리소스를 사용할 수 있습니다. 이러한 리소스에 액세스하려면 일반적으로 프라이빗 키나 토큰과 같은 정적 방법을 사용하여 인증이 필요합니다. 이러한 방법들은 “시크릿(secrets)”이라고 불리며 다른 사람과 공유되어서는 안 되기 때문입니다.
시크릿이 노출되는 위험을 최소화하기 위해 항상 시크릿을 저장소 외부에 저장하는 것이 좋습니다. 그러나 때로는 실수로 시크릿이 Git 저장소에 커밋될 수 있습니다. 민감한 값이 원격 저장소에 푸시된 후에는 저장소에 액세스 할 수 있는 모든 사람이 해당 시크릿을 사용하여 인가되지 않은 사용자를 대표할 수 있습니다. 시크릿 탐지는 시크릿이 노출되는 것을 방지하는 데 도움을 주기 위해 당신의 활동을 모니터링합니다. GitLab에는 동시에 사용할 수 있는 세 가지 시크릿 탐지 방법이 있습니다:
- 파이프라인 방법은 프로젝트의 CI/CD 파이프라인에서 시크릿을 탐지합니다. 파이프라인 시크릿 탐지는 언어나 프레임워크에 관계없이 모든 텍스트 파일에서 작동합니다. 이 방법은 푸시를 거부할 수 없습니다.
- 시크릿 푸시 보호 방법은 사용자가 원격 Git 브랜치에 변경 사항을 푸시할 때 시크릿을 탐지합니다. 이 방법은 시크릿이 감지되면 푸시를 거부할 수 있습니다.
- 클라이언트 측 방법은 브라우저에서 실행되며, 게시하려는 텍스트 내용이 잠재적인 시크릿을 포함하고 있는지 여부를 경고합니다.
만약 시크릿이 저장소에 커밋된다면, GitLab은 취약점 보고서에 노출을 기록합니다. 일부 시크릿 유형에 대해서는 GitLab이 자동으로 노출된 시크릿을 취소할 수도 있습니다. 노출된 시크릿은 반드시 즉시 폐기하고 대체해야 합니다.