Google Cloud Private Service Connect 및 Snowflake¶
이 항목에서는 공용 인터넷을 트래버스하지 않고 Google Cloud VPC(Virtual Private Cloud) 네트워크 서브넷을 Google Cloud Platform에 호스팅된 Snowflake 계정에 연결하도록 Google Cloud Private Service Connect를 구성하는 개념과 방법을 설명합니다.
Google Cloud Private Service Connect는 Snowflake가 제공하는 서비스가 아님 에 유의하십시오. Snowflake가 Snowflake 계정과 함께 사용할 수 있도록 지원하는 Google 서비스입니다.
Business Critical Edition 이상을 사용 중이고 계정에서 Google Cloud Private Service Connect를 사용하려면, Snowflake 지원 에 문의하여 기능 활성화를 요청하십시오.
이 항목의 내용:
개요¶
Google Cloud Private Service Connect 는 개인 IP 주소를 통해 Snowflake에 액세스할 수 있는 비공개 연결을 제공합니다. Snowflake는 사용자의 네트워크(즉, 고객 네트워크)에서 리소스로 나타나지만, 트래픽은 Google 네트워킹 백본을 통해 사용자의 VPC에서 Snowflake VPC로 단방향으로 흐릅니다. 이 설정은 안전한 비공개 통신을 제공하는 동시에 네트워크 구성을 상당히 간소화합니다.
다음 다이어그램은 고객 Google Cloud VPC 및 Snowflake 서비스와 관련한 Google Cloud Private Service Connect 아키텍처를 요약하여 보여줍니다.
Google Compute Engine(즉, 가상 머신)은 전달 규칙(1)으로 라우팅되는 비공개 가상 IP 주소에 연결합니다. 전달 규칙은 비공개 연결(2)을 통해 서비스 첨부 파일에 연결합니다. 연결은 Snowflake(4)로 리디렉션되는 부하 분산 장치(3)를 통해 라우팅됩니다.
제한 사항¶
셀프 서비스 관리를 위한 Snowflake 시스템 함수는 지원되지 않습니다. 자세한 내용은 GCP에서 계정에 대한 현재 제한 사항 섹션을 참조하십시오.
자세한 내용은 다음을 참조하십시오.
구성 절차¶
이 섹션에서는 Snowflake에 연결할 Google Cloud Private Service Connect를 구성하는 방법을 설명합니다.
주의
이 섹션에서는 Google Cloud VPC 환경 구성과 관련하여 Snowflake에만 해당하는 자세한 내용을 설명합니다. 또한, Snowflake는 필수 방화벽 업데이트 및 DNS 레코드를 실제로 구성하지 않음에 유의하십시오.
이러한 구성 작업과 관련한 문제가 발생하면 Google 지원에 직접 문의해야 합니다.
설치 도움말을 보려면 클라우드 SDK: 명령줄 인터페이스 에 관한 설명서를 참조하십시오.
추가 도움이 필요하면 내부 Google Cloud 관리자에게 문의하십시오.
Snowflake 지원 에 연락하여 Google Cloud
<프로젝트_id>
값 목록과 Snowflake에 액세스하는 데 사용하는 해당 URL을 Google Cloud Private Service Connect를 활성화하기 위한 메모와 함께 제공하십시오. Snowflake 지원에서 응답을 받은 후, 다음 단계로 계속 진행합니다.중요
VPC에서 VPC 서비스 제어 를 사용하는 경우 Snowflake 지원에 문의하기 전에 정책에서 Snowflake 서비스에 대한 액세스를 허용하는지 확인하십시오.
이 조치를 취하지 않으면 Snowflake가 프로젝트 ID를 Snowflake 서비스 첨부 허용 목록에 추가할 수 없습니다. 그 결과, 이 기능을 사용하여 Snowflake에 연결하지 못하게 됩니다.
Snowflake 워크시트에서 ACCOUNTADMIN 시스템 역할로 SYSTEM$GET_PRIVATELINK_CONFIG 함수를 실행하고 다음 단계에서 사용할 수 있도록 명령 출력을 저장합니다.
use role accountadmin; select key, value from table(flatten(input=>parse_json(system$get_privatelink_config())));
명령줄 인터페이스(예: Terminal 애플리케이션)에서 gcloud 라이브러리 를 최신 버전으로 업데이트합니다.
gcloud components update
다음 명령을 사용하여 Google Cloud Platform을 인증 합니다.
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>
예:
gcloud compute addresses create psc-vip-1 \ --subnet=psc-subnet \ --addresses=192.168.3.3 \ --region=us-central1 # returns Created [https://www.googleapis.com/compute/v1/projects/docstest-123456/regions/us-central1/addresses/psc-vip-1].
여기서
<고객_vip_이름>
은 가상 IP 규칙의 이름(즉,psc-vip-1
)을 지정합니다.<서브넷_이름>
은 서브넷의 이름을 지정합니다.<고객_vip_주소>
: 모든 비공개 연결 URL이 이 주소로 확인됩니다. 네트워크에서 IP 주소를 지정하거나 CIDR 표기법을 사용하여 IP 주소 범위를 지정합니다.<리전>
은 Snowflake 계정이 있는 클라우드 리전을 지정합니다.
.
서브넷을 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>
예:
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 # returns Created [https://www.googleapis.com/compute/projects/mdlearning-293607/regions/us-central1/forwardingRules/test-psc-rule].
여기서
<이름>
은 전달 규칙의 이름을 지정합니다.<리전>
은 Snowflake 계정이 있는 클라우드 리전을 지정합니다.<네트워크_이름>
은 이 전달 규칙의 네트워크 이름을 지정합니다.<고객_vip_이름>
은 이전 단계에서 생성된 가상 IP 주소의<이름>
값(즉,psc-vip-1
)을 지정합니다.<privatelink-gcp-service-attachment>
는 Snowflake 서비스의 엔드포인트를 지정합니다(2단계 참조).
.
다음 명령을 사용하여 전달 규칙이 성공적으로 생성되었는지 확인합니다.
gcloud compute forwarding-rules list --regions=<region>
이 명령의 클라우드 리전은 Snowflake 계정이 있는 클라우드 리전과 일치해야 합니다.
예를 들어 Snowflake 계정이
europe-west-2
리전에 있는 경우,< 리전>
을europe-west2
로 바꿉니다.Google Cloud 리전과 그 형식 지정을 보여주는 전체 목록은 사용 가능한 리전의 목록 보기 를 참조하십시오.
DNS 설정을 업데이트합니다.
Snowflake에 대한 모든 요청은 (SYSTEM$GET_PRIVATELINK_CONFIG 함수에서) 2단계의 URL이 사용자가 생성한 VIP 주소(
<customer_vip_address>
)로 확인되도록 Private Service Connect 엔드포인트를 통해 라우팅해야 합니다.이러한 엔드포인트 값을 사용하면 Snowflake, Snowsight, Snowflake Marketplace 에 액세스할 수 있으며 OCSP 를 사용하여 Snowflake 클라이언트가 HTTPS 및 연결 URL 을 통해 엔드포인트에 연결을 시도할 때 인증서가 취소되는지 여부를 결정할 수도 있습니다.
얻을 함수 값은 다음과 같습니다.
privatelink-account-url
privatelink-connection-ocsp-urls
privatelink-connection-urls
privatelink-ocsp-url
regionless-privatelink-account-url
regionless-snowsight-privatelink-url
snowsight-privatelink-url
regionless-snowsight-privatelink-url
및snowsight-privatelink-url
의 값은 비공개 연결을 사용하여 Snowsight 및 Snowflake Marketplace 에 대한 액세스를 허용합니다. 하지만 URL 리디렉션을 사용하려는 경우 추가 구성이 있습니다.자세한 내용은 Snowsight 및 비공개 연결 을 참조하십시오.
참고
DNS 구성에 대한 전체 설명은 이 절차의 범위를 벗어납니다. 예를 들어, Cloud DNS 를 사용하여 비공개 DNS 존을 사용자 환경에 통합하도록 선택할 수 있습니다. 사내 Google Cloud 및 클라우드 인프라 관리자에게 문의하여 DNS의 URL을 올바르게 구성 및 확인하십시오.
SnowCD(Connectivity Diagnostic Tool) 를 사용하여 Snowflake에 대한 연결을 테스트합니다.
비공개 연결 계정 URL 로 Snowflake에 연결합니다.
Google Cloud Private Service Connect를 통해 Snowsight에 연결하려면 Snowsight 설명서 의 지침을 따르십시오.
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 또는 이 기능을 활성화하는지에 관계없이 원본 계정에서 대상 계정으로 데이터 복제를 지원합니다.
자세한 내용은 데이터베이스 복제 및 암호화 섹션을 참조하십시오.
공용 액세스 차단하기 — 선택 사항¶
Snowflake와 Google Cloud Private Service Connect의 연결을 테스트한 후에는 선택 사항 으로 네트워크 정책으로 네트워크 트래픽 제어하기 을 사용하여 Snowflake로의 공용 액세스를 차단할 수 있습니다.
CIDR 블록 범위를 구성하여 조직의 IP 주소 범위 를 사용해 Snowflake로의 공용 액세스를 차단합니다. 이 범위는 가상 네트워크 범위에 속할 수 있습니다.
CIDR 블록 범위가 설정되면, CIDR 블록 범위 내의 IP 주소만 Snowflake에 액세스할 수 있습니다.
네트워크 정책을 사용하여 공용 액세스를 차단하려면:
새 네트워크 정책을 생성하거나 기존 네트워크 정책을 수정합니다. 조직에서 사용할 CIDR 블록 범위를 추가합니다.
사용자 계정에서 네트워크 정책을 사용하도록 설정합니다.