Snowflake 관리 저장소 볼륨에 대한 Azure 비공개 엔드포인트¶
이 항목에서는 Microsoft Azure 비공개 엔드포인트를 통해 Snowflake 관리 저장소 볼륨으로 연결하기 위한 자세한 지침과 개념을 제공합니다. Snowflake 관리 저장소 볼륨은 Snowflake를 카탈로그로 사용하는 Apache Iceberg 테이블 의 저장소 위치입니다.
개요¶
Apache Spark 또는 Databricks와 같은 외부 쿼리 엔진을 사용하여 Snowflake 관리 저장소를 사용하는 Iceberg 테이블에서 데이터를 읽거나 쓰는 경우, 쿼리 엔진은 Azure Storage에서 호스팅되는 네이티브 Iceberg 볼륨과 직접 통신합니다. 기본적으로 이 트래픽은 공용 인터넷을 통과할 수 있습니다.
Azure Private Endpoint 및 Azure Private Link 를 함께 사용하여 Snowflake 관리 저장소 볼륨에 안전하게 연결할 수 있습니다. 이 설정을 통해 공용 인터넷 대신 Azure 내부 네트워크를 사용하여 외부 쿼리 엔진에서 네이티브 Iceberg 볼륨으로의 읽기 및 쓰기 작업을 수행할 수 있습니다.
이점¶
Snowflake 관리 저장소 볼륨에 액세스하기 위해 비공개 엔드포인트를 구현할 때의 이점은 다음과 같습니다.
외부 쿼리 엔진이 네이티브 Iceberg 볼륨에서 데이터를 읽거나 쓸 때 데이터가 공용 인터넷을 통과하지 않습니다.
관리자가 쿼리 엔진이 저장소 계정에 연결하는 방식에 대한 일관된 보안 및 모니터링을 구현할 수 있습니다.
저장소 볼륨 데이터에 액세스할 수 있도록 관리자가 방화벽 설정을 수정할 필요가 없습니다.
제한 사항¶
Microsoft Azure는 프라이빗 엔드포인트가 Snowflake와 상호 작용하는 방법을 정의합니다.
단일 비공개 엔드포인트는 단일 Snowflake 서비스 엔드포인트와 통신할 수 있습니다. 동일한 관리 저장소 볼륨에 연결하는 여러 가지 일대일 구성을 가질 수 있습니다.
Snowflake 관리 저장소 볼륨에 연결할 수 있는 저장소 계정의 최대 비공개 엔드포인트 수는 고정되어 있습니다. 자세한 내용은 표준 저장소 계정 한도 를 참조하십시오.
Snowflake 관리 저장소 볼륨에 액세스하기 위해 비공개 엔드포인트 구성¶
Snowflake 관리 저장소 볼륨에 액세스하기 위해 비공개 엔드포인트를 구성하려면, 조직 내 다음 3개의 역할을 지원해야 합니다.
Snowflake 계정 관리자(즉, Snowflake ACCOUNTADMIN 시스템 역할 사용자).
Microsoft Azure관리자.
네트워크 관리자.
조직에 따라, 2명 이상의 인력 또는 팀이 다음 구성 단계를 구현하는 구성 활동을 조율해야 할 수 있습니다.
Azure 비공개 엔드포인트를 통해 Snowflake 관리 저장소 볼륨에 대한 보안 액세스를 구성 및 구현하려면 다음 단계를 완료합니다.
Azure 구독이 Azure Storage 리소스 관리자에 등록되었는지 확인합니다. 이 단계를 통해 비공개 엔드포인트에서 관리 저장소 볼륨에 연결할 수 있습니다.
Snowflake 계정 관리자 역할로 Snowflake 계정에서 다음의 명령을 실행합니다.
privatelink-snowflake-managed-storage-volume-nfs및privatelink-snowflake-managed-storage-volume-fs키로 각각 정의된 비 페일세이프 및 페일세이프 Snowflake 관리 저장소 볼륨의 저장소 계정 리소스 ID를 기록합니다. 자세한 내용은 ENABLE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK 및 SYSTEM$GET_PRIVATELINK_CONFIG 섹션을 참조하십시오.Azure 관리자로 Azure 포털을 통해 각 Snowflake 관리 저장소 볼륨에 대한 비공개 엔드포인트를 생성합니다.
비공개 엔드포인트 속성을 보고 리소스 ID 값을 기록합니다. 다음 단계에서 이 값을
privateEndpointResourceID함수 인자로 제공합니다.자세한 내용은 Microsoft Azure Private Link 설명서 를 참조하십시오.
중요
비공개 엔드포인트를 인증하는 다음 단계를 진행하기 전에 비공개 엔드포인트가 저장소 위치에서 처음으로 인증되는 경우의 Microsoft Azure DNS 동작에 대해 알고 있어야 합니다.
첫 번째 비공개 엔드포인트가 연결되고 권한이 부여되면 Azure는 공개 DNS에 CNAME 레코드를 자동으로 생성합니다.
정상적인 상황에서는 DNS 업데이트가 저장소 계정에 대한 기존 공용 연결에 영향을 주지 않아야 합니다. 그러나 사용자 환경에 이미 비공개 DNS 존이 구성된 경우, DNS를 업데이트하면 의도하지 않은 동작이 발생할 수 있습니다.
이 문제를 방지하기 위해 Microsoft는 첫 번째 비공개 엔드포인트를 인증하기 전에 비공개 DNS 존 구성에서 Fallback to Internet 옵션을 활성화하는 것을 권장합니다.
Snowflake 관리자로 SYSTEM$AUTHORIZE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK_ACCESS 값을 함수 인자로 사용하여
privateEndpointResourceID함수를 호출합니다. 이 단계에서는 비공개 엔드포인트를 통해 Snowflake 관리 저장소 볼륨에 대한 액세스 권한을 부여합니다.필요한 경우 다음 단계를 완료하여 Snowflake 관리 저장소 볼륨에 대한 액세스 권한을 취소 합니다.
네트워크 관리자에게 문의하여 비공개 DNS 영역의 DNS 설정을 업데이트합니다. 이 설정에서는 Snowflake 관리 저장소 볼륨의 저장소 계정에 연결되는 Azure 비공개 엔드포인트의 비공개 IP 주소에 대해 URL을 확인해야 합니다.
자세한 내용은 Azure Private Endpoint DNS 구성 을 참조하십시오.
팁
별도의 Snowflake 계정을 사용하여 테스트를 수행해야 하며, 테스트가 분리된 상태에서 다른 워크로드에 영향을 주지 않고 기능을 테스트하기 위해 테스트 VNet에서 비공개 DNS 존을 구성합니다.
별도의 Snowflake 계정을 사용하는 것이 불가능한 경우, 테스트 사용자를 사용하여 DNS가 변경되는 VNet에서 Snowflake에 액세스합니다.
온프레미스 애플리케이션에서 테스트하려면, DNS 전달을 사용하여 DNS가 설정되는 VNet의 Azure 비공개 DNS로 요청을 전달하십시오.
공개 액세스 차단¶
Azure Private Link를 사용하여 관리 저장소 볼륨에 액세스하도록 비공개 엔드포인트를 구성한 후에는 공개 IP 주소에서 관리 저장소 볼륨으로의 요청을 선택적으로 차단할 수 있습니다. 공개 액세스가 차단된 후에는 모든 트래픽이 비공개 엔드포인트를 통과해야 합니다.
중요
공개 액세스를 차단하기 전에 비공개 연결을 사용하는 트래픽이 관리 저장소 볼륨에 성공적으로 도달하는지 확인합니다. 비공개 연결을 구성하지 않고 공개 액세스를 차단하면 의도하지 않은 중단이 발생할 수 있습니다.
공개 IP 주소에서 관리 저장소 볼륨으로의 모든 트래픽을 차단하려면 다음 함수를 호출합니다.
이 함수를 완료하는 데 몇 분 정도 걸릴 수 있습니다.
IP 허용 목록 예외로 공개 액세스 차단하기¶
SYSTEM$BLOCK_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PUBLIC_ACCESS_WITH_EXCEPTION 함수를 사용하면 관리 저장소 볼륨에 도달할 수 있는 IP 주소 또는 CIDR 블록의 허용 목록을 유지하면서 공개 액세스를 차단할 수 있습니다.
특정 IP 주소 및 CIDR 블록은 허용하면서 공개 액세스를 차단하려면 다음을 수행합니다.
공개 액세스가 차단되었는지 확인하기¶
공개 IP 주소가 Snowflake 관리 저장소 볼륨에 액세스할 수 있는지 확인하려면 SYSTEM$SNOWFLAKE_MANAGED_STORAGE_VOLUME_PUBLIC_ACCESS_STATUS 함수를 호출합니다.
공용 액세스 차단 해제¶
이전에 차단된 Snowflake 관리 저장소 볼륨에 대한 공개 액세스를 허용하려면 SYSTEM$UNBLOCK_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PUBLIC_ACCESS 함수를 호출합니다.
Snowflake 관리 저장소 볼륨에 액세스하기 위해 비공개 엔드포인트 취소¶
Microsoft Azure 비공개 엔드포인트를 통해 Snowflake 관리 저장소 볼륨에 대한 액세스를 취소하려면 다음 단계를 완료합니다.
Snowflake 관리자로서 ENABLE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK 매개 변수가 ``TRUE``로 설정되어 있는지 확인합니다. 예:
Snowflake 관리자로 기존의 액세스를 승인하는 데 사용된 값과 동일한
privateEndpointResourceID값을 통해 SYSTEM$REVOKE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK_ACCESS 함수를 호출하여 비공개 엔드포인트에 대한 액세스 권한을 취소합니다.Azure 관리자로서, Azure 포털을 통해 비공개 엔드포인트를 삭제합니다.
네트워크 관리자로서, 저장소 계정 URL을 확인하는 데 사용된 DNS 및 별칭 레코드를 제거합니다.