Skip to main content

GitHub 제품 간의 마이그레이션에 대한 액세스 관리

GitHub Enterprise Importer를 사용하기 전에 마이그레이션의 원본과 대상 모두에 대한 적절한 액세스 권한이 있는지 확인합니다.

GitHub Enterprise Importer에 필요한 액세스 권한 정보

데이터를 보호하기 위해 GitHub는 GitHub Enterprise Importer를 사용하도록 특정 액세스 요구 사항을 적용합니다. 이러한 요구 사항은 수행하려는 작업에 따라 달라집니다. 오류를 방지하려면 이 문서를 주의 깊게 검토하고 완료하려는 작업에 대한 모든 요구 사항을 충족하는지 확인해야 합니다.

마이그레이션을 실행하려면 마이그레이션의 원본과 대상 모두에 대한 충분한 액세스 권한이 필요합니다.

내 원본 및 대상은 무엇인가요?

원본은 데이터를 마이그레이션하려는 GitHub.com 또는 GitHub Enterprise Server의 조직직입니다.

대상은 다음과 같습니다.

  • 리포지토리를 마이그레이션하는 경우, GitHub.com 또는 GHE.com의 조직 계정
  • 전체 조직을 마이그레이션하는 경우 GitHub.com 또는 GHE.com의 엔터프라이즈 계정

필요한 액세스 권한은 무엇인가요?

원본과 대상 모두에 대해 마이그레이션을 위한 충분한 액세스 권한을 얻으려면 다음 사항이 필요합니다.

  • 조직 또는 엔터프라이즈 계정의 필수 역할
  • 조직 또는 엔터프라이즈 계정을 액세스할 수 있는 personal access token
    • personal access token에는 역할 및 완료하려는 작업에 따라 필요한 모든 범위가 있어야 합니다.
    • 원본 또는 대상에서 GitHub.com에 SAML Single Sign-On을 사용하는 경우 SSO에 대한 personal access token에 권한을 부여해야 합니다.

또한 원본 또는 대상에서 IP 허용 목록을 사용하는 경우 GitHub Enterprise Importer의 액세스를 허용하도록 허용 목록을 구성해야 할 수 있습니다.

GitHub Enterprise Server 3.8 이상에서 처음으로 마이그레이션하려는 경우 관리 콘솔에 액세스 권한이 있는 사람이 GitHub Enterprise Server 인스턴스에 대한 Blob Storage를 설정해야 합니다.

마이그레이션자 역할 정보

조직 소유자가 마이그레이션을 완료할 필요성을 제거하기 위해 GitHub에 GitHub Enterprise Importer을(를) 사용하는 고유한 역할을 포함합니다.

마이그레이션자 역할을 부여하면 마이그레이션을 처리할 다른 팀 또는 개인을 지정할 수 있습니다.

  • GitHub.com 또는 GHE.com에서만 조직에 대한 마이그레이션자 역할을 부여할 수 있습니다.
  • 개별 사용자 또는 팀에 마이그레이션자 역할을 부여할 수 있습니다. 팀에 마이그레이션자 역할을 할당할 것을 매우 권장합니다. 그런 다음 팀 멤버십을 조정하여 마이그레이션을 실행할 수 있는 사람을 추가로 사용자 지정할 수 있습니다. "팀에 조직 멤버 추가" 및 "팀에서 조직 구성원 제거" 항목을 참조하세요.
  • 마이그레이션자는 마이그레이션을 실행하기 위한 모든 요구 사항을 충족하는 personal access token을 사용해야 합니다.

Warning

조직의 마이그레이션자 역할을 사용자 또는 팀에 부여하면 해당 조직의 리포지토리를 가져오거나 내보낼 수 있는 기능을 부여하게 됩니다.

마이그레이션자 역할을 부여하려면 "마이그레이션자 역할 부여"를 참조하세요.

Note

  • 두 조직 간의 리포지토리를 마이그레이션하는 경우 두 조직의 동일한 개인 또는 팀에 마이그레이션자 역할을 부여할 수 있지만 각각 개별적으로 부여해야 합니다.
  • 엔터프라이즈 계정에 대한 마이그레이션자 역할을 부여할 수 없습니다. 따라서 대상 엔터프라이즈의 소유자인 경우에만 조직 마이그레이션을 실행할 수 있습니다. 그러나 원본 조직의 엔터프라이즈 소유자에게 마이그레이션자 역할을 부여할 수 있습니다.
  • GitHub CLI은(는) GitHub Enterprise Server에서 조직에 대한 마이그레이션자 역할 부여를 지원하지 않으므로 GitHub Enterprise Server에서 리포지토리를 마이그레이션하려면 원본 조직의 조직 소유자여야 합니다.

필요한 역할

마이그레이션의 원본 및 대상의 경우 여러 작업에 서로 다른 역할이 필요합니다.

원본 조직

다음 표에는 어떤 역할이 어떤 작업을 수행할 수 있는지 나열되어 있습니다.

작업조직 소유자마이그레이터
마이그레이션 실행
리포지토리 마이그레이션을 위한 마이그레이션자 역할 할당

대상 조직 또는 엔터프라이즈

