내부 스테이지용 Google Private Service Connect 엔드포인트¶
이 항목에서는 `Google Private Service Connect 엔드포인트<https://cloud.google.com/vpc/docs/private-service-connect#endpoints>`_를 통해 Snowflake 내부 스테이지로 연결하는 자세한 지침과 개념을 제공합니다.
Google Private Service Connect 엔드포인트: 개요¶
Google Private Service Connect(PSC) 엔드포인트를 구성하여 Snowflake 내부 스테이지에 안전한 비공개 연결을 제공합니다. 이러한 설정을 통해 Snowflake 내부 스테이지로의 데이터 로딩 및 언로딩 작업에서 공용 인터넷이 아닌 Google PSC 네트워크를 사용할 수 있습니다. 다음 다이어그램은 이러한 새로운 지원을 요약하여 보여줍니다.
다음 목록은 다이어그램의 숫자에 대한 정보를 제공합니다.
이 다이어그램에서는 단일 Snowflake 내부 스테이지(2 및 3)를 가리키는 하나의 Google VPC 네트워크에서 단일 PSC 엔드포인트를 보여줍니다.
참고
동일한 Snowflake 내부 스테이지에 액세스하는 동일한 VPC 네트워크 내에서 여러 비공개 엔드포인트를 구성할 수 있습니다.
1번과 같이 온프레미스 사용자는 Snowflake에 직접 연결할 수 있습니다.
Snowflake 내부 스테이지에 연결하려면 온프레미스 사용자는 VPC 네트워크, 2를 통해 요청을 라우팅한 후 Google PSC 네트워크, 3을 통해 요청을 라우팅하여 Snowflake 내부 스테이지에 연결해야 합니다.
이점¶
Snowflake 내부 스테이지에 액세스하기 위해 비공개 엔드포인트를 구현할 때의 이점은 다음과 같습니다.
내부 스테이지 데이터가 공용 인터넷을 트래버스하지 않습니다.
온프레미스 클라이언트 및 SaaS 애플리케이션이 Google PSC 네트워크를 사용하여 Snowflake 내부 스테이지 버킷에 안전하게 액세스할 수 있습니다.
내부 스테이지 데이터에 액세스할 수 있도록 관리자가 방화벽 설정을 수정할 필요가 없습니다.
관리자가 일관된 보안 및 모니터링을 구현하여 내부 스테이지에 대한 액세스를 제한할 수 있습니다.
제한 사항¶
최대 10개의 VPC 네트워크가 Snowflake 계정의 허용 목록에 추가될 수 있습니다.
Snowflake 내부 스테이지에 액세스하기 위한 비공개 엔드포인트 구성하기¶
Snowflake 내부 스테이지에 액세스하도록 비공개 엔드포인트를 구성하려면 다음 3가지 역할을 사용해야 합니다.
Snowflake ACCOUNTADMIN 시스템 역할.
Google Cloud 관리자.
네트워크 관리자.
조직의 역할 계층 구조에 따라 두 명 이상의 사용자 또는 팀과 구성 작업을 조정해야 할 수도 있습니다.
Google PSC 엔드포인트를 통한 Snowflake 내부 스테이지로의 보안 액세스를 구성 및 구현하려면 다음 단계를 완료합니다.
Google Cloud 관리자는 Google Cloud 콘솔을 사용하여 Snowflake가 네트워크 액세스를 제한하는 데 사용하는 정규화된 경로 값을 가져옵니다.
https://console.cloud.google.com에서 Quick Access » VPC Network`로 이동한 후 |ra| :extui:`VPC Networks » :extui:`Name`에서 프로젝트를 선택합니다.
VPC network details 에서 Equivalent REST 를 선택합니다.
Equivalent REST Response`에서 `”selfLink”``의 값을 복사합니다.
이 값은 :samp:`projects/{vpc_network_name}/global/networks/{network_name}`과 같아야 합니다.
이 값을 다음 단계에서 시스템 함수에 대한
'google_cloud_vpc_network_name'인자로 제공합니다.
Snowflake에서 ACCOUNTADMIN 역할을 통해 SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS 함수를 호출하여 내부 스테이지에 대한 액세스 권한을 부여합니다. 예:
USE ROLE ACCOUNTADMIN; SELECT SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS('<google_cloud_vpc_network_name>');
Google Cloud 관리자로 https://console.cloud.google.com/에 방문하고, Google PSC 엔드포인트를 생성한 후 Snowflake가 액세스할 VPC 네트워크에 연결합니다.
새로 생성된 Google PSC 엔드포인트 IP 주소 및 Google PSC 엔드포인트가 연결되는 VPC 네트워크 ID를 기록합니다.
네트워크 관리자로 DNS 설정을 구성하여 URLs를 확인합니다.
새로운 비공개 DNS 영역에서 다음 값을 사용하여 새 레코드를 만듭니다.
내부 스테이지의 버킷 이름을 사용합니다.
리소스 레코드 유형:
AIPv4 주소:
10.10.80.55— 이전에 생성한 Google PSC 엔드포인트의 IP 주소를 사용합니다.CREATE 을 선택합니다.
동일한 VPC의 클라이언트에서, 내부 스테이지 URL이
nslookup또는dig명령을 사용하여 엔트포인트의 IP 주소를 해석하는지 확인합니다.예를 들어, 다음
dig명령을 사용하여 해석을 확인합니다.dig gcpeuropewest4-63osaw1-stage.storage.googleapis.com올바르게 구성된 전역 엔드포인트는 다음과 같은 결과를 반환해야 합니다.
DNS name: gcpeuropewest4-63osaw1-stage
내부 스테이지에 대한 공용 액세스 차단 — 권장됨¶
Snowflake는 사용자가 인증한 VPC 네트워크를 통한 액세스를 제외하고 Google PSC 엔드포인트에 대한 모든 액세스를 거부할 것을 권장합니다. 여기에는 내부 스테이지에 대한 공용 인터넷 액세스 거부가 포함됩니다.
내부 스테이지에 대한 공용 액세스를 차단하려면 SYSTEM$BLOCK_INTERNAL_STAGES_PUBLIC_ACCESS 함수를 호출합니다.
Google 내부 스테이지에 대한 공용 액세스 제어는 Snowflake 서비스에 대한 공용 액세스 제어와 다릅니다. 내부 스테이지에 대한 요청을 차단하려면 네트워크 정책이 아닌 SYSTEM$BLOCK_INTERNAL_STAGES_PUBLIC_ACCESS 함수를 사용합니다. 네트워크 정책과 달리, 이 함수는 어떤 공용 IP 주소는 차단하면서 다른 주소를 허용할 수는 없습니다. 이 함수는 모든 공용 IP 주소를 차단합니다. SYSTEM$BLOCK_INTERNAL_STAGES_PUBLIC_ACCESS 함수를 완료하는 데 몇 분 정도 걸릴 수 있습니다.
공용 액세스가 차단되었는지 확인하기¶
SYSTEM$INTERNAL_STAGES_PUBLIC_ACCESS_STATUS 함수를 실행하여 공용 IP 주소가 내부 스테이지에 액세스할 수 있는지 여부를 확인합니다.
현재 Google Cloud 설정이 모든 공용 트래픽을 차단하는 경우, 이 함수는 :code:`Public Access to internal stages is blocked`를 반환합니다. 이 메시지는 SYSTEM$BLOCK_INTERNAL_STAGES_PUBLIC_ACCESS 함수가 실행된 후 설정이 변경되지 않았음을 나타냅니다.
공용 액세스 차단 해제¶
이전에 차단된 내부 스테이지에 대한 공용 액세스를 허용하기 위해 SYSTEM$UNBLOCK_INTERNAL_STAGES_PUBLIC_ACCESS 함수를 실행할 수 있습니다.
이 함수를 실행하면 내부 스테이지에서 모든 제한 사항이 제거됩니다.
Snowflake 내부 스테이지에 대한 액세스 취소하기¶
Google PSC 비공개 엔드포인트를 통한 Snowflake 내부 스테이지 액세스를 취소하려면 다음 단계를 완료합니다.
Snowflake 관리자로서 ENABLE_INTERNAL_STAGES_PRIVATELINK 매개 변수가 ``TRUE``로 설정되어 있는지 확인합니다. 예:
USE ROLE ACCOUNTADMIN; SHOW PARAMETERS LIKE 'enable_internal_stages_privatelink' IN ACCOUNT;
Snowflake 관리자로서, SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS 함수를 호출하고 비공개 엔드포인트에 대한 기존의 액세스를 승인하는 데 사용된 값과 동일한
google_cloud_vpc_network_name값을 사용하여 비공개 엔드포인트에 대한 액세스 권한을 취소합니다. 예:USE ROLE ACCOUNTADMIN; SELECT SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS('<google_cloud_vpc_network_name>');
Google Cloud 관리자로서, Google Cloud 포털을 통해 비공개 엔드포인트를 삭제합니다.
네트워크 관리자로서, 저장소 계정 URL을 확인하는 데 사용된 DNS 및 별칭 레코드를 제거합니다.
해당 단계를 완료하면 VPC 네트워크에 대한 액세스 권한이 취소됩니다.