서드 파티 Git 저장소에 연결

이 문서에서는 원격 저장소를 Dataform 저장소에 연결하는 방법을 보여줍니다. 저장소를 연결하면 Dataform 개발 작업공간에서 변경한 내용을 원격 Git 저장소로 푸시하고 가져올 수 있습니다.

HTTPS 또는 SSH를 통해 원격 저장소를 연결할 수 있습니다.

다음 표에는 저장소에 사용할 수 있는 지원되는 Git 제공업체 및 연결 메서드가 나와 있습니다.

Git 제공업체 연결 방법
Azure DevOps 서비스 SSH
Bitbucket SSH
GitHub SSH 또는 HTTPS
GitLab SSH 또는 HTTPS

시작하기 전에

  1. 조직 또는 프로젝트에서 dataform.restrictGitRemotes 조직 정책을 사용하여 원격 Git 저장소를 제한하는 경우 원격 저장소에 연결하려는 Dataform 저장소를 만들기 전에 정책의 허용 목록에 원격 Git 저장소가 추가되었는지 확인합니다. 자세한 내용은 원격 저장소 제한을 참조하세요.
  2. Dataform 저장소를 만들거나 선택합니다. 나중에 기본 Dataform 서비스 계정과 보안 비밀을 공유할 때 필요합니다.

필요한 역할

