Skip to main content
Skip to content

GitHub 패키지 방화벽 문제 해결

캐시된 패키지 또는 구성 문제 때문에 예기치 않은 설치 결과가 발생하는지 GitHub package firewall 확인합니다.

참고

이 기능은 현재 공개 미리 보기 상태에 있으며, 향후 변경될 수 있습니다.

정책이 변경된 후에도 패키지가 계속 설치됩니다.

패키지 관리자 및 레지스트리 프록시는 로컬 캐시에서 이전에 다운로드한 패키지를 다시 사용할 수 있습니다. 새 요청이 GitHub package firewall에 도달하지 않으면 방화벽이 업데이트된 정책에 대해 패키지를 평가할 수 없습니다. 이렇게 하면 정책을 변경하거나 예외를 제거한 후 패키지가 설치되도록 할 수 있습니다.

로컬 npm 캐시 확인

다음을 확인합니다. 패키지가 동일한 방화벽 엔드포인트를 통해 별도의 테스트 환경에서 npm 캐시를 비운 상태에서도 설치되나요?

  1. 해당하는 경우 정확한 패키지 이름, 버전 및 범위를 기록합니다. 엔터프라이즈의 정책 또는 예외에서 해당 버전을 허용하는지 확인합니다.

  2. 원래 프로젝트 외부의 임시 프로젝트에서 기본 및 범위별 레지스트리 설정을 포함하여 동일한 엔터프라이즈의 GitHub package firewall 엔드포인트 및 인증을 사용하도록 npm을 구성합니다. 원래 프로젝트와 잠금 파일을 변경하지 않고 공유 npm 캐시를 지우지 마세요. GitHub 패키지 방화벽을 사용하여 엔드포인트 보호을(를) 참조하세요.

  3. 빈 새 캐시 디렉터리를 사용하여 정확한 버전을 설치합니다. EXACT-VERSION, EMPTY-CACHE-DIRECTORY 및 PACKAGE-NAME를 패키지 이름, 버전 및 캐시 디렉터리 경로로 바꾸십시오. 이 --ignore-scripts 옵션을 사용하면 패키지 수명 주기 스크립트가 실행되지 않습니다.

    npm install PACKAGE-NAME@EXACT-VERSION \
      --cache EMPTY-CACHE-DIRECTORY --ignore-scripts
    
  4. 결과를 원래 프로젝트와 비교합니다.

    • 방화벽이 테스트를 차단하는 경우 원래 프로젝트의 설치된 패키지, 캐시, 레지스트리 구성 및 잠금 파일에서 차이점을 확인합니다. 차단된 테스트만으로는 원래 설치를 허용한 차이를 식별할 수 없습니다.
    • 테스트가 성공하면 해당 버전에 대한 요청이 동일한 엔터프라이즈의 방화벽 엔드포인트에 도달했는지 확인한 다음 정책 및 예외를 다시 확인합니다. npm에서 캐시된 콘텐츠를 사용했다고 가정하지 마세요.

아티팩토리 캐싱

참고

이 지침은 npm 패키지에 대한 실험적 아티팩토리 통합에만 적용됩니다. 빈 로컬 npm 캐시가 있더라도 Artifactory는 방화벽을 통해 새 요청을 보내지 않고 캐시된 콘텐츠를 제공할 수 있습니다.

npm이 Artifactory에서 패키지를 가져오는 경우 Artifactory가 캐시된 콘텐츠를 제공했는지 확인합니다. 또한 가상 npm 리포지토리에서 방화벽 지원 원격을 사용하고 공용 npm 레지스트리에서 직접 패키지를 검색하는 원격을 포함하지 않는지 확인합니다. GitHub 패키지 방화벽을 사용하여 엔드포인트 보호을(를) 참조하세요.