Skip to main content

비공개 시스템에 웹후크 제공하기

인터넷에 비공개 시스템이 노출되는 것을 제한하기 위해 역방향 프록시를 사용하여 웹후크를 GitHub에서 비공개 시스템으로 전달할 수 있습니다.

역방향 프록시를 통한 비공개 시스템과의 통합 알아보기

GitHub 웹후크를 CI 시스템, 작업 관리 도구 및 사용자 지정 앱과 같이 인터넷에서 직접 액세스할 수 없는 비공개 시스템에 제공할 수 있습니다. 역방향 프록시를 사용하여 GitHub에서 웹후크 페이로드를 수신하고 비공개 시스템에 제공할 수 있습니다.

역방향 프록시는 클라이언트와 애플리케이션 사이에 있는 웹 서버입니다. 역방향 프록시는 클라이언트에서 요청을 수신하고 이를 애플리케이션에 전달합니다. 이렇게 하면 인터넷상의 클라이언트와 기본 애플리케이션 간에 직접 통신이 발생하지 않습니다. 다음과 같은 다양한 시스템이 역방향 프록시를 제공할 수 있습니다.

  • nginx와 같은 웹 서버
  • API 게이트웨이
  • OpenZiti와 같은 무료 오픈 소스 오버레이 네트워크
  • ngrok와 같은 상업용 수신 관리 도구
  • zrok와 같은 무료 오픈 소스 수신 관리 도구

역방향 프록시를 구성하는 방법은 사용 중인 시스템에 따라 달라집니다.

역방향 프록시로 트래픽 보호하기

역방향 프록시를 배포할 때는 역방향 프록시 공급자가 권장하는 모든 방법을 따라 기본 프록시 서버를 보호해야 합니다. 또한 다음 단계를 수행하여 GitHub의 요청만 애플리케이션에 전달되는지 확인해야 합니다.

인바운드 트래픽을 GitHub 웹후크로 제한하기

웹후크를 제공하는 데 사용되는 GitHub IP 범위의 하위 집합으로부터의 HTTPS POST 요청만 허용하도록 역방향 프록시를 구성해야 합니다. 이렇게 하면 역방향 프록시가 다른 요청을 처리하거나 전달하지 않습니다.

/meta 엔드포인트는 GitHub의 IP 범위를 나열하는 JSON 객체를 반환합니다. 웹후크를 제공하는 데 사용되는 IP 범위가 hooks 요소에 나열됩니다.

웹후크 페이로드 유효성 검사하기

웹후크가 비밀 토큰으로 구성된 경우, GitHub에는 각 웹후크 페이로드의 암호화 해시가 포함됩니다. 비공개 시스템에서 작업을 수행하기 전에 이 해시를 사용하여 GitHub에서 받은 페이로드의 유효성을 검사해야 합니다. 자세한 내용은 "웹후크 제공 유효성 검사하기"을(를) 참조하세요.

역방향 프록시 또는 비공개 시스템에서 페이로드 유효성 검사를 구현할 수 있습니다.