Skip to main content

GitHub 비밀 형식 이해

          GitHub 비밀의 사용, 범위 및 액세스 권한에 대해 알아봅니다.

이 기사에서

          Dependabot 비밀

          Dependabot 비밀은 자격 증명 및 중요한 정보를 Dependabot저장하는 데 사용됩니다.

          Dependabot 비밀은 리포지토리의 `dependabot.yml` 파일에서 참조됩니다.

Usage

          Dependabot 비밀은 일반적으로 프라이빗 패키지 레지스트리에 Dependabot 인증하는 데 사용됩니다. 이렇게 하면 끌어오기 요청을 열어 프라이빗 리포지토리에서 취약하거나 오래된 종속성을 업데이트할 수 Dependabot 있습니다. 인증에 사용되는 이러한 Dependabot 비밀은 리포지토리의 `dependabot.yml` 파일에서 참조됩니다.

          Dependabot 비밀에는 .에서 시작한 Dependabot워크플로에 필요한 비밀도 포함될 수 있습니다. 예를 들어 Dependabot는 종속성을 업데이트하기 위한 끌어오기 요청을 생성할 때 GitHub Actions 워크플로를 트리거할 수 있으며, 끌어오기 요청에 대한 댓글을 달 때도 GitHub Actions 워크플로를 트리거할 수 있습니다. 이 경우 Dependabot 비밀은 워크플로 파일(`.github/workflows/*.yml`)에서 참조될 수 있으며, 이는 워크플로가 Dependabot 이벤트에 의해 트리거되는 경우에만 가능합니다.

Scope

다음 위치에서 Dependabot 비밀을 정의할 수 있습니다.

  • 리포지토리 수준

  • 조직 수준

            Dependabot 비밀은 조직 수준에서 설정할 때 리포지토리 간에 공유할 수 있습니다. 비밀에 액세스할 수 있는 조직의 리포지토리를 지정해야 합니다.
    

액세스 권한

          Dependabot 비밀은 Dependabot에서 프라이빗 레지스트리에 인증할 때 종속성을 업데이트하기 위해 액세스됩니다.

          Dependabot에 의해 트리거 이벤트가 시작되면 Dependabot는 GitHub Actions 워크플로에서 비밀에 액세스합니다. 워크플로가 Dependabot에 의해 시작될 때, Dependabot 비밀만 사용할 수 있으며, 작업 비밀에는 액세스할 수 없습니다. 따라서 이러한 워크플로에 필요한 모든 비밀은 Actions 시크릿이 아닌 Dependabot 시크릿으로 저장되어야 합니다. 
          `pull_request_target` 이벤트에는 추가 보안 제한이 있습니다. 
          [제한 및 제약](#limitations-and-restrictions)을 참조하세요.

사용자 액세스 권한

저장소 수준 비밀정보:

  • 리포지토리에 대한 관리자 액세스 권한이 있는 사용자는 비밀을 만들고 관리할 Dependabot 수 있습니다.
  • 리포지토리에 협력자 액세스 권한이 있는 사용자는 Dependabot비밀을 사용할 수 있습니다.

조직 수준 비밀:

  • 조직 소유자는 비밀을 만들고 관리할 Dependabot 수 있습니다.
  • 리포지토리에 대한 각 비밀에 대한 액세스 권한을 가진 공동 작업자 권한이 있는 사용자는 비밀을 Dependabot 사용할 수 있습니다.

제한 사항

시작된 Dependabot워크플로의 pull_request_target 경우 이벤트는 다른 이벤트와 다르게 처리됩니다. 이 이벤트의 경우 끌어오기 요청의 기본 참조가 Dependabot에 의해 github.event.pull_request.user.login == 'dependabot[bot]' 만들어진 경우:

  • 워크플로는 읽기 전용 GITHUB_TOKEN을 수신합니다.
  • 워크플로에서는 비밀을 사용할 수 없습니다.

이 추가 제한은 Dependabot에서 생성한 끌어오기 요청으로 인해 발생할 수 있는 잠재적인 보안 위험을 방지하는 데 도움이 됩니다.

          Dependabot 비밀은 포크에 전달되지 않습니다.

액션 비밀 정보

작업 비밀은 API 키, 인증 토큰 및 기타 자격 증명과 같은 중요한 정보를 워크플로에 저장하는 데 사용됩니다.

Usage

작업 비밀은 워크플로 파일(.github/workflows/*.yml)에서 참조됩니다.

Scope

다음 위치에서 작업 비밀을 정의할 수 있습니다.

  • 리포지토리 수준
  • 환경 수준
  • 조직 수준

환경 수준 비밀은 프로덕션 또는 스테이징과 같은 특정 환경에만 적용됩니다. 조직 수준에서 설정하는 경우, 리포지토리 간에 작업 비밀을 공유할 수 있습니다. 액세스 정책을 사용하여 비밀에 액세스할 수 있는 리포지토리를 제어할 수 있습니다.

액세스 권한

작업 비밀은 워크플로 내에서 GitHub Actions 만 사용할 수 있습니다. 액션에서 실행되고 있음에도 불구하고, Dependabot는 액션 비밀에 액세스할 수 없습니다.

시작된 Dependabot워크플로의 경우 작업 비밀을 사용할 수 없습니다. 워크플로에 액세스하려면 이러한 워크플로 비밀을 비밀로 Dependabot 저장해야 합니다.

작업 비밀을 저장하는 위치에 따라 접근성이 결정됩니다.

  • 리포지토리 비밀: 리포지토리의 모든 워크플로가 비밀에 액세스할 수 있습니다.
  • 환경 비밀: 비밀은 특정 환경을 참조하는 작업으로 제한됩니다.
  • 조직 비밀: 조직에서 액세스 권한을 부여받은 리포지토리의 모든 워크플로는 조직 비밀에 액세스할 수 있습니다.

사용자 액세스 권한

리포지토리 수준 및 환경 비밀:

  • 리포지토리에 대한 관리자 액세스 권한이 있는 사용자는 작업 비밀을 만들고 관리할 수 있습니다.
  • 리포지토리에 대한 공동 작업자 액세스 권한이 있는 사용자는 비밀을 사용할 수 있습니다.

조직 수준 비밀:

  • 조직 소유자는 작업 비밀을 만들고 관리할 수 있습니다.
  • 각 비밀에 대한 액세스 권한이 있는 리포지토리에 대한 공동 작업자 액세스 권한이 있는 사용자는 비밀을 사용할 수 있습니다.

제한 사항

  • 에서 시작한 Dependabot워크플로에는 작업 비밀을 사용할 수 없습니다.
  • 작업 비밀은 포크에서 끌어오기 요청에 의해 트리거되는 워크플로에 전달되지 않습니다.
  • GitHub Actions 는 워크플로 로그에 인쇄되는 모든 GitHub 비밀의 내용을 자동으로 수정합니다.
  • 최대 1,000개의 조직 비밀, 100개의 리포지토리 비밀 및 100개의 환경 비밀을 저장할 수 있습니다. 비밀의 크기는 48KB로 제한됩니다. 자세한 내용은 비밀에 대한 제한을 참조하세요.

추가 읽기