{"meta":{"title":"시크릿 스캐닝에서 폴더 및 파일 제외","intro":"리포지토리의 secret scanning 파일을 설정하여 특정 디렉터리 또는 파일에서 발견된 비밀 정보에 대한 경고를 자동으로 닫도록 secret_scanning.yml를 사용자 지정할 수 있습니다.","product":"보안 및 코드 품질","breadcrumbs":[{"href":"/ko/code-security","title":"보안 및 코드 품질"},{"href":"/ko/code-security/how-tos","title":"사용 설명"},{"href":"/ko/code-security/how-tos/secure-your-secrets","title":"비밀 보호"},{"href":"/ko/code-security/how-tos/secure-your-secrets/customize-leak-detection","title":"누수 감지 사용자 지정"},{"href":"/ko/code-security/how-tos/secure-your-secrets/customize-leak-detection/exclude-folders-and-files","title":"파일 및 폴더 제외"}],"documentType":"article"},"body":"# 시크릿 스캐닝에서 폴더 및 파일 제외\n\n리포지토리의 secret scanning 파일을 설정하여 특정 디렉터리 또는 파일에서 발견된 비밀 정보에 대한 경고를 자동으로 닫도록 secret_scanning.yml를 사용자 지정할 수 있습니다.\n\n설명 문서 또는 예시 애플리케이션에서 가짜 시크릿을 제공하는 경우를 포함해 리포지토리에 시크릿을 커밋해야 하는 경우가 있습니다. 이러한 시나리오에서는 경고를 신속하게 해제하고 그 이유를 문서로 기록할 수 있어야 합니다. 하지만 대규모로 가양성 경고가 생성되지 않도록 디렉터리를 완전히 무시하고 싶을 때도 있습니다. 예를 들어, 여러 통합이 포함된 모놀리식 애플리케이션이 있고, 그 안에 더미 키 파일이 포함되어 있어 분류해야 할 다수의 오탐 경고가 발생할 수 있습니다.\n\n`secret_scanning.yml` 파일을 구성하여 secret scanning의 특정 디렉터리에서 발견된 경고를 자동으로 닫고, 이러한 디렉터리를 푸시 보호 대상에서 제외할 수 있습니다. 이러한 경고는 “구성에서 무시됨”으로 닫힙니다.\n\n## 사용자에 대한 비밀 검사 경고에서 디렉터리 제외하기\n\n1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.\n2. 파일 목록 위에서 **파일 추가** <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-triangle-down\" aria-label=\"The downwards-facing triangle icon\" role=\"img\"><path d=\"m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z\"></path></svg> 드롭다운 메뉴를 선택한 다음, **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-plus\" aria-label=\"plus\" role=\"img\"><path d=\"M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z\"></path></svg> 새 파일 생성**을 클릭합니다.\n\n   또는 왼쪽의 파일 트리 보기에서 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-plus\" aria-label=\"The plus sign icon\" role=\"img\"><path d=\"M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z\"></path></svg>을(를) 클릭합니다.\n\n   ![위에 설명된 \"파일 추가\"와 \"더하기 기호\" 아이콘을 모두 주황색 윤곽선으로 강조 표시한 리포지토리 기본 페이지의 스크린샷](/assets/images/help/repository/add-file-buttons.png)\n3. 파일명 필드에 \".github/secret\\_scanning.yml\"을 입력합니다.\n4. **새 파일 편집**에서 `paths-ignore:`에서 제외할 경로 앞에 secret scanning를 입력합니다.\n\n   ```yaml copy\n   paths-ignore:\n     - \"docs/**\"\n   ```\n\n   이렇게 하면 secret scanning에서 `docs` 디렉터리의 모든 항목에 대한 경고를 자동으로 닫도록 설정합니다. 사용자 고유의 리포지토리에서 제외할 파일 및 폴더를 추가하기 위해 이 예시 파일을 템플릿으로 사용할 수 있습니다.\n\n   경로 필터링을 위해 `*` 등 특수 문자를 사용할 수 있습니다. 필터 패턴에 대한 자세한 내용은 “[GitHub Actions용 워크플로 구문](/ko/actions/reference/workflows-and-actions/workflow-syntax#filter-pattern-cheat-sheet)”을 참조하세요.\n\n   ```yaml copy\n   paths-ignore:\n     - \"foo/bar/*.js\"\n   ```\n\n   > \\[!NOTE]\n   >\n   > * 1,000개 이상의 항목이 있는 `paths-ignore`secret scanning 경우 검사에서 처음 1,000개의 디렉터리만 제외됩니다.\n   > * 1MB `secret_scanning.yml` 보다 큰 경우 secret scanning 전체 파일을 무시합니다.\n\n## 폴더가 제외되었는지 확인 secret scanning\n\n1. 제외시킨 디렉터리 내 파일을 시크릿 스캐닝에서 열기\n\n2. 사전에 무효성을 검사한 시크릿 또는 테스트 시크릿을 붙여넣습니다.\n\n3. 변경 내용을 커밋합니다.\n\n4. GitHub에서 리포지토리의 기본 페이지로 이동합니다.\n\n5. 리포지토리 이름 아래에서 탭을 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality** 클릭합니다. \"<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality\" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"kebab-horizontal\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>** 다음 을 클릭합니다 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality**. 파일에 방금 도입한 비밀에 대한 새로운 공개 경고가 없어야 합니다.\n\n## 모범 사례\n\n모범 사례는 다음을 포함해야 합니다.\n\n* 제외를 정의할 때 제외된 디렉터리 수를 최소화하고 최대한 정밀도 유지하기. 최대한 지침이 명확하고 의도한 대로 제외 동작이 작동합니다.\n* `secret_scanning.yml` 파일의 주석에서 특정 파일 또는 폴더가 제외된 이유 설명하기. 주석을 사용 시 일반 코드처럼 사용자의 의도가 명확해지기 대문에 다른 사용자가 원하는 동작을 쉽게 이해할 수 있습니다.\n* 주기적으로 `secret_scanning.yml` 파일 검토하기. 일부 제외는 시간이 지나면서 더 이상 적용되지 않으므로 파일을 최신 상태로 깨끗하게 유지하는 것이 좋습니다. 위에서 설명한 바와 같이 주석이 유용하기도 합니다.\n* 제외시킨 파일 및 폴더와 그 이유를 보안팀에 고지하기. 원활한 커뮤니케이션은 모든 사용자가 같은 생각을 하고 특정 폴더나 파일이 제외된 이유를 이해시키는 데에 매우 중요합니다."}