내부 스테이지를 위한 AWS VPC 인터페이스 엔드포인트¶
이 항목에서는 AWS VPC 인터페이스 엔드포인트를 통해 Snowflake 내부 스테이지로 연결하는 자세한 지침과 개념을 제공합니다.
이 항목의 내용:
개요¶
AWS VPC 인터페이스 엔드포인트 및 AWS Amazon S3용 PrivateLink 를 함께 사용하여 Snowflake 내부 스테이지에 안전하게 연결할 수 있습니다. 이러한 설정을 통해 Snowflake 내부 스테이지로의 데이터 로딩 및 데이터 언로딩 작업에서 공용 인터넷을 통하지 않고 AWS 내부 네트워크를 사용할 수 있습니다.
AWS를 내부 스테이지 액세스를 위한 VPC 인터페이스 엔드포인트를 지원하기 전에는 AWS VPC 내에서 프록시 팜을 생성하여 Snowflake 내부 스테이지로의 보안 액세스를 수립해야 했습니다. Snowflake 내부 스테이지를 위한 VPC 인터페이스 엔드포인트가 지원됨에 따라, 사용자 및 클라이언트 애플리케이션은 이제 비공개 AWS 네트워크를 통해 Snowflake 내부 스테이지에 액세스할 수 있습니다. 다음 다이어그램은 이러한 새로운 지원을 요약하여 보여줍니다.
BEFORE 다이어그램에서 숫자와 관련하여 다음에 유의하십시오.
Snowflake 내부 스테이지에 연결하기 위해 사용자에게 제공되는 옵션 2개는 다음과 같습니다.
옵션 A를 사용하면 숫자 1에서와 같이 내부 스테이지로의 직접 온프레미스 연결이 가능합니다.
옵션 B를 사용하면 숫자 2 및 3과 같이 프록시 팜을 통해 내부 스테이지에 연결할 수 있습니다.
프록시 팜을 사용하면 사용자는 숫자 4로 표시된 Snowflake로의 직접 연결도 가능합니다.
AFTER 다이어그램에서 숫자와 관련하여 다음에 유의하십시오.
이 기능은 업데이트되어 프록시 팜을 통해 Snowflake 또는 Snowflake 내부 스테이지로 연결할 필요가 없습니다.
숫자 5에서와 같이 온프레미스 사용자는 Snowflake에 직접 연결할 수 있습니다.
Snowflake 내부 스테이지에 연결하려면, 온프레미스 사용자는 숫자 6에 해당하는 인터페이스 엔드포인트에 연결한 후 Amazon S3용 AWS PrivateLink를 사용하여 숫자 7에서와 같이 Snowflake 내부 스테이지에 연결합니다.
내부 스테이지 배포당 Amazon S3 버킷의 수는 1개입니다. 내부 스테이지 Amazon S3 버킷의 접두사 를 사용하면 각 Snowflake 계정에서 데이터를 구성할 수 있습니다. Amazon S3 버킷 엔드포인트 URLs은 버킷으로의 연결에서 비공개 연결(즉, S3용 AWS PrivateLink) 사용 여부에 따라 다릅니다.
- 공용 Amazon S3 전역 엔드포인트 URL
<버킷_이름>.s3.region.amazonaws.com/prefix
- 비공개 Amazon S3 엔드포인트 URL
<vpceID>.s3.<리전>.vpce.amazonaws.com/prefix
이점¶
Snowflake 내부 스테이지에 액세스하기 위해 VPC 인터페이스 엔드포인트를 구현할 때의 이점은 다음과 같습니다.
내부 스테이지 데이터가 공용 인터넷을 트래버스할 필요가 없습니다.
AWS VPC 외부에서 실행되는 Microsoft PowerBI 등의 클라이언트 및 SaaS 애플리케이션을 Snowflake에 안전하게 연결할 수 있습니다.
내부 스테이지 데이터에 액세스할 수 있도록 관리자가 방화벽 설정을 수정할 필요가 없습니다.
관리자는 사용자가 저장소 계정에 연결하는 방법과 관련하여 일관적으로 보안 및 모니터링을 구현할 수 있습니다.
제한 사항¶
AWS 공공 클라우드(US) 는 S3용 AWS PrivateLink를 지원하지 않습니다.
자세한 제한 사항은 AWS 설명서 를 참조하십시오.
Snowflake 내부 스테이지에 액세스하도록 VPC 인터페이스 엔드포인트 구성하기¶
Snowflake 내부 스테이지에 액세스하도록 VPC 인터페이스 엔드포인트를 구성하려면, 조직에서 다음 3개의 역할을 지원해야 합니다.
Snowflake 계정 관리자(즉, Snowflake ACCOUNTADMIN 시스템 역할 사용자).
AWS 관리자.
네트워크 관리자.
조직에 따라, 2명 이상의 인력 또는 팀이 다음 구성 단계를 구현하는 구성 활동을 조율해야 할 수 있습니다.
전제 조건¶
-
중요
S3용 AWS PrivateLink는 사용자의 클라우드 환경에서 사용하도록 설정해야 하는 AWS 서비스입니다.
이 서비스의 구성 및 구현과 관련한 지원이 필요한 경우 내부 AWS 관리자에게 문의하십시오.
방화벽 허용 목록을 다음과 같이 업데이트합니다.
아웃바운드 방화벽을 사용 중인 경우 Snowflake에 필요한 모든 URLs이 허용되는지 확인합니다. 자세한 내용은 SnowCD(Connectivity Diagnostic Tool) 섹션을 참조하십시오.
us-east-1
고객 전용: 다음 Snowflake 클라이언트 중 하나를 사용하여 Snowflake에 연결하는 경우 클라이언트 버전을 다음과 같이 업그레이드하십시오.JDBC 드라이버: 3.13.3 이상
ODBC 드라이버: 2.23.2 이상
Snowflake용 Python Connector: 2.5.1 이상
SnowSQL: 1.2.17 이상
SnowSQL를 업그레이드한 후 이 기능을 사용하십시오. 자세한 내용은 SnowSQL 설치하기 섹션을 참조하십시오.
SnowSQL
--noup
옵션 을 사용하는 경우 SnowSQL 자동 업그레이드가 비활성화되며 새 SnowSQL 버전을 다운로드할 수 없음에 유의하십시오. 업그레이드하려면--noup
옵션을 비활성화하고 업그레이드가 완료된 후 다시 활성화하십시오.
절차¶
다음 단계를 완료하여 VPC 엔드포인트를 통한 Snowflake 내부 스테이지로의 보안 액세스를 구성 및 구현하십시오.
Snowflake 계정 관리자로 Snowflake 계정에서 다음 문을 실행하고
privatelink_internal_stage
키에 의해 정의된 값을 기록합니다. Amazon S3 버킷 이름은 왼쪽에서 오른쪽으로 읽을 때 URL의 첫 번째 세그먼트에 정의되어 있음에 유의하십시오. 자세한 내용은 ENABLE_INTERNAL_STAGES_PRIVATELINK 및 SYSTEM$GET_PRIVATELINK_CONFIG 섹션을 참조하십시오.use role accountadmin; alter account set ENABLE_INTERNAL_STAGES_PRIVATELINK = true; select key, value from table(flatten(input=>parse_json(system$get_privatelink_config())));
AWS 관리자로 AWS 콘솔을 사용하여 S3용 AWS PrivateLink의 VPC 엔드포인트를 만듭니다. 다음 단계에서 사용하기 위해 VPCE DNS를 기록하되, VPCE DNS 영역 이름은 기록하지 마십시오.
VPCE DNS 이름은 엔드포인트를 생성한 후 인터페이스 엔드포인트를 설명 하여 찾을 수 있습니다.
이 예에서는 와일드카드(즉,
*
)가 VPCE DNS 이름의 선행 문자로 나열됩니다. 선행 와일드카드를 이전 단계의 Amazon S3 버킷 이름으로 바꿉니다. 예:- 기존 항목
*.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com
- 다음으로 바꾸기
<버킷_이름>.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com
네트워크 관리자로 DNS 설정을 업데이트하여 다음 URL을 확인합니다.
선행 와일드카드 뒤의 VPCE DNS에 붙는
<버킷_이름>.s3.<리전>.amazonaws.com
의 이름이 Amazon S3 버킷 이름으로 바뀝니다.이 예에서는
<버킷_이름>.s3.<리전>.amazonaws.com
을<버킷_이름>.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com
으로 확인합니다.팁
Snowflake 외부에 위치한 다른 Amazon S3 버킷의 액세스에 영향을 줄 수 있으므로 DNS 매핑에서 와일드카드 문자(즉,
*
)를 사용하지 마십시오.별도의 Snowflake 계정을 사용하여 테스트를 수행해야 하며, 테스트가 분리된 상태에서 다른 워크로드에 영향을 주지 않고 기능을 테스트하기 위해 테스트 VPC에서 프라이빗 호스팅 DNS 존을 구성하십시오.
별도의 Snowflake 계정을 사용하는 것이 불가능한 경우, 테스트 사용자를 사용하여 DNS가 변경되는 테스트 VPC에서 Snowflake에 액세스하십시오.
온프레미스 애플리케이션에서 테스트하려면, DNS 전달을 사용하여 DNS가 설정되는 VPC의 AWS 프라이빗 호스팅 존으로 요청을 전달하십시오. VPC 및 온프레미스 모두에 클라이언트 애플리케이션이 있는 경우 AWS Transit Gateway를 사용하십시오.
클라이언트 시스템에서 다음 명령을 실행하여 반환된 IP 주소가 저장소 계정의 개인 IP 주소인지 확인하십시오.
dig <bucket_name>.s3.<region>.amazonaws.com
us-east-1
에 위치한 Snowflake 계정의 경우 Snowflake 클라이언트에서 최신 버전을 사용하고 있는지 확인합니다.