다음 표에는 어떤 역할이 어떤 작업을 수행할 수 있는지 나열되어 있습니다.

작업엔터프라이즈 소유자조직 소유자마이그레이터
조직을 엔터프라이즈로 마이그레이션
리포지토리 마이그레이션을 위한 마이그레이션자 역할 할당
리포지토리를 조직으로 마이그레이션
마이그레이션 로그 다운로드
마네킹 회수

personal access token에 필요한 범위

마이그레이션을 실행하려면 대상 조직(리포지토리 마이그레이션의 경우) 또는 엔터프라이즈 계정(조직 마이그레이션의 경우)에 액세스할 수 있는 personal access token이 필요합니다. 원본 조직에 액세스할 수 있는 다른 personal access token도 필요합니다.

마이그레이션 로그 다운로드와 같은 다른 작업의 경우 운영할 대상에 액세스할 수 있는 personal access token만 있으면 됩니다.

GitHub personal access token (classic)에 필요한 범위는 사용자 역할과 완료하려는 작업에 따라 달라집니다.

Note

personal access token (classic)만 사용할 수 있으며 fine-grained personal access token은(는) 사용할 수 없습니다. "조직에서 액세스한 personal access tokens (classic) 제한" 정책을 사용하는 경우 GitHub Enterprise Importer를 사용할 수 없다는 의미입니다. 자세한 내용은 Enterprise에서 개인용 액세스 토큰에 대한 정책 적용을(를) 참조하세요.

작업엔터프라이즈 소유자조직 소유자마이그레이터
리포지토리 마이그레이션을 위한 마이그레이션자 역할 할당admin:org
리포지토리 마이그레이션 실행(대상 조직)repo, admin:org, workflowrepo, read:org, workflow
마이그레이션 로그 다운로드repo, admin:org, workflowrepo, read:org, workflow
마네킹 회수admin:org
마이그레이션 실행(원본 조직)admin:org, repoadmin:org, repo
조직 마이그레이션 실행(대상 엔터프라이즈)read:enterprise, admin:org, repo, workflow

마이그레이션자 역할 부여하기

조직 소유자 이외의 사용자가 리포지토리 마이그레이션을 실행하거나 마이그레이션 로그를 다운로드하도록 허용하려면 사용자 또는 팀에 마이그레이션자 역할을 부여할 수 있습니다. 자세한 내용은 마이그레이션자 역할 정보를 참조하세요.

GEI extension of the GitHub CLI 또는 GraphQL API를 사용하여 마이그레이션자 역할을 부여할 수 있습니다.

GEI extension을(를) 사용하여 마이그레이션자 역할 부여

CLI를 사용하여 마이그레이션자 역할을 부여하려면 GEI extension of the GitHub CLI을(를) 설치해야 합니다. 자세한 내용은 GitHub.com에서 GitHub Enterprise Cloud로 리포지토리 마이그레이션을(를) 참조하세요.

  1. GitHub.com에서 마이그레이션자 역할 부여에 대한 모든 요구 사항을 충족하는 personal access token을(를) 만들고 기록합니다. 자세한 내용은 GitHub Enterprise Importer에 대한 personal access token 만들기를 참조하세요.

  2. personal access token을(를) 환경 변수로 설정하고, 아래 명령의 토큰을 위에서 기록한 personal access token로 바꿉니다.

    • 터미널을 사용하는 경우 export 명령을 사용합니다.

      Shell
      export GH_PAT="TOKEN"
      
    • PowerShell을 사용하는 경우 $env 명령을 사용합니다.

      Shell
      $env:GH_PAT="TOKEN"
      
  3. gh gei grant-migrator-role 명령을 사용하여 조직을 마이그레이션자 역할을 부여하려는 조직으로 대체하여 ACTOR를 사용자 또는 팀 이름으로, TYPE을 USER 또는 TEAM(으)로 대체합니다.

    Shell
    gh gei grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
    

    Note

    GHE.com에 대한 마이그레이션자 역할을 부여하는 경우 엔터프라이즈의 하위 도메인에 대한 대상 API URL도 포함해야 합니다. 예: --target-api-url https://api.octocorp.ghe.com

GraphQL API를 사용하여 마이그레이션자 역할 부여

grantMigratorRole GraphQL 변형을 사용하여 마이그레이션자 역할 및 revokeMigratorRole 변형을 할당하여 마이그레이션자 역할을 철회할 수 있습니다.

모든 액세스 요구 사항을 충족하는 personal access token(PAT)를 사용해야 합니다. 자세한 내용은 "personal access token에 필요한 범위"를 참조하세요.

grantMigratorRole 변형

이 GraphQL 변형은 마이그레이션 역할을 설정합니다.

mutation grantMigratorRole (
  $organizationId: ID!,
  $actor: String!,
  $actor_type: ActorType!
) {
  grantMigratorRole( input: {
    organizationId: $organizationId,
    actor: $actor,
    actorType: $actor_type
  })
   { success }
}
쿼리 변수설명
organizationIdGetOrgInfo 쿼리의 조직에 대한 ownerId(또는 조직 ID)입니다.
actor마이그레이션 역할을 할당할 팀 또는 사용자 이름입니다.
actor_type마이그레이션자가 USER 또는 TEAM인지 지정합니다.

