프라이빗 레지스트리에 대한 액세스 제공의 중요성 정보
리포지토리에서 프라이빗 레지스트리에 저장된 코드를 사용하는 경우 일부 보안 기능이 효과적으로 작동하려면 레지스트리에 액세스해야 합니다. 리포지토리의 모든 종속성에 액세스할 수 없으면 code scanning 기본 설정 및 Dependabot이 제한됩니다.
프라이빗 레지스트리에 대한 Code scanning 기본 설정 액세스 권한
Note
조직에서 사용할 code scanning 기본 설정을 위한 프라이빗 레지스트리 구성은 현재 공개 미리 보기 상태이며 변경될 수 있습니다. 지원되는 레지스트리는 Maven 리포지토리 및 NuGet 피드입니다.
Code scanning 기본 설정은 C# and Java 코드를 빌드하지 않고 분석합니다. 조직에서 사용하는 프라이빗 레지스트리에 대한 액세스를 정의하지 않으면 code scanning은 퍼블릭 레지스트리에서 사용할 수 있는 종속성에서 필요한 데이터만 수집합니다. 대부분의 경우 이는 대부분의 취약성을 표시하기에 충분합니다. 그러나 경우에 따라 액세스가 부족하면 거짓 부정 결과가 발생할 수 있습니다. 즉, code scanning은 코드를 분석하는 데 필요한 모든 정보가 없기 때문에 코드의 취약성을 감지할 수가 없습니다. 예를 들어 단계가 액세스할 수 없는 종속성으로 정의되어 있고 code scanning에서 이를 해석하는 방법을 모르기 때문에 일부 데이터 흐름 경로가 검색되지 않을 수 있습니다.
조직에서 사용되는 프라이빗 레지스트리에 대한 액세스를 구성하면 code scanning을 통해 필요한 모든 정보에 액세스할 수 있으며 취약성을 놓칠 가능성이 훨씬 적어 집니다.
Tip
각 조직에 대해 하나의 프라이빗 Maven 레지스트리와 하나의 프라이빗 NuGet 피드를 정의할 수 있습니다. 조직의 코드베이스에서 둘 이상의 레지스트리 또는 피드를 사용하는 경우 해당 조직의 코드베이스에 대한 가장 중요한 레지스트리에 대한 액세스를 정의해야 합니다.
code scanning 기본 설정을 위한 레지스트리 액세스 정의
사용자 인터페이스에서 프라이빗 레지스트리에 대한 액세스를 설정하려면 조직 소유자여야 합니다. 조직 소유자 또는 {read,write}_org_private_registries
권한으로 REST API를 사용할 수도 있습니다.
- 조직의 설정 탭에서 "보안" 섹션까지 아래로 스크롤하고 비밀 및 변수를 선택합니다.
- 확장된 비밀 및 변수 목록에서 프라이빗 레지스트리를 선택하여 "프라이빗 레지스트리" 페이지를 표시합니다.
- 새 프라이빗 레지스트리를 선택하여 프라이빗 레지스트리에 대한 액세스 세부 정보를 추가합니다.
- URL 및 Type 필드를 사용하여 레지스트리의 위치 및 유형을 정의합니다.
- URL은 프라이빗 레지스트리에 액세스하는 위치입니다. 예를 들어 NuGet에 GitHub Packages 레지스트리를 사용하려면 다음을 수행합니다.
https://nuget.pkg.github.com/
- Type은 ID 유형입니다.
- URL은 프라이빗 레지스트리에 액세스하는 위치입니다. 예를 들어 NuGet에 GitHub Packages 레지스트리를 사용하려면 다음을 수행합니다.
- 인증 방법에 따라 Token 또는 Username and password를 선택한 다음, 해당 필드에 데이터를 입력합니다.
- 모든 리포지토리, 프라이빗/내부 리포지토리 또는 선택한 리포지토리 전용과 같은 세부 정보를 사용하여 프라이빗 레지스트리에 액세스할 수 있는 조직 내에 있는 리포지토리를 정의합니다.
- 프라이빗 레지스트리 정의를 마쳤으면 Add Registry를 선택하여 레지스트리 정보를 저장합니다.
Tip
조직에 프라이빗 레지스트리를 추가하면 토큰 또는 암호가 암호화된 비밀로 저장됩니다. 레지스트리가 만들어지면 토큰 또는 암호를 다시 볼 수 없습니다.
레지스트리 정의를 사용하기 위하여 code scanning 기본 설정 사용하도록 설정
리포지토리 또는 리포지토리 그룹의 code scanning 기본 설정을 사용하도록 설정하면 GitHub는 리포지토리가 기존 프라이빗 레지스트리에 액세스할 수 있는지 여부를 확인합니다. 리포지토리에서 프라이빗 레지스트리를 사용할 수 있는 경우 code scanning은 분석 중에 관련 정의를 사용합니다.
프라이빗 레지스트리를 처음으로 구성할 때는 새 정의를 사용하려는 리포지토리에 대해 code scanning 기본 설정을 비활성화하고 다시 사용하도록 설정해야 합니다. 새 구성 또는 수정된 구성은 후속 실행에서 자동으로 선택됩니다.
프라이빗 레지스트리가 code scanning 분석에 성공적으로 사용되었는지 확인하려면 작업 로그 파일을 확인하면 됩니다. 자세한 내용은 "코드 스캔 기본 설정에서 프라이빗 레지스트리를 사용했는지 여부 확인"을 참조하세요.
프라이빗 레지스트리에 대한 Code scanning 고급 설정 액세스 권한
Code scanning 고급 설정에서는 codeql-action
을 사용하여 분석을 실행하는 워크플로에서 사용할 수 있는 모든 프라이빗 레지스트리를 사용합니다. 기본 설정에서 사용하는 조직 수준 프라이빗 레지스트리에 액세스할 수 없습니다.
컴파일된 언어의 경우 codeql-action
은 코드 빌드를 관찰해야 합니다. 기존 빌드 워크플로를 수정하여 codeql-action
을 실행하거나 코드의 프로덕션 버전을 빌드하고 codeql-action
을 실행하기도 하는 새로운 워크플로를 만들 수 있습니다.
빌드에서 사용하는 모든 프라이빗 레지스트리는 codeql-action
을 실행하는 워크플로에서도 액세스할 수 있어야 합니다. 고급 설정에 대한 자세한 정보는 코드 스캔을 위한 고급 설정 구성을(를) 참조하세요.
프라이빗 레지스트리에 대한 Dependabot 액세스 권한 업데이트
Dependabot은 dependabot.yml
파일에 정의된 모든 프라이빗 레지스트리를 사용합니다. code scanning 기본 설정에서 사용하는 조직 수준 프라이빗 레지스트리에 액세스할 수 없습니다.
Dependabot은 레지스트리에 액세스할 수 없는 한 프라이빗 레지스트리에 저장된 코드에 대한 보안 또는 버전 업데이트를 확인할 수 없습니다. 프라이빗 레지스트리에 대한 액세스를 구성하지 않으면 Dependabot은 레지스트리에 저장된 종속성을 업데이트하기 위한 끌어오기 요청을 발생시키지 못합니다.
하나 이상의 프라이빗 레지스트리에 대한 액세스를 구성하는 경우 Dependabot을 취약한 종속성으로 업그레이드하거나 종속성을 유지하기 위한 끌어오기 요청을 제안할 수 있습니다. Dependabot에 대한 개인 레지스트리 액세스 구성 및 Dependabot의 개인 레지스트리 구성에 대한 지침을(를) 참조하세요.