Skip to main content

프라이빗 레지스트리에 대한 보안 기능 액세스 부여

조직에서 프라이빗 레지스트리를 사용하는 경우 분석 code scanning 결과를 Dependabot 개선하고 이러한 레지스트리에 대한 액세스를 설정하여 더 많은 종속성을 유지할 수 있습니다.

프라이빗 레지스트리에 액세스 부여의 중요성에 대한 정보

리포지토리의 코드에 프라이빗 레지스트리에 저장된 종속성이 있는 경우 일부 보안 기능은 효과적으로 작동할 수 있도록 레지스트리에 액세스해야 합니다. 리포지토리의 모든 종속성에 액세스하지 않으면 Code Quality (공개 미리 보기)의 효과성과 code scanning 기본 설정 및 Dependabot이 제한됩니다.

          Code scanning 프라이빗 레지스트리에 대한 기본 설정 액세스

조직에서 사용하는 code scanning 프라이빗 레지스트리에 대한 액세스를 정의하지 않으면 공용 레지스트리에서 사용할 수 있는 종속성에서만 필요한 데이터를 수집합니다. 대부분의 경우, 이것만으로 취약성이 대부분 드러납니다. 그러나 경우에 따라 액세스 권한이 부족하면 잘못된 부정적인 결과가 발생할 수 있습니다. 즉, code scanning 코드를 분석하는 데 필요한 모든 정보가 없기 때문에 코드에서 취약성을 감지할 수 없습니다. 예를 들어 일부 데이터 흐름 경로는 code scanning 액세스할 수 없는 종속성으로 정의되고 해석할 수 없기 때문에 검출되지 않을 수 있습니다.

조직 code scanning 에서 사용되는 개인 레지스트리에 대한 액세스를 구성하는 경우 필요한 모든 정보에 액세스할 수 있으며 취약성을 놓칠 가능성이 훨씬 적습니다.

          Code scanning 기본 설정은 다음 레지스트리 유형을 지원합니다.
Language레지스트리 유형
C#NuGet 피드
GoGOPROXY 서버, Git 원본
JavaMaven 리포지토리

조작마다 한 가지 유형의 레지스트리를 정의할 수 있습니다. 조직의 코드베이스에서 지정된 형식의 레지스트리를 둘 이상 사용하는 경우 통합 액세스 지점을 설정하거나 해당 조직의 코드베이스에 대한 가장 중요한 레지스트리에 대한 액세스를 정의해야 합니다.

기본 설정에 대한 code scanning 레지스트리 액세스 정의

사용자 인터페이스에 프라이빗 레지스트리에 대한 액세스를 설정하려면 조직 소유자여야 합니다. 조직 소유자 또는 {read,write}_org_private_registries 사용 권한과 함께 REST API를 사용할 수도 있습니다.

  1. 조직의 설정 탭에서 "보안" 섹션까지 아래로 스크롤한 후에 비밀 및 변수를 선택하세요.
  2. 확장된 비밀 및 변수 목록에서 프라이빗 레지스트리를 선택하여 "Private Registries" 페이지를 표시합니다.
  3.        **New private registry**를 선택하여 프라이빗 레지스트리에 대한 액세스 세부 정보를 추가합니다.
    
  4.        **URL** 및 **Type** 필드를 사용하여 레지스트리의 위치 및 유형을 정의하세요.
    
    * URL은 프라이빗 레지스트리로 접근하는 위치입니다. 예를 들어, GitHub Packages 레지스트리를 NuGet에서 사용하려면 https://nuget.pkg.github.com/ORGANIZATION/index.json에 GitHub에 있는 조직의 이름 ORGANIZATION이(가) 필요합니다. * Type은 레지스트리의 유형입니다.
  5. 인증 방법에 따라 Token 또는 Username and password를 선택한 후 해당 필드에 데이터를 입력합니다. 인증 토큰과 같은 GitHubPersonal Access Token일부 유형의 인증 토큰은 특정 사용자 ID에 연결됩니다. 사용자 이름 및 암호 옵션을 선택하고 관련 사용자 이름을 사용자 이름으로 입력하고 토큰을 암호로 입력 합니다.
  6. 모든 리포지토리, 프라이빗/내부 리포지토리 또는 선택한 리포지토리 전용 등 세부 정보를 사용하여 프라이빗 레지스트리로 접근할 수 있는 조직 내 리포지토리를 정의합니다.
  7. 프라이빗 레지스트리 정의가 끝나면 Add Registry를 선택하여 레지스트리 정보를 저장합니다.