revokeMigratorRole 변형

이 변형은 마이그레이션자 역할을 제거합니다.

mutation revokeMigratorRole (
  $organizationId: ID!,
  $actor: String!,
  $actor_type: ActorType!
) {
  revokeMigratorRole( input: {
    organizationId: $organizationId,
    actor: $actor,
    actorType: $actor_type
  })
   { success }
}

GitHub Enterprise Importer에 대한 personal access token 만들기

  1. 완료하려는 작업에 대한 역할이 충분한지 확인합니다. 자세한 내용은 "필요한 역할"을 참조하세요.
  2. personal access token (classic)을 만들어 완료하려는 작업에 필요한 모든 범위를 부여하도록 합니다. personal access token (classic)만 사용할 수 있으며 fine-grained personal access token은(는) 사용할 수 없습니다. 자세한 내용은 "개인용 액세스 토큰 관리" 및 "personal access token에 필요한 범위"를 참조하세요.
  3. 액세스해야 하는 조직에 SAML Single Sign-On이 적용되는 경우 SSO에 대한 personal access token에 권한을 부여합니다. 자세한 내용은 "SAML Single Sign-On에 사용할 개인용 액세스 토큰 권한 부여"을(를) 참조하세요.

마이그레이션에 대한 IP 허용 목록 구성

마이그레이션의 원본 또는 대상은 IP 허용 목록(GitHub의 IP 허용 목록 기능 또는 ID 공급자(IdP) IP 허용 목록 제한(예: Azure CAP))을 사용하는 경우 GitHub에서 IP 허용 목록을 구성해야 합니다. "조직에 허용되는 IP 주소 관리" 및 "IP 허용 목록을 사용하여 엔터프라이즈에 대한 네트워크 트래픽 제한" 항목을 참조하세요.

  • GitHub의 IP 허용 목록 기능을 사용하는 경우 아래의 GitHub IP 범위를 원본 및/또는 대상 조직의 허용 목록에 추가해야 합니다.
  • IdP의 IP 허용 목록을 사용하여 GitHub에서 엔터프라이즈에 대한 액세스를 제한하는 경우 마이그레이션이 완료될 때까지 엔터프라이즈 계정 설정에서 이러한 제한을 사용하지 않도록 설정해야 합니다.

IP 범위는 마이그레이션 대상이 GitHub.com 또는 GHE.com인지에 따라 달라집니다.

마이그레이션 원본이 GitHub Enterprise Server인 경우 GitHub IP 범위를 방화벽 구성 또는 GitHub Enterprise Server 인스턴스의 IP 허용 목록에 추가하지 않아도 됩니다. 그러나 미확인 개체 저장소 공급자의 설정에 따라 아래의 GitHub IP 범위에 대한 액세스를 허용하도록 미확인 개체 저장소 공급자의 구성을 업데이트해야 할 수 있습니다.

GitHub.com의 IP 범위

IP 허용 목록에 다음 IP 범위를 추가해야 합니다.

  • 192.30.252.0/22
  • 185.199.108.0/22
  • 140.82.112.0/20
  • 143.55.64.0/20
  • 40.71.233.224/28
  • 2a0a:a440::/29
  • 2606:50c0::/32
  • 20.125.12.8/29 (2023년 11월 8일 00:00 UTC부터 활성화)

언제든지 REST API의 "GitHub 메타 정보 가져오기" 엔드포인트를 사용하여 GitHub Enterprise Importer에서 사용하는 IP 범위의 최신 목록을 가져올 수 있습니다.

응답의 github_enterprise_importer 키에는 마이그레이션에 사용되는 IP 범위 목록이 포함되어 있습니다.

자세한 내용은 "메타 데이터에 대한 REST API 엔드포인트" 항목을 참조하세요.

GHE.com의 IP 범위

IP 허용 목록에 다음 IP 범위를 추가해야 합니다.

  • 192.30.252.0/22
  • 185.199.108.0/22
  • 140.82.112.0/20
  • 143.55.64.0/20
  • 2a0a:a440::/29
  • 2606:50c0::/32
  • 4.231.155.80/29
  • 4.225.9.96/29
  • 51.12.144.32/29
  • 20.199.1.232/29
  • 51.12.152.184/29
  • 20.199.6.80/29
  • 51.12.152.240/29
  • 20.19.101.136/29
  • 51.12.252.16/28
  • 74.241.131.48/28
  • 20.240.211.176/28
  • 108.143.221.96/28
  • 20.61.46.32/28
  • 20.224.62.160/28

GitHub Enterprise Server에서 마이그레이션하고 방화벽 규칙과 함께 Blob Storage 계정을 사용하는 경우:

  • GHE.com의 송신 IP 범위에 대한 액세스를 허용해야 합니다. "GHE.com의 네트워크 세부 정보" 항목을 참조하세요.
  • Azure Blob Storage를 사용하는 경우 몇 가지 추가 구성을 수행해야 할 수도 있습니다. GitHub 지원에 문의하세요.

추가 참고 자료