Google Cloud Private Service Connect 및 Snowflake¶
이 항목에서는 공용 인터넷을 통과하지 않고 Google Cloud Virtual Private Cloud(VPC) 네트워크 서브넷을 Google Cloud 에서 호스팅되는 Snowflake 계정에 연결하도록 Google Cloud Private Service Connect를 구성하는 개념과 방법을 설명합니다.
참고: Google Cloud Private Service Connect는 Snowflake에서 제공하는 서비스가 아닙니다. Snowflake가 Snowflake 계정과 함께 사용할 수 있도록 지원하는 Google 서비스입니다.
개요¶
Google Cloud Private Service Connect 는 비공개 IP 주소를 통해 Snowflake에 액세스할 수 있도록 하여 비공개 연결을 제공합니다. Snowflake는 네트워크(즉, 고객 네트워크)에 리소스로 표시되지만 트래픽은 Google 네트워킹 백본을 통해 VPC 에서 VPC 로 단방향으로 흐릅니다. 이 설정은 안전한 비공개 통신을 제공하는 동시에 네트워크 구성을 상당히 간소화합니다.
다음 다이어그램은 Google Cloud VPC 고객과 Snowflake 서비스에 대한 Google Cloud Private Service Connect 아키텍처를 요약한 것입니다.

Google Compute Engine(즉, 가상 머신)은 포워딩 규칙(1)으로 라우팅되는 비공개 가상 주소 IP 에 연결합니다. 전달 규칙은 비공개 연결(2)을 통해 서비스 첨부 파일에 연결합니다. 연결은 Snowflake(4)로 리디렉션되는 부하 분산 장치(3)를 통해 라우팅됩니다.
제한 사항¶
프로젝트당 최대 10개까지 연결할 수 있습니다.
계정당 최대 50개까지 연결할 수 있습니다.
셀프 서비스 관리를 위한 일부 Snowflake 시스템 함수는 지원되지 않습니다. 자세한 내용은 Google Cloud 에서 계정에 대한 현재 제한 사항 섹션을 참조하십시오.
자세한 내용은 다음을 참조하십시오.
Google Cloud VPC 환경 구성하기¶
이 섹션에서는 Google Cloud VPC 환경 구성을 위한 Snowflake 관련 세부 정보를 다룹니다.
중요
Snowflake는 Google Cloud 환경 구성에 대한 책임이 없습니다. 이 프로시저는 Google Cloud CLI 사용의 기본 사항을 보여 주지만, 최종적인 가이드는 아닙니다. 예:
Google Cloud CLI 대신 Google Cloud console 을 사용하여 Google Cloud 환경을 구성할 수 있으며, 이 경우에는 단계가 변경됩니다. 예를 들어, Google Cloud console 을 사용하는 경우 전달 규칙이 아닌 엔드포인트를 생성하는 것입니다.
필수인 방화벽 업데이트 및 DNS 레코드를 구성하는 방법은 표시되지 않습니다.
다른 리전에서 엔드포인트를 사용할 수 있도록 하는 방법은 표시되지 않습니다(Private Service Connect 엔드포인트는 리전 리소스임). 다른 리전에서 엔드포인트를 사용할 수 있도록 설정하는 방법에 대한 자세한 내용은 Google 설명서 를 참조하십시오.
추가 도움이 필요하면 내부 Google Cloud 관리자에게 문의하십시오.
Snowflake 계정 관리자(즉, ACCOUNTADMIN 시스템 역할이 있는 사용자)로서 워크시트를 열고 SYSTEM$GET_PRIVATELINK_CONFIG 함수를 호출합니다. 후속 단계를 위해 출력을 저장해야 합니다.
예:
USE ROLE ACCOUNTADMIN; SELECT key, value FROM TABLE(flatten(input=>parse_json(system$get_privatelink_config())));
Google Cloud CLI 를 사용하여 gcloud 라이브러리 를 최신 버전으로 업데이트하십시오.
gcloud components update
다음 명령을 사용하여 에서 Google Cloud 으로 인증합니다.
gcloud auth login
Google Cloud VPC 에서 전달 규칙이 있어야 하는 프로젝트 ID 를 설정합니다.
gcloud config set project <project_id>
프로젝트 ID 목록을 구하려면 다음 명령을 실행하십시오.
gcloud projects list --sort-by=projectId
Google Cloud VPC 에서 _ 가상 IP 주소를 `생성 합니다.
gcloud compute addresses create <customer_vip_name> \ --subnet=<subnet_name> \ --addresses=<customer_vip_address> --region=<region>
여기서
customer_vip_name
는 가상 IP 규칙의 이름(예:psc-vip-1
)을 지정합니다.subnet_name
은 서브넷의 이름을 지정합니다.customer_vip_address
는 모든 비공개 연결 URLs 이 확인할 IP 주소를 지정합니다. 네트워크에서 IP 주소를 지정하거나 CIDR 표기법을 사용하여 IP 주소 범위를 지정합니다.region
은 Snowflake 계정이 위치한 클라우드 리전을 지정합니다.
예:
gcloud compute addresses create psc-vip-1 \ --subnet=psc-subnet \ --addresses=192.168.3.3 \ --region=us-central1
출력:
Created [https://www.googleapis.com/compute/v1/projects/docstest-123456/regions/us-central1/addresses/psc-vip-1].
서브넷을 Private Service Connect 엔드포인트로 라우팅한 다음 Snowflake 서비스 엔드포인트로 라우팅하도록 전달 규칙 을 만듭니다.
gcloud compute forwarding-rules create <name> \ --region=<region> \ --network=<network_name> \ --address=<customer_vip_name> \ --target-service-attachment=<privatelink-gcp-service-attachment>
여기서
name
은 전달 규칙의 이름을 지정합니다.region
은 Snowflake 계정이 위치한 클라우드 리전을 지정합니다.network_name
은 이 전달 규칙의 네트워크 이름을 지정합니다.customer_vip_name
은 이전 단계에서 생성한 가상 IP 주소의<이름>
값(즉,psc-vip-1
)을 지정합니다.privatelink-gcp-service-attachment
는 이전 단계에서 SYSTEM$GET_PRIVATELINK_CONFIG 함수를 실행할 때 얻은 Snowflake 서비스 엔드포인트를 지정합니다.
예:
gcloud compute forwarding-rules create test-psc-rule \ --region=us-central1 \ --network=psc-vpc \ --address=psc-vip-1 \ --target-service-attachment=projects/us-central1-deployment1-c8cc/regions/us-central1/serviceAttachments/snowflake-us-central1-psc
출력:
Created [https://www.googleapis.com/compute/projects/mdlearning-293607/regions/us-central1/forwardingRules/test-psc-rule].
다음 명령을 사용하여 전달 규칙이 성공적으로 생성되었는지 확인합니다.
gcloud compute forwarding-rules list --regions=<region>
여기서
region
은 Snowflake 계정이 위치한 클라우드 리전입니다. 예를 들어 Snowflake 계정이europe-west2
리전에 있는 경우,< 리전>
을europe-west2
로 바꿉니다.
전체 Google Cloud 리전 목록 및 형식은 사용할 수 있는 리전 목록 보기 섹션을 참조하십시오.
DNS 설정을 업데이트합니다.
SYSTEM$GET_PRIVATELINK_CONFIG 함수가 반환한 URLs 주소가 사용자가 생성한 VIP 주소(
<customer_vip_address>
)로 확인되도록 Snowflake에 대한 모든 요청을 Private Service Connect 엔드포인트를 통해 라우팅해야 합니다.SYSTEM$GET_PRIVATELINK_CONFIG 의 출력에서 얻을 수 있는 값은 비공개 연결을 통해 액세스하는 Snowflake 기능에 따라 달라집니다. 사용 가능한 값에 대한 설명은 반환 값 섹션을 참조하십시오.
regionless-snowsight-privatelink-url
및snowsight-privatelink-url
의 값은 비공개 연결을 사용하여 Snowsight 및 Snowflake Marketplace 에 대한 액세스를 허용합니다. 하지만 URL 리디렉션을 사용하려는 경우 추가 구성이 있습니다. 자세한 내용은 Snowsight & 비공개 연결 섹션을 참조하십시오.참고
DNS 구성에 대한 전체 설명은 이 절차의 범위를 벗어납니다. 예를 들어, Cloud DNS 를 사용하여 비공개 DNS 존을 사용자 환경에 통합하도록 선택할 수 있습니다. 내부 Google Cloud 및 클라우드 인프라 관리자에게 문의하여 DNS 에서 URLs 을 올바르게 구성하고 해결하십시오.
Snowflake에 연결하기¶
Snowflake에 연결하기 전에, 선택적으로 SnowCD (Snowflake 연결 진단 도구)를 활용하여 Snowflake 및 Private Service Connect와의 네트워크 연결을 평가할 수 있습니다. 자세한 내용은 SnowCD 및 SYSTEM$ALLOWLIST_PRIVATELINK 를 참조하십시오.
비공개 연결 계정으로 Snowflake에 연결하려면 URL을 사용하여 연결하기 섹션을 참조하십시오.
Google Private Service Connect와 함께 SSO 사용하기¶
Snowflake는 Google Cloud Private Service Connect와 함께 SSO 를 사용할 수 있도록 지원합니다. 자세한 내용은 다음을 참조하십시오.
클라이언트 리디렉션을 Google Cloud Private Service Connect와 함께 사용¶
Snowflake는 클라이언트 리디렉션을 Google Cloud Private Service Connect와 함께 사용할 수 있도록 지원합니다.
자세한 내용은 클라이언트 연결 리디렉션하기 섹션을 참조하십시오.
비공개 연결로 복제 및 Tri-Secret Secure 사용하기¶
Snowflake는 대상 계정에서 Tri-Secret Secure 또는 이 기능을 활성화하는지에 관계없이 원본 계정에서 대상 계정으로의 데이터 복제를 지원합니다.
공개 액세스 차단 — 권장¶
Google Cloud Private Service Connect 연결을 테스트한 후 선택적으로 네트워크 정책을 사용하여 Snowflake에 대한 공개 액세스를 차단할 수 있습니다. 자세한 내용은 네트워크 정책으로 네트워크 트래픽 제어하기 섹션을 참조하십시오.
CIDR 블록 범위를 구성하여 조직의 IP 주소 범위 를 사용해 Snowflake로의 공용 액세스를 차단합니다. 이 범위는 가상 네트워크 범위에 속할 수 있습니다.
CIDR 블록 범위가 설정되면, CIDR 블록 범위 내의 IP 주소만 Snowflake에 액세스할 수 있습니다.
네트워크 정책을 사용하여 공용 액세스를 차단하려면:
IPv4 네트워크 규칙을 생성하거나 기존 IPv4 네트워크 규칙을 편집하여 조직에 CIDR 차단 범위를 추가합니다.
IPv4 네트워크 규칙을 사용하도록 네트워크 정책을 생성하거나 수정했습니다.
사용자 계정에서 네트워크 정책을 사용하도록 설정합니다.