Skip to main content

비밀 스캔에서 폴더 및 파일 제외

리포지토리에서 secret_scanning.yml 파일을 구성하여 secret scanning을(를) 사용자 지정하면 디렉터리 또는 파일을 분석에서 제외할 수 있습니다.

누가 이 기능을 사용할 수 있나요?

파트너에 대한 비밀 검사 경고은(는) 공용 리포지토리 및 공용 npm 패키지에서 자동으로 실행되어 GitHub에서 비밀이 유출된 것을 서비스 공급자에게 알립니다.

사용자에 대한 비밀 검사 경고은(는) 사용자 소유 퍼블릭 리포지토리에서 무료로 제공됩니다. GitHub Enterprise Cloud를 사용하면서 GitHub Advanced Security 라이선스가 있는 조직은 또한 프라이빗 리포지토리와 내부 리포지토리에서 사용자에 대한 비밀 검사 경고을(를) 사용하도록 설정할 수 있습니다. 또한 사용자에 대한 비밀 검사 경고을(를) 사용할 수 있으며 GitHub Enterprise Cloud에 대한 사용자 소유 리포지토리의 Enterprise Managed Users입니다. 자세한 내용은 "비밀 검사 경고 정보" 및 "GitHub Advanced Security 정보"을 참조하세요.

GitHub Advanced Security을(를) 무료로 사용해 보는 방법에 대한 자세한 내용은 "Setting up a trial of GitHub Advanced Security"을 참조하세요.

secret scanning 정보

{data variables.product.prodname_secret_scanning_caps %}은(는) 리포지토리에 체크인된 토큰 또는 자격 증명을 자동으로 감지합니다. 리포지토리의 보안 탭에서 사용자에 대한 비밀 검사 경고를 확인하여 GitHub이(가) 코드에서 찾은 모든 비밀에 대해 어떤 토큰 또는 자격 증명을 손상된 것으로 처리할지 파악할 수 있습니다.자세한 내용은 "비밀 검사 경고 정보" 항목을 참조하세요.

사용자에 대한 비밀 검사 경고에서 디렉터리 제외 정보

설명서 또는 예시 애플리케이션에서 가짜 비밀을 제공하려는 경우와 같이 리포지토리에 비밀을 커밋해야 하는 이유가 있을 수 있습니다. 이러한 시나리오에서는 경고를 신속하게 해제하고 이유를 문서화할 수 있습니다. 그러나 대규모로 가양성 경고를 생성하지 않기 위해 디렉터리를 완전히 무시하고 싶은 경우가 있을 수 있습니다. 예를 들어, 더미 키 파일이 포함된 여러 통합이 있는 모놀리식 애플리케이션이 있을 수 있는데, 이 경우에는 분류를 위해 수많은 거짓 경고를 발생시킬 수 있습니다.

푸시 보호를 사용하는 경우를 포함하여 secret scanning에서 디렉터리를 제외하도록 secret_scanning.yml 파일을 구성할 수 있습니다.

사용자에 대한 비밀 검사 경고에서 디렉터리 제외

  1. GitHub.com에서 리포지토리의 기본 페이지로 이동합니다.

  2. 파일 목록 위에서 파일 추가 드롭다운 메뉴를 선택하고 새 파일 만들기를 클릭합니다.

    또는 왼쪽의 파일 트리 보기에서 을(를) 클릭합니다.

     리포지토리의 기본 페이지 스크린샷입니다. 파일 목록 위에 "파일 추가" 레이블의 단추가 진한 주황색으로 표시됩니다. 리포지토리의 파일 트리 보기에서 더하기 기호 아이콘이 있는 단추도 진한 주황색으로 표시됩니다.

  3. 파일 이름 필드에 ".github/secret_scanning.yml"을 입력합니다.

  4. 새 파일 편집에서 paths-ignore:를 입력하고 secret scanning에서 제외할 경로를 입력합니다.

    YAML
    paths-ignore:
      - "docs/**"
    

    이렇게 하면 secret scanning이(가) docs 디렉터리에 있는 모든 항목을 무시하도록 지시합니다. 이 예시 파일을 템플릿으로 사용하여 사용자 고유의 리포지토리에서 제외할 파일 및 폴더를 추가할 수 있습니다.

    * 등의 특수 문자를 사용하여 경로를 필터링할 수도 있습니다. 필터 패턴에 대한 자세한 내용은 “GitHub Actions에 대한 워크플로 구문”을 참조하세요.

    YAML
    paths-ignore:
      - "foo/bar/*.js"
    

    참고 사항:

    • paths-ignore에 1,000개가 넘는 항목이 있는 경우 secret scanning은 검사에서 처음 1,000개의 디렉터리만 제외합니다.
    • secret_scanning.yml이(가) 1 MB보다 크면 secret scanning은(는) 전체 파일을 무시합니다.

폴더가 secret scanning에서 제외되었는지 확인

  1. 비밀 검사에서 제외된 디렉터리에서 파일 열기
  2. 사전 무효성 검사된 비밀 또는 테스트 비밀을 붙여넣습니다.
  3. 변경 내용을 커밋합니다.
  4. GitHub.com에서 리포지토리의 기본 페이지로 이동합니다.
  5. 리포지토리 이름 아래에서 보안을 클릭합니다. "보안" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 보안을 클릭합니다.
    탭을 보여 주는 리포지토리 헤더의 스크린샷. "보안" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.
    방금 파일에 도입한 비밀에 대한 새 열기 경고가 표시되지 않아야 합니다.

모범 사례

모범 사례는 다음을 포함해야 합니다.

  • 제외되는 디렉터리 수를 최소화하고 제외를 정의할 때 최대한 정밀도를 유지하세요. 이렇게 하면 지침이 최대한 명확하고 제외가 의도한 대로 작동합니다.
  • secret_scanning.yml 파일에 주석으로 특정 파일이나 폴더가 제외된 이유를 설명합니다. 일반 코드와 마찬가지로 주석을 사용하면 사용자의 의도가 명확해지므로 다른 사용자가 원하는 동작을 더 쉽게 이해할 수 있습니다.
  • 정기적으로 secret_scanning.yml 파일을 검토합니다. 일부 제외는 시간이 지남에 따라 더 이상 적용되지 않을 수 있으며 파일을 깨끗하고 최신 상태로 유지하는 것이 좋습니다. 위에서 설명한 대로 주석을 사용하는 것이 유용할 수 있습니다.
  • 보안팀에 어떤 파일과 폴더를 제외했는지, 왜 제외했는지 알려주세요. 원활한 커뮤니케이션은 모든 사용자가 같은 생각을 하고 특정 폴더나 파일이 제외된 이유를 이해하도록 하는 데 매우 중요합니다.