Git을 사용하기 위해 Snowflake 설정하기¶
Git 리포지토리를 통합하고 리포지토리를 복제하면 Snowflake는 리포지토리의 위치, 자격 증명(필요한 경우) 및 Snowflake가 Git 리포지토리 API와 상호 작용하는 방법에 대한 세부 정보를 지정하는 Git 리포지토리 스테이지를 생성합니다.
Snowflake에서 Git 리포지토리를 사용하려면 다음 단계를 따르십시오.
필요한 경우 시크릿을 만들어 리포지토리로 인증하기 위한 자격 증명을 포함합니다.
API 통합을 생성 하여 Git 리포지토리 API와의 Snowflake 상호 작용에 대한 세부 정보를 지정합니다.
리포지토리에서 파일을 동기화할 수 있는 Snowflake Git 리포지토리 스테이지를 생성합니다.
인증을 위한 자격 증명을 사용하여 시크릿을 만듭니다.¶
Git 리포지토리에 인증이 필요한 경우, Snowflake가 리포지토리 인증에 사용할 수 있는 자격 증명이 포함된 시크릿을 만들어야 합니다.
이 시크릿은 여러 가지 방법으로 사용할 수 있습니다. Git 리포지토리 API와의 Snowflake 상호 작용을 지정하는 API 통합을 만드는 사용자는 이 시크릿을 ALLOWED_AUTHENTICATION_SECRETS 매개 변수의 값으로 지정해야 합니다. 또한 Git을 사용하도록 Snowflake를 설정 하는 사용자가 시크릿을 지정합니다.
시크릿을 만들려면 다음 권한이 부여된 역할을 사용해야 합니다.
시크릿을 저장할 스키마에 대한 CREATE SECRET 권한
자세한 내용은 CREATE SECRET 액세스 제어 요구 사항 을 참조하십시오.
통합이 포함될 데이터베이스와 스키마에 대한 USAGE 권한
가장 좋은 방법은 시크릿의 PASSWORD 값에 개인 액세스 토큰을 사용하는 것입니다. GitHub에서 개인 액세스 토큰을 생성하는 방법에 대한 자세한 내용은 GitHub 설명서에서 개인 액세스 토큰 관리하기 를 참조하십시오.
- SQL:
CREATE SECRET 명령을 사용하여 Git 리포지토리 자격 증명이 포함된 시크릿을 만들 수 있습니다.
다음 예제의 코드는 사용자 이름과 사용자의 개인 액세스 토큰으로
myco_git_secret
시크릿을 생성하여 자격 증명으로 사용합니다.USE ROLE securityadmin; CREATE ROLE myco_secrets_admin; GRANT CREATE SECRET ON SCHEMA myco_db.integrations TO ROLE myco_secrets_admin; USE ROLE myco_db_owner; GRANT USAGE ON DATABASE myco_db TO ROLE myco_secrets_admin; GRANT USAGE ON SCHEMA myco_db.integrations TO ROLE myco_secrets_admin; USE ROLE myco_secrets_admin; USE DATABASE myco_db; USE SCHEMA myco_db.integrations; CREATE OR REPLACE SECRET myco_git_secret TYPE = password USERNAME = 'gladyskravitz' PASSWORD = 'ghp_token';
리포지토리 API와 상호 작용하기 위한 API 통합 만들기¶
Snowflake가 Git 리포지토리 API와 상호 작용하는 방법에 대한 세부 정보를 지정하려면 API 통합을 만들어야 합니다.
Git을 사용하기 위해 Snowflake 계정을 설정 하는 사용자는 사용할 API 통합을 지정합니다.
API 통합을 만들려면 다음 권한이 부여된 역할을 사용해야 합니다.
계정에 대한 CREATE INTEGRATION 권한
자세한 내용은 CREATE API INTEGRATION 액세스 제어 요구 사항 을 참조하십시오.
시크릿이 포함된 데이터베이스와 스키마에 대한 USAGE 권한
통합이 참조하는 시크릿에 대한 USAGE 권한
Git 리포지토리 API에 대한 API 통합을 만들 때는 다음을 수행해야 합니다.
git_https_api
를 API_PROVIDER 매개 변수의 값으로 지정합니다.인증이 필요한 경우 ALLOWED_AUTHENTICATION_SECRETS 매개 변수의 값으로 리포지토리의 자격 증명이 포함된 시크릿 을 지정합니다. 다음 중 하나를 지정할 수 있습니다.
Snowflake가 리포지토리를 인증할 때 사용할 수 있는 하나 이상의 Snowflake 시크릿(쉼표로 구분된 목록)
모든 시크릿을 사용할 수 있도록 지정하는 문자열
'all'
(대/소문자 구분 없음)시크릿을 사용할 수 없음을 지정하는 문자열
'none'
(대/소문자 구분 없음)
- SQL:
CREATE API INTEGRATION 명령을 사용하여 Git 리포지토리 API와의 Snowflake 상호 작용에 대한 세부 정보를 지정하는 API 통합을 만들 수 있습니다.
다음 예제의 코드는 이름이
git_api_integration
인 API 통합을 생성합니다.USE ROLE securityadmin; CREATE ROLE myco_git_admin; GRANT CREATE INTEGRATION ON ACCOUNT TO ROLE myco_git_admin; USE ROLE myco_db_owner; GRANT USAGE ON DATABASE myco_db TO ROLE myco_git_admin; GRANT USAGE ON SCHEMA myco_db.integrations TO ROLE myco_git_admin; USE ROLE myco_secrets_admin; GRANT USAGE ON SECRET myco_git_secret TO ROLE myco_git_admin; USE ROLE myco_git_admin; USE DATABASE myco_db; USE SCHEMA myco_db.integrations; CREATE OR REPLACE API INTEGRATION git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = (myco_git_secret) ENABLED = TRUE;
Git 리포지토리 스테이지를 생성하고 리포지토리를 복제합니다.¶
Snowflake가 Git 리포지토리와 함께 작동하도록 설정하려면 리포지토리에서 가져온 파일을 포함할 Git 리포지토리 스테이지를 생성합니다.
Git 리포지토리 스테이지는 다음을 지정합니다.
리포지토리의 출처
Git에서,
origin
은 원격 리포지토리 URL의 단축어입니다. Git 리포지토리를 사용하도록 Snowflake를 설정할 때 이 URL을 사용하십시오. URL은 HTTPS를 사용해야 합니다. 원본 URL은 다음 방법으로 검색할 수 있습니다.GitHub 사용자 인터페이스에서 리포지토리 홈 페이지에서 원본 URL를 가져오려면 Code 버튼을 선택한 다음 버튼 아래에 표시되는 상자에서 HTTPS URL을 복사합니다.
명령줄에서 다음 예제와 같이 로컬 리포지토리 내에서
git config
명령을 사용합니다.$ git config --get remote.origin.url https://github.com/my-account/snowflake-extensions.git
git config
에 대한 참조 정보는 git 설명서 를 참조하십시오.
리포지토리로 인증할 때 Snowflake가 사용할 자격 증명(필요한 경우)
리포지토리 API와의 Snowflake 상호 작용에 대한 세부 정보를 지정하는 API 통합
Git 리포지토리 스테이지를 만들려면 다음 권한이 부여된 역할을 사용해야 합니다.
리포지토리가 포함된 스키마에 대한 CREATEGITREPOSITORY 권한
자세한 내용은 CREATE GIT REPOSITORY 액세스 제어 요구 사항 을 참조하십시오.
Git 인증을 위한 자격 증명이 포함된 시크릿에 대한 USAGE 권한
Git 리포지토리 스테이지가 참조하는 API 통합에 대한 USAGE 권한
Snowsight 또는 SQL 중 하나를 사용하여 Git 리포지토리 스테이지를 생성할 수 있습니다.
CREATE GIT REPOSITORY 명령을 사용하여 Git 리포지토리 스테이지를 생성할 수 있습니다.
snowflake_extensions
명령을 사용하여 Git 리포지토리 스테이지를 생성할 수 있습니다. 이 스테이지에서는 인증을 위한 자격 증명과 함께 git_api_integration
API 통합 및 myco_git_secret
시크릿을 지정합니다.
USE ROLE securityadmin;
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 = git_api_integration
GIT_CREDENTIALS = myco_git_secret
ORIGIN = 'https://github.com/my-account/snowflake-extensions.git';
Snowsight 를 사용하여 Git 리포지토리를 Snowflake와 통합할 수 있습니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Data » Databases 를 선택합니다.
오브젝트 탐색기에서, 생성 중인 Git 리포지토리 스테이지를 포함시킬 데이터베이스와 스키마를 선택합니다.
Create » Git Repository 를 선택합니다.
Create Git Repository 대화 상자에서 Repository Name 에 대해 스키마에서 이 리포지토리를 고유하게 식별할 수 있는 이름을 입력합니다.
명명 지침은 식별자 요구 사항 섹션을 참조하십시오.
Origin 에 원격 리포지토리의 원본 URL을 입력합니다.
API Integration 드롭다운 메뉴에서 리포지토리 스테이지를 생성할 때 참조할 API 통합을 선택합니다.
사용할 API 통합이 없는 경우 통합을 만들기 위해 SQL을 사용할 Create new API integration in Worksheets 를 선택합니다. 자세한 내용은 리포지토리 API와 상호 작용하기 위한 API 통합 만들기 및 CREATE API INTEGRATION 섹션을 참조하십시오.
선택 사항: Comment 에, 다른 사용자에게 이 통합을 설명하는 텍스트를 입력합니다.
Authentication 의 경우 원격 리포지토리에 인증이 필요한 경우 토글을 켭니다.
토글이 켜진 경우 Secret 드롭다운에서 Git 통합에서 원격 리포지토리로 인증할 때 참조해야 하는 시크릿을 선택합니다.
사용할 시크릿이 없는 경우 시크릿을 만들기 위해 SQL을 사용할 Create new secret in Worksheets 를 선택합니다. 자세한 내용은 인증을 위한 자격 증명을 사용하여 시크릿을 만듭니다. 및 CREATE SECRET 섹션을 참조하십시오.
Create 를 선택합니다.
통합을 성공적으로 만들면 리포지토리가 스키마 아래 Git Repositories 디렉터리에 나타납니다. 또한 리포지토리 디렉터리, 분기, 태그를 나열하는 페이지도 표시됩니다.