Snowflake 관리 저장소 볼륨에 대한 AWS VPC 인터페이스 엔드포인트

이 항목에서는 AWS VPC 인터페이스 엔드포인트를 통해 Snowflake 관리 저장소 볼륨에 연결하기 위한 개념과 자세한 지침을 제공합니다.

개요

Apache Spark와 같은 외부 쿼리 엔진을 사용하여 Snowflake 관리 저장소를 사용하는 Iceberg 테이블에서 읽거나 쓰는 경우, 쿼리 엔진은 Amazon S3에 호스팅된 네이티브 Iceberg 볼륨과 직접 통신합니다. 기본적으로 이 트래픽은 공용 인터넷을 통과할 수 있습니다.

Amazon S3용 AWS PrivateLink 는 관리 저장소 볼륨에 대한 보안 연결을 제공하기 위해 VPC 인터페이스 엔드포인트와 결합할 수 있습니다. 이 설정을 통해 공용 인터넷 대신 AWS 내부 네트워크를 사용하여 외부 쿼리 엔진에서 네이티브 Iceberg 볼륨으로의 읽기 및 쓰기 작업을 수행할 수 있습니다.

이점

Snowflake 관리 저장소 볼륨에 액세스하기 위해 VPC 인터페이스 엔드포인트를 구현할 때의 이점은 다음과 같습니다.

  • 외부 쿼리 엔진이 Snowflake 관리 Iceberg 볼륨에서 읽거나 쓸 때 데이터가 공용 인터넷을 통과하지 않습니다.

  • AWS VPC 외부에서 실행되는 Microsoft PowerBI 등의 클라이언트 및 SaaS 애플리케이션을 Snowflake에 안전하게 연결할 수 있습니다.

  • 볼륨 데이터에 액세스할 수 있도록 관리자가 방화벽 설정을 수정할 필요가 없습니다.

  • 관리자가 쿼리 엔진이 저장소에 연결하는 방식에 대한 일관된 보안 및 모니터링을 구현할 수 있습니다.

제한 사항

AWS는 Amazon S3 서비스에 대해 리전 간 VPC 인터페이스 엔드포인트를 지원하지 않습니다. 따라서 Snowflake 관리 저장소 볼륨에 대한 인바운드 연결을 제공하려면 사용자의 VPC 인터페이스 엔드포인트가 Snowflake 계정과 동일한 리전에 있어야 합니다.

AWS PrivateLink에 대한 리전 간 지원을 정부 리전 또는 중국에서는 사용할 수 없습니다.

FIPS(연방 정보 처리 표준) 준수를 위해 SnowGov 리전을 사용하는 고객은 Amazon S3용 AWS Privatelink가 FIPS 엔드포인트를 지원하지 않는다는 점을 유의해야 합니다.

FIPS가 적용되는 AWS 리전에 대한 자세한 내용은 지원되는 클라우드 리전 섹션을 참조하세요.

계정의 리전 이름을 찾는 방법에 대한 자세한 내용은 계정에 대한 리전의 클라우드 공급자 이름 찾기 섹션을 참조하세요.

AWS PrivateLink의 제한 사항에 대한 자세한 내용은 `AWS 설명서<https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#privatelink-limitations>`_를 참조하세요.

시작하기

요청이 AWS PrivateLink를 통해 Snowflake 관리 저장소 볼륨에 액세스할 수 있도록 AWS 및 Snowflake를 구성하기 전에 전제 조건을 충족해야 합니다.

전제 조건

  • S3용 AWS PrivateLink.

    중요

    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 설치하기 섹션을 참조하십시오.

      • 버전 1.3.0부터 SnowSQL은 자동 업그레이드 발생 시 프로덕션 환경에 영향을 미칠 수 있는 잠재적인 문제를 방지하기 위해 기본적으로 자동 업그레이드를 비활성화합니다. 업그레이드하려면 비운영 환경에서 수동으로 새 버전을 다운로드하여 설치해야 합니다. 이 설정은 비활성화 상태로 유지하는 것이 좋지만, SnowSQL noup 옵션 옵션을 구성하여 자동 업그레이드 동작을 수동으로 활성화할 수 있습니다.

