Skip to main content

자체 호스팅 실행기에서 Dependabot 관리

Dependabot이(가) 개인 레지스트리 및 내부 네트워크 리소스에 액세스하는 데 사용하는 자체 호스트형 실행기를 구성할 수 있습니다.

누가 이 기능을 사용할 수 있나요?

Organization owners and repository administrators can configure Dependabot to run on self-hosted runners.

GitHub Actions 자체 호스트형 실행기의 Dependabot 정보

% data reusables.dependabot.dependabot-updates-and-actions %} 자세한 내용은 "GitHub Actions 실행기의 Dependabot 정보"을 참조하세요.

Note

GitHub의 향후 릴리스에서는 GitHub Actions을(를) 사용하여 항상 Dependabot을(를) 실행합니다. 이 설정을 사용하거나 사용하지 않도록 하는 옵션은 더 이상 지원되지 않습니다.

Dependabot 보안 및 버전 업데이트를 설정하여 조직 및 리포지토리의 사용자가 안전한 코드를 만들고 유지 관리하도록 도울 수 있습니다. Dependabot updates를 사용하면 개발자가 리포지토리를 구성하여 자동으로 종속성이 업데이트되고 안전하게 유지되도록 할 수 있습니다. GitHub Actions에서 Dependabot을(를) 실행하면 성능이 향상되고 Dependabot 작업의 가시성과 제어가 향상됩니다.

Note

Dependabot은 Azure VNET(Virtual Network) 또는 ARC(Actions Runner Controller)에서 프라이빗 네트워킹 사용을 지원하지 않습니다.

개인 레지스트리 및 내부 네트워크 리소스에 대한 Dependabot 액세스를 보다 강력하게 제어하려면 Dependabot이(가) GitHub Actions 자체 호스트형 실행기에서 실행되도록 구성할 수 있습니다.

보안상의 이유로 GitHub Actions 자체 호스트형 실행기에서 Dependabot을(를) 실행하는 경우 Dependabot updates은(는) 퍼블릭 리포지토리에서 실행되지 않습니다.

GitHub 호스트형 실행기를 사용할 때 비공개 레지스트리에 대한 Dependabot 액세스를 구성하는 방법에 대한 자세한 내용은 "Dependabot의 개인 레지스트리 구성에 대한 지침"을(를) 참조하세요. 프라이빗 레지스트리로 지원되는 에코시스템에 대한 자세한 내용은 "공용 레지스트리에 대한 Dependabot 액세스 제거"을(를) 참조하세요.

필수 조건

Dependabot이(가) 설치되어 있고 활성화되어 있어야 하며 GitHub Actions이(가) 활성화되어 있고 사용 중이어야 합니다. 조직에 대한 “GitHub Actions 실행기의 Dependabot” 설정도 활성화되어 있어야 합니다. 자세한 내용은 "GitHub Actions 실행기의 Dependabot 정보"을(를) 참조하세요.

조직에서 특정 리포지토리에서 액션 및 자체 호스트형 실행기가 실행되지 않도록 제한하는 정책을 구성했을 수 있으며, 이로 인해 Dependabot이(가) GitHub Actions 자체 호스트형 실행기에서 실행되지 않을 수 있습니다. 이 경우 “자체 호스트형 실행기의 Dependabot”를 사용하도록 설정하는 조직 또는 리포지토리 수준 설정이 웹 UI에 표시되지 않습니다. 자세한 내용은 "조직의 GitHub Actions 사용 안 함 또는 제한"을(를) 참조하세요.

엔터프라이즈에서만 작업 및 재사용 가능한 워크플로를 허용하는 정책을 적용하고 GitHub Actions에서 Dependabot을(를) 사용하도록 설정하면 Dependabot이(가) 실행되지 않습니다. Dependabot을(를) 엔터프라이즈 작업 및 재사용 가능한 워크플로와 함께 실행할 수 있도록 하려면 GitHub에서 만든 작업을 허용하거나 지정된 작업 및 재사용 가능한 워크플로를 허용하도록 선택해야 합니다. 자세한 정보는 "엔터프라이즈에서 GitHub Actions에 대한 정책 적용"을(를) 참조하세요.

Dependabot updates용 자체 호스트된 실행기 구성

조직 또는 리포지토리가 GitHub Actions에서 Dependabot을(를) 실행하도록 구성한 후 자체 호스트형 실행기에서 Dependabot을(를) 사용하도록 설정하기 전에 Dependabot updates에 대해 자체 호스트형 실행기를 구성해야 합니다.

Dependabot 실행기에 대한 시스템 요구 사항

Dependabot 실행기에서 사용하는 모든 가상 머신(VM)은 자체 호스트된 실행기 요구 사항을 충족해야 합니다. 또한 다음 요구 사항을 충족해야 합니다.

  • Linux 운영 체제

  • x64 아키텍처

  • 실행기 사용자에 대한 액세스 권한이 있는 설치된 Docker:

    • 루트리스 모드에서 Docker를 설치하고 root 권한 없이 Docker에 액세스하도록 실행기를 구성하는 것이 좋습니다.
    • 또는 Docker를 설치하고 실행기 사용자에게 Docker를 실행할 수 있는 권한을 부여합니다.

