code scanning 정보
Code scanning는 GitHub 리포지토리의 코드를 분석하여 보안 취약성 및 코딩 오류를 찾는 데 사용하는 기능입니다. 분석으로 식별되는 모든 문제는 리포지토리에 표시됩니다.
to run CodeQL 분석 및 타사 분석을 실행하도록 code scanning를 구성할 수 있습니다. 또한 Code scanning은(는) 기본적으로 GitHub Actions을(를) 사용하거나 외부에서 기존 CI/CD 인프라를 사용하여 분석 실행을 지원할 수 있습니다. 아래 표는 작업을 사용하는 code scanning을(를) 허용하도록 GitHub Enterprise Server 인스턴스을(를) 구성하는 경우에 사용자가 선택할 수 있는 옵션을 모두 정리하여 보여 줍니다.
- CodeQL: 기본 설정("코드 스캔을 위한 기본 설정 구성" 참조) 또는 고급 설정("코드 스캔을 위한 고급 설정 구성" 참조)에서 GitHub Actions을(를) 사용하거나, 제3자 CI(연속 통합) 시스템에서 CodeQL 분석을 실행("기존 CI 시스템에서 코드 검색 사용하기" 참조)합니다.
- Third‑party: GitHub Actions을(를) 사용하거나, 제3자 도구를 사용한 다음 결과를 GitHub Enterprise Server에 업로드("GitHub에 SARIF 파일 업로드" 참조)합니다.
라이선스에 GitHub Advanced Security가 포함되어 있는지 확인
엔터프라이즈 설정을 검토하여 엔터프라이즈에 GitHub Advanced Security 라이선스가 있는지 확인할 수 있습니다. 자세한 내용은 "엔터프라이즈에 GitHub Advanced Security 사용"을(를) 참조하세요.
code scanning에 대한 필수 조건
-
GitHub Advanced Security에 대한 라이선스("GitHub Advanced Security 요금 청구 정보" 참조)
-
관리 콘솔에서 Code scanning이(가) 사용 설정됨("엔터프라이즈에 GitHub Advanced Security 사용" 참조)
-
code scanning 분석을 실행하기 위한 VM 또는 컨테이너
GitHub Actions을 사용하여 code scanning 실행
자체 호스트 실행기 프로비전
GitHub Enterprise Server은(는) GitHub Actions 워크플로를 사용하여 code scanning을(를) 실행할 수 있습니다. 먼저 사용자 환경에서 자체 호스트 GitHub Actions 실행기를 하나 이상 프로비저닝해야 합니다. 리포지토리, 조직 또는 엔터프라이즈 계정 수준에서 자체 호스트 실행기를 프로비저닝할 수 있습니다. "자체 호스트형 실행기 정보" 및 "자체 호스트형 실행기 추가" 항목을 참조하세요.
CodeQL 분석을 위해 자체 호스트되는 실행기를 프로비전하는 경우, 실행기는 CodeQL 지원 운영 체제 버전 및 CPU 아키텍처를 사용해야 합니다. CodeQL 시스템 요구 사항을 참조하세요.
code scanning에 대한 기본 설정을 사용하는 경우, 자체 호스팅 실행기에 code-scanning
레이블을 할당합니다. 자체 호스트 실행기에서 레이블을 사용하는 방법에 대한 자세한 내용은 "자체 호스트형 실행기로 레이블 사용" 항목을 참조하세요. 컴파일된 언어의 코드 스캔 분석에 기본 설정을 사용하는 방법에 대한 자세한 내용은 "컴파일된 언어에 대한 CodeQL 코드 검사하기" 항목을 참조하세요.
CodeQL 작업을 실행하는 데 사용하는 자체 호스트 실행기에서 Git이 PATH 변수에 있는지 확인해야 합니다.
참고: CodeQL code scanning을(를) 사용하여 엔터프라이즈에서 Python으로 작성된 코드를 분석하는 경우 자체 호스트 실행기에 Python 3가 설치되어 있는지 확인해야 합니다.
실행기 확장 집합 프로비전
Actions Runner Controller을(를) 사용하여 GitHub Enterprise Server 인스턴스에 대한 전용 실행기 확장 집합을 만들 수 있습니다. "Actions Runner Controller를 사용하여 실행기 확장 집합 배포" 항목을 참조하세요.
code scanning를 위한 작업 프로비저닝
GitHub Enterprise Server에서 작업을 사용하여 code scanning를 실행하려면 어플라이언스에 해당 작업을 사용할 수 있어야 합니다.
CodeQL 작업은 GitHub Enterprise Server의 설치에 포함되어 있습니다. GitHub Enterprise Server 3.14 및 GitHub Actions 실행기가 모두 인터넷에 액세스할 수 있는 경우, 작업은 분석을 수행하는 데 필요한 CodeQL 2.17.6 번들을 자동으로 다운로드합니다. 또는 동기화 도구를 사용하여 최신 릴리스 버전의 CodeQL 분석 번들을 로컬에서 사용하도록 할 수 있습니다. 아래의 "인터넷 액세스 없이 서버에서 CodeQL 분석 구성"을 참조하십시오.
GitHub Connect를 설정하여 사용자가 code scanning에 대해 타사 작업을 사용할 수 있도록 지정할 수도 있습니다. 아래의 "어플라이언스에 대한 코드 검사 구성"을 참조하세요.
인터넷 액세스 없이 서버에서 CodeQL 분석 구성
GitHub Enterprise Server를 실행 중인 서버가 인터넷에 연결되지 않았는데 사용자가 리포지토리에 CodeQL code scanning를 사용하도록 허용하려는 경우 CodeQL 작업 동기화 도구를 사용하여 GitHub.com의 CodeQL 분석 번들을 서버에 복사해야 합니다. 도구 및 도구 사용 방법에 관한 자세한 내용은 https://github.com/github/codeql-action-sync-tool에서 확인할 수 있습니다.
CodeQL 작업 동기화 도구를 설정한 경우, 이 도구를 사용하여 CodeQL 작업의 최신 릴리스 및 연결된 CodeQL 분석 번들을 동기화할 수 있습니다. 이들은 GitHub Enterprise Server와 호환됩니다.
GitHub Actions을 동기화하도록 GitHub Connect 구성
- GitHub.com,에서 요청 시 작업 워크플로를 다운로드하려면 GitHub Connect를 사용하도록 설정해야 합니다. "Enabling GitHub Connect for GitHub.com" 항목을 참조하세요.
- GitHub Actions도 사용해야 합니다. "GitHub Enterprise Server용 GitHub Actions 시작" 항목을 참조하세요.
- 다음 단계는 GitHub Connect를 사용하여 GitHub.com에서 작업에 대한 액세스를 구성하는 것입니다. "GitHub Connect를 사용하여 GitHub.com 작업에 자동 액세스 사용" 항목을 참조하세요.
- 리포지토리, 조직 또는 엔터프라이즈 계정에 자체 호스트 실행기를 추가합니다. "자체 호스트형 실행기 추가" 항목을 참조하세요.
CodeQL CLI를 사용하여 코드 검사 실행
GitHub Actions를 사용하지 않으려면 CodeQL CLI를 사용하여 code scanning를 실행해야 합니다.
CodeQL CLI는 타사 CI/CD 시스템을 포함하여 모든 컴퓨터에서 코드베이스를 분석하는 데 사용하는 명령줄 도구입니다. "기존 CI 시스템에서 코드 검색 사용하기" 항목을 참조하세요.