인터페이스 엔드포인트를 사용하여 Snowflake 관리 저장소 볼륨에 액세스하기

VPC 인터페이스 엔드포인트를 구성하여 Snowflake 관리 저장소 볼륨에 액세스하려면 조직에서 다음 역할을 조정해야 합니다.

  1. Snowflake 계정 관리자(즉, Snowflake ACCOUNTADMIN 시스템 역할 사용자).

  2. AWS 관리자.

  3. 네트워크 관리자.

조직에 따라, 2명 이상의 인력 또는 팀이 다음 구성 단계를 구현하는 구성 활동을 조율해야 할 수 있습니다.

절차

VPC 엔드포인트를 통해 Snowflake 관리 저장소 볼륨으로의 안전한 액세스를 구성 및 구현하려면 다음 단계를 완료합니다.

  1. AWS 관리자로 AWS 콘솔을 사용하여 S3에 VPC 엔드포인트를 생성합니다. 다음 단계에서 사용하기 위해 VPCE DNS를 기록하되, :emph:` ` 영역 이름은 기록하지 VPCE마십시오DNS.

    VPCE DNS 이름은 엔드포인트를 생성한 후 인터페이스 엔드포인트를 설명 하여 찾을 수 있습니다.

    예제 VPCE DNS 이름: *.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com

  2. 외부 쿼리 엔진이 VPCE DNS 이름을 직접 사용하도록 구성합니다. VPCE DNS 이름의 *bucket 으로 바꿉니다. 예를 들어, Apache Spark에서 다음을 수행합니다.

    .config("spark.sql.catalog.<catalog_name>.s3.endpoint",
            "bucket.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com")
    

    별도의 Snowflake 계정을 사용하여 테스트를 수행해야 하며, 테스트가 분리된 상태에서 다른 워크로드에 영향을 주지 않고 기능을 테스트하기 위해 테스트 VPC에서 프라이빗 호스팅 DNS 존을 구성합니다.

공개 액세스 차단

AWS PrivateLink를 통해 관리 저장소 볼륨에 액세스하도록 VPC 인터페이스 엔드포인트를 구성한 후, 네트워크 규칙 및 네트워크 정책을 사용하여 볼륨에 대한 액세스를 선택적으로 제한할 수 있습니다.

전제 조건

네트워크 규칙을 사용하여 Snowflake 관리 저장소 볼륨에 대한 액세스를 제한하려면 계정 관리자가 ENFORCE_NETWORK_RULES_FOR_SNOWFLAKE_MANAGED_STORAGE_VOLUME 매개 변수를 활성화해야 합니다.

USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET ENFORCE_NETWORK_RULES_FOR_SNOWFLAKE_MANAGED_STORAGE_VOLUME = true;

네트워크 규칙 만들기

MODE = SNOWFLAKE_MANAGED_STORAGE_VOLUMETYPE = AWSVPCEID 를 통해 네트워크 규칙을 생성하여 VPC 엔드포인트 식별자를 기반으로 관리 저장소 볼륨에 대한 액세스를 제한합니다.

CREATE NETWORK RULE managed_volume_rule
  TYPE = AWSVPCEID
  VALUE_LIST = ('vpce-123abc3420c1931')
  MODE = SNOWFLAKE_MANAGED_STORAGE_VOLUME
  COMMENT = 'Allow access from Horizon and S3 VPC endpoints';

네트워크 정책 적용하기

네트워크 규칙을 사용하는 네트워크 정책을 생성하여 계정에 적용합니다.

CREATE NETWORK POLICY managed_volume_policy
  ALLOWED_NETWORK_RULE_LIST = ('managed_volume_rule')
  COMMENT = 'Restrict Snowflake-managed storage volume access to specific VPC endpoints';

ALTER ACCOUNT SET NETWORK_POLICY = managed_volume_policy;