CPU 및 메모리 요구 사항은 지정된 VM에 배포하는 동시 실행기 수에 따라 달라집니다. 지침에 따라 2개 CPU 8GB 단일 컴퓨터에 20개의 실행기를 성공적으로 설정했지만 궁극적으로 CPU 및 메모리 요구 사항은 업데이트되는 리포지토리에 따라 크게 달라집니다. 일부 에코시스템에는 다른 에코시스템보다 더 많은 리소스가 필요합니다.

VM에서 14개 이상의 동시 실행기를 지정하는 경우 Docker /etc/docker/daemon.json 구성을 업데이트하여 Docker에서 만들 수 있는 기본 네트워크 수를 늘려야 합니다.

{
  "default-address-pools": [
    {"base":"10.10.0.0/16","size":24}
  ]
}

Dependabot 실행기에 대한 네트워크 요구 사항

Dependabot 실행기는 퍼블릭 인터넷, GitHub.com, 그리고 Dependabot updates 업데이트에 사용될 모든 내부 레지스트리에 액세스할 수 있어야 합니다. 내부 네트워크에 대한 위험을 최소화하려면 VM(가상 머신)에서 내부 네트워크로의 액세스를 제한해야 합니다. 이렇게 하면 실행기에서 하이재킹된 종속성을 다운로드하는 경우 내부 시스템이 손상될 가능성이 줄어듭니다.

Dependabot 실행기에 대한 인증서 구성

Dependabot이(가) 자체 서명 인증서를 사용하는 레지스트리와 상호 작용해야 하는 경우, 해당 인증서는 Dependabot 작업을 실행하는 자체 호스트형 실행기에도 설치해야 합니다. 이 보안은 연결을 강화합니다. 또한 대부분의 작업은 JavaScript로 작성되며, 운영 체제 인증서 저장소를 사용하지 않는 Node.js를 사용하여 실행되므로 인증서를 사용하도록 Node.js를 구성해야 합니다.

Dependabot 업데이트를 위한 자체 호스트된 실행기 추가

  1. 리포지토리 또는 조직 수준에서 자체 호스트형 실행기를 프로비저닝합니다. 자세한 내용은 "자체 호스트형 실행기 정보" 및 "자체 호스트형 실행기 추가" 항목을 참조하세요.

  2. 위에서 설명한 요구 사항을 준수하여 자체 호스트된 실행기를 설정합니다. 예를 들어 Ubuntu 20.04를 실행하는 VM에서 다음을 수행합니다.

  3. 각 실행기에 Dependabot가 사용하기를 원하는 dependabot 레이블을 할당합니다. 자세한 내용은 "자체 호스트형 실행기로 레이블 사용"을(를) 참조하세요.

  4. 필요에 따라 Dependabot에 의해 트리거된 워크플로가 읽기 전용 이상의 권한을 사용하고 일반적으로 사용할 수 있는 모든 비밀에 액세스할 수 있도록 설정합니다. 자세한 내용은 "GitHub Actions를 통한 Dependabot 자동화"을(를) 참조하세요.

Dependabot updates을(를) 위한 자체 호스트형 실행기 활성화

Dependabot updates에 대해 자체 호스팅 실행기를 구성한 후에는 조직 또는 리포지토리 수준에서 자체 호스트형 실행기에서 Dependabot updates을(를) 사용하거나 사용하지 않도록 설정할 수 있습니다.

참고로 “자체 호스트형 실행기에서 Dependabot” 설정을 비활성화했다가 다시 활성화해도 새로운 Dependabot 실행이 트리거되지 않습니다.

리포지토리 사용 또는 사용 안 함

비공개 또는 내부 리포지토리에 대한 자체 호스트형 실행기에서 Dependabot을(를) 관리할 수 있습니다.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 Settings(설정)를 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "설정" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 사이드바의 "보안" 섹션에서 코드 보안 및 분석을 클릭합니다.

  4. "Dependabot"의 “자체 호스트형 실행기에 대한 Dependabot” 오른쪽에 있는 사용을 클릭하여 기능을 활성화하거나 사용 안 함을 클릭하여 비활성화합니다.

조직에 사용 또는 사용 안 함으로 설정

조직의 모든 기존 비공개 또는 내부 리포지토리에 대해 자체 호스트형 실행기에서 Dependabot을(를) 사용하도록 설정할 수 있습니다. GitHub Actions에서 Dependabot을(를) 실행하도록 이미 구성된 리포지토리만 다음에 Dependabot 작업이 트리거될 때 자체 호스트형 실행기에서 Dependabot을(를) 실행하도록 업데이트됩니다.

Note

대형 러너을 사용하는 경우 조직에서 자체 호스팅 실행기를 사용하도록 설정해야 합니다. 자세한 내용은 "GitHub Actions 실행기의 Dependabot 정보"을(를) 참조하세요.

  1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 선택하고 조직을 클릭합니다.
  2. 조직 옆에 있는 설정을 클릭합니다.
  3. 사이드바의 “보안” 섹션에서 코드 보안을 클릭한 후 글로벌 설정을 클릭합니다.
  4. 'Dependabot'에서 '자체 호스팅 실행기의 Dependabot'를 선택하여 기능을 활성화하거나 선택을 취소하여 비활성화합니다. 이 작업은 조직의 모든 새 리포지토리에 대한 기능을 활성화하거나 비활성화합니다.

자세한 내용은 "조직에 대한 글로벌 보안 설정 구성" 항목을 참조하세요.