Dataform 저장소를 원격 Git 저장소에 연결하는 데 필요한 권한을 얻으려면 관리자에게 저장소에 대한 Dataform 관리자(roles/dataform.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

SSH를 통해 원격 저장소 연결

SSH를 통해 원격 저장소를 연결하려면 SSH 키와 Secret Manager 보안 비밀을 생성해야 합니다. SSH 키는 공개 SSH 키와 비공개 SSH 키로 구성됩니다. 공개 SSH 키를 Git 제공업체와 공유하고 비공개 SSH 키로 Secret Manager 보안 비밀을 만들어야 합니다. 그런 다음 기본 Dataform 서비스 계정과 보안 비밀을 공유합니다.

Dataform은 비공개 SSH 키가 포함된 보안 비밀을 사용하여 Git 제공업체에 로그인하여 개발자를 대신하여 변경사항을 커밋합니다. Dataform은 개발자의 Google Cloud 이메일 주소를 사용하여 이러한 커밋을 만들어 각 커밋을 알 수 있습니다.

SSH를 통해 원격 저장소를 Dataform 저장소에 연결하려면 다음 단계를 따르세요.

  1. Git 제공업체에서 다음을 수행합니다.

    Azure DevOps 서비스

    1. Azure DevOps 서비스에서 비공개 SSH 키를 만듭니다.
    2. Azure DevOps Services 저장소에 공개 SSH 키를 업로드합니다.

    Bitbucket

    1. Bitbucket에서 비공개 SSH 키를 만듭니다.
    2. Bitbucket 저장소에 공개 SSH 키를 업로드합니다.

    GitHub

    1. GitHub에서 비공개 SSH 키를 만듭니다.
    2. GitHub 저장소에 GitHub 공개 SSH 키를 업로드합니다.

    GitLab

    1. GitLab에서 비공개 SSH 키를 만듭니다.
    2. GitLab 저장소에 GitLab 공개 SSH 키를 업로드합니다.
  2. Secret Manager에서 보안 비밀을 만들고 비공개 SSH 키를 보안 비밀 값으로 설정합니다.

    1. 기본 Dataform 서비스 계정에 보안 비밀에 대한 액세스 권한을 부여합니다.

      기본 Dataform 서비스 계정의 형식은 다음과 같습니다.

      service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
      
    2. 서비스 계정에 roles/secretmanager.secretAccessor 역할을 부여합니다.

  3. Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.

    Dataform으로 이동

  4. 원격 저장소에 연결할 Dataform 저장소를 선택합니다.

  5. 저장소 페이지에서 설정 > Git과 연결을 클릭합니다.

  6. 원격 저장소 링크 창의원격 Git 저장소 URL 필드에 .git로 끝나는 원격 Git 저장소 URL을 입력합니다.

    원격 Git 저장소 URL은 다음 형식 중 하나여야 합니다.

    • 절대 URL: ssh://git@{host_name}[:{port}]/{repository_path}. port는 선택사항입니다.
    • SCP와 같은 URL: git@{host_name}:{repository_path}
  7. 기본 원격 브랜치 이름 필드에 원격 Git 저장소의 기본 개발 브랜치 이름을 입력합니다.

  8. 보안 비밀 드롭다운에서 원격 Git 저장소 보안 비밀을 선택합니다.

  9. SSH 공개 호스트 키 값 필드에 Git 제공업체의 공개 호스트 키를 입력합니다.

    Azure DevOps 서비스

    SSH 공개 호스트 키 값은 known_hosts 파일 형식이어야 합니다. 값에는 base64 형식으로 인코딩된 알고리즘과 공개 키가 포함되어야 하지만 다음 형식처럼 호스트 이름이나 IP는 포함되지 않습니다.

    ALGORITHM BASE64_KEY_VALUE
    

    Azure DevOps Services 공개 호스트 키를 검색하려면 터미널에서 ssh-keyscan -t rsa ssh.dev.azure.com 명령어를 실행합니다.

    Bitbucket

    SSH 공개 호스트 키 값은 known_hosts 파일 형식이어야 합니다. 값에는 base64 형식으로 인코딩된 알고리즘과 공개 키가 포함되어야 하지만 다음 형식처럼 호스트 이름이나 IP는 포함되지 않습니다.

    ALGORITHM BASE64_KEY_VALUE
    

    Bitbucket 공개 호스트 키를 검색하려면 SSH 구성을 참조하세요.

    GitHub

    SSH 공개 호스트 키 값은 known_hosts 파일 형식이어야 합니다. 값에는 base64 형식으로 인코딩된 알고리즘과 공개 키가 포함되어야 하지만 다음 형식처럼 호스트 이름이나 IP는 포함되지 않습니다.

    ALGORITHM BASE64_KEY_VALUE
    

    GitHub 공개 호스트 키를 검색하려면 GitHub의 SSH 키 지문을 참조하세요.

    GitLab

    SSH 공개 호스트 키 값은 known_hosts 파일 형식이어야 합니다. 값에는 base64 형식으로 인코딩된 알고리즘과 공개 키가 포함되어야 하지만 다음 형식처럼 호스트 이름이나 IP는 포함되지 않습니다.

    ALGORITHM BASE64_KEY_VALUE
    

    GitLab 공개 호스트 키를 검색하려면 SSH known_hosts 항목을 참조하세요.

  10. 링크를 클릭합니다.

HTTPS를 통해 원격 저장소 연결

HTTPS를 통해 원격 저장소를 연결하려면 개인 액세스 토큰으로 Secret Manager 보안 비밀을 만들고 기본 Dataform 서비스 계정과 보안 비밀을 공유해야 합니다.

그러면 Dataform은 액세스 토큰을 사용하여 Git 제공업체에 로그인하여 개발자를 대신하여 변경사항을 커밋합니다. Dataform은 개발자의 Google Cloud 이메일 주소를 사용하여 이러한 커밋을 만들어 각 커밋을 알 수 있습니다.

HTTPS를 통해 원격 저장소를 Dataform 저장소에 연결하려면 다음 단계를 따르세요.

  1. Git 제공업체에서 다음을 수행합니다.

    GitHub

    1. GitHub에서 세분화된 개인 액세스 토큰 또는 기본 개인 액세스 토큰을 만듭니다.

      • 세분화된 GitHub 개인 액세스 토큰의 경우 다음을 수행합니다.
      1. 선택한 저장소에 대해서만 저장소 액세스를 선택한 후 연결할 저장소를 선택합니다.

      2. 저장소의 콘텐츠에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.

      3. 필요에 맞게 토큰 만료 시간을 설정합니다.

      • 기본 GitHub 개인 액세스 토큰의 경우 다음을 수행합니다.
      1. Dataform에 repo 권한을 부여합니다.

      2. 필요에 맞게 토큰 만료 시간을 설정합니다.

    2. 조직에서 SAML 싱글 사인온(SSO)을 사용하는 경우 토큰을 승인합니다.

    GitLab

    1. GitLab에서 GitLab 개인 액세스 토큰을 만듭니다.

    2. 토큰 이름을 dataform으로 지정합니다.

      GitLab 개인 액세스 토큰의 이름은 dataform이어야 합니다.

    3. Dataform에 api, read_repository, write_repository 권한을 부여합니다.

    4. 필요에 맞게 토큰 만료 시간을 설정합니다.

  2. Secret Manager에서 원격 저장소의 개인 액세스 토큰이 포함된 보안 비밀을 만듭니다.

  3. 기본 Dataform 서비스 계정에 보안 비밀에 대한 액세스 권한을 부여합니다.

    기본 Dataform 서비스 계정의 형식은 다음과 같습니다.

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. 서비스 계정에 roles/secretmanager.secretAccessor 역할을 부여합니다.
  4. Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.

    Dataform으로 이동

  5. 원격 저장소에 연결할 Dataform 저장소를 선택합니다.

  6. 저장소 페이지에서 설정 > Git과 연결을 클릭합니다.

  7. 원격 저장소 링크 창의원격 Git 저장소 URL 필드에 .git로 끝나는 원격 Git 저장소 URL을 입력합니다.

    원격 Git 저장소 URL은 사용자 이름이나 비밀번호를 포함할 수 없습니다.

  8. 기본 원격 브랜치 이름 필드에 원격 Git 저장소의 기본 개발 브랜치 이름을 입력합니다.

  9. 보안 비밀 드롭다운에서 원격 Git 저장소 보안 비밀을 선택합니다.

  10. 링크를 클릭합니다.

원격 저장소 연결 수정

Dataform 저장소와 원격 Git 저장소 간의 연결을 수정하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.

    Dataform으로 이동

  2. 수정하려는 저장소를 클릭합니다.

  3. 저장소 페이지에서 설정 > Git 연결 수정을 클릭합니다.

  4. 원격 저장소에 연결 창에서 연결 설정을 수정합니다.

  5. 업데이트를 클릭합니다.

다음 단계