조직에 대해 프라이빗 레지스트리를 추가하면 토큰 또는 암호가 암호화된 비밀로 저장됩니다. 레지스트리가 생성되면 토큰 또는 암호를 다시 볼 수 없습니다.

          code scanning 기본 설정을 활성화하여 레지스트리 정의를 사용함

기본 설정을 code scanning 저장소 또는 저장소 그룹에 적용하면, GitHub 해당 저장소에서 기존 비공개 레지스트리에 대한 액세스 권한이 있는지 확인합니다. 리포지토리에서 비공개 레지스트리를 사용할 수 있는 경우, 분석 중에 관련 정의를 사용합니다.

프라이빗 레지스트리를 처음 구성할 때, 새 정의를 사용하고자 하는 리포지토리에 대해서는 기본 설정을 비활성화한 후 다시 활성화해야 code scanning 합니다. 새로 생성되거나 수정된 구성은 이후 실행 시 자동으로 반영됩니다.

프라이빗 패키지 레지스트리 code scanning 를 지원하는 언어의 경우 기본 설정은 .에 대한 도구 상태 페이지정보를 생성합니다. 이는 분석에서 사용할 수 있는 프라이빗 레지스트리 구성을 보여 주지만, code scanning 기본 설정이 이들로부터 프라이빗 종속성을 성공적으로 다운로드할 수 있었는지는 보여 주지 않습니다. 도구 상태 페이지에 대한 자세한 내용은 Use the tool status page for code scanning을(를) 참조하세요.

또는 작업 로그 파일을 확인하여 분석에서 프라이빗 레지스트리가 성공적으로 code scanning 사용되었는지 확인할 수 있습니다. 코드 검색 로그을 참조하세요.

          Code scanning 프라이빗 레지스트리에 대한 고급 설정 액세스

          Code scanning 고급 설정은 `codeql-action`을 사용하여 분석을 실행하는 워크플로우에서 사용할 수 있는 모든 프라이빗 레지스트리를 사용합니다. 이것은 기본 설정에서 사용하는 조직 수준의 프라이빗 레지스트리에 액세스할 수 없습니다.

컴파일 언어에서는 codeql-action이 코드 빌드 단계를 확인해야 합니다. codeql-action을 실행하는 기존 빌드 워크플로를 수정하거나, 코드의 프로덕션 버전을 빌드하고 codeql-action을 실행하는 새로운 워크플로를 만들 수 있습니다.

빌드에서 사용하는 모든 프라이빗 레지스트리는 codeql-action을 실행하는 워크플로에서도 액세스할 수 있어야 합니다. 고급 설정에 대한 정보는 Configuring advanced setup for code scanning을 참조하세요.

          Dependabot 프라이빗 레지스트리에 대한 액세스를 업데이트합니다.

          Dependabot 는 조직 수준 프라이빗 레지스트리를 사용할 수 있을 뿐만 아니라 리포지토리의 `dependabot.yml` 파일에 정의된 모든 개인 레지스트리를 사용할 수 있습니다.

          Dependabot 는 레지스트리에 액세스할 수 없는 한 프라이빗 레지스트리에 저장된 코드에 대한 보안 또는 버전 업데이트를 확인할 수 없습니다. 프라이빗 레지스트리 Dependabot 에 대한 액세스를 구성하지 않으면 레지스트리에 저장된 종속성을 업데이트하기 위한 끌어오기 요청을 발생시키지 못합니다.

하나 이상의 프라이빗 레지스트리 Dependabot 에 대한 액세스를 구성하는 경우 취약한 종속성을 업그레이드하거나 종속성을 유지하기 위한 끌어오기 요청을 제안할 수 있습니다. Dependabot에 대한 개인 레지스트리 액세스 구성Dependabot의 개인 레지스트리 구성에 대한 지침을 참조하세요.

          Code Quality 프라이빗 레지스트리에 대한 액세스

참고

GitHub Code Quality은(는) 현재 공개 미리 보기에 있으며 변경될 수 있습니다. 공개 미리 보기에서 Code Quality은(는) 요금이 청구되지 않지만 Code Quality 스캔은 GitHub Actions 분을 소모합니다.

          GitHub Code Quality 는 리포지토리에 대해 사용하도록 설정된 경우 사용할 수 있는 조직 수준 프라이빗 레지스트리를 사용할 수 있습니다.

조직에 새 레지스트리를 추가하는 경우 분석에서 새 레지스트리를 검색하고 사용할 수 있도록 비활성화하고 다시 사용하도록 설정 Code Quality 해야 합니다.

조직에 대한 프라이빗 레지스트리 액세스를 설정하려면 코드 검사 기본 설정에 대한 레지스트리 액세스 정의를 참조하세요.