Azure Private Link 및 Snowflake¶
이 항목에서는 Azure 가상 네트워크(VNet)를 Azure의 Snowflake VNet에 연결하기 위해 Azure Private Link를 구성하는 방법을 설명합니다.
Azure Private Link는 Snowflake가 제공하는 서비스가 아님 에 유의하십시오. 이 서비스는 Snowflake가 Snowflake 계정과 함께 사용할 수 있도록 지원하는 Microsoft 서비스입니다.
이 항목의 내용:
개요¶
Azure Private Link 는 개인 IP 주소를 통해 Snowflake에 액세스할 수 있는 비공개 연결을 제공합니다. 트래픽은 Microsoft 백본을 사용하여 고객의 가상 네트워크(VNet)에서 Snowflake VNet으로만 발생하며 공용 인터넷은 회피합니다. 이 기능은 안전한 비공개 커뮤니케이션을 제공하는 동시에 액세스 규칙을 비공개로 유지함으로써 네트워크 구성을 상당히 간소화합니다.
다음 다이어그램은 고객 VNet 및 Snowflake VNet과 관련한 Azure Private Link의 아키텍처를 요약하여 보여줍니다.
가상 머신(1)을 사용하거나 피어링(2)을 통해서든지 간에, 사용자는 가상 네트워크의 Azure Private Link 엔드포인트(3)에 연결할 수 있습니다. 이후에 해당 엔드포인트는 Private Link Service(4)에 연결하여 Snowflake로 라우팅합니다.
Snowflake와 Azure Private Link를 통합하는 간략한 단계는 다음과 같습니다.
Private Endpoint를 만듭니다.
Azure 구독에서 액세스 토큰을 생성하고 검색합니다.
Azure Private Link를 사용하여 Azure의 Snowflake 내부 스테이지에 연결하려는 경우 프라이빗 엔드포인트에서 내부 스테이지에 연결하기 전에 Azure Storage 리소스 공급자에 구독을 등록해야 합니다.
Azure에서 Snowflake 계정을 활성화하여 Azure Private Link를 사용합니다.
Snowflake 계정 URL 및 OCSP URL을 허용하도록 아웃바운드 방화벽 설정을 업데이트합니다.
DNS 서버를 업데이트하여 사용자 계정 URL 및 Private Link IP 주소로의 OCSP URL을 확인합니다. 온프레미스 DNS 서버 또는 VNet의 비공개 DNS에 DNS 항목을 추가하고 DNS 전달을 사용하여 사용자가 Snowflake에 액세스할 다른 위치에서 항목을 쿼리할 수 있습니다.
Private Endpoint에 Approved 의 CONNECTION STATE 값이 표시되면, SnowCD(Connectivity Diagnostic Tool) 및 SYSTEM$ALLOWLIST_PRIVATELINK 를 사용하여 Snowflake로의 연결을 테스트합니다.
비공개 연결 계정 URL을 사용해 Snowflake에 연결합니다.
요구 사항 및 제한 사항¶
Azure의 Snowflake VNet에 Azure VNet을 연결하는 Azure Private Link를 구성하기 전, 다음 사항에 유의하십시오.
서브넷 수준의 Azure에서 Private Endpoint에 대해 선택적으로 네트워크 정책을 활성화합니다.
TCP 포트 443 및 80이 Private Endpoint 네트워크 카드의 네트워크 보안 그룹에서
0.0.0.0
으로의 트래픽을 허용하는지 확인합니다.포트 구성에 대한 도움이 필요한 경우 내부 Azure 관리자에게 문의하십시오.
ARM VNets 을 사용합니다.
IPv4 TCP트래픽만 사용합니다.
현재, 이 항목에서 설명하는 셀프 서비스 활성화 프로세스에서는 Azure Data Factory, Synapse 또는 기타 관리형 서비스에서 관리되는 Private Endpoint 인증을 지원하지 않습니다.
이 사용 사례에 대해 관리형 비공개 엔드포인트를 구성하는 방법에 대한 자세한 내용은 (Snowflake 커뮤니티에 있는) 이 문서 를 참조하십시오.
Microsoft Azure Private Link의 요구 사항 및 제한 사항에 대한 자세한 내용은 비공개 엔드포인트 제한 사항 및 Private Link Service 제한 사항 에 대한 Microsoft 설명서를 참조하십시오.
Azure Private Link가 포함된 Snowflake로의 액세스 구성하기¶
주의
이 섹션에서는 VNet 환경 구성과 관련하여 Snowflake에만 해당하는 자세한 내용을 설명합니다. 또한, Snowflake는 필수 방화벽 업데이트 및 DNS 레코드를 실제로 구성하지 않음에 유의하십시오. 이러한 구성 작업과 관련한 문제가 발생하면 Microsoft 지원에 직접 문의해야 합니다.
이 섹션에서는 Azure Private Link를 사용하여 Azure 기반 Snowflake VNet에 연결하도록 Azure VNet을 구성하는 방법을 설명합니다. Azure Private Link를 사용하여 Snowflake에 연결을 시작한 후에는 Azure 포털에서 연결의 승인 상태를 확인할 수 있습니다.
설치와 관련한 지원이 필요한 경우 Azure CLI 또는 Azure PowerShell 에 대한 Microsoft 설명서를 참조하십시오.
구성 절차를 완료하여 Microsoft Azure VNet을 구성하고 Snowflake에 대한 Azure Private Link 연결을 시작합니다.
절차¶
이 절차에서는 Azure Private Link를 사용하여 Azure 기반 Snowflake에 연결하기 위해 필요한 Azure Private Link 리소스를 수동으로 생성 및 초기화합니다. 이 절차에서는 사용 사례에 이 항목에 있는 Azure Private Link와 함께 SSO 사용하기 가 포함되지 않는다고 가정합니다.
Azure CLI를 사용하는 대표 예에서와 같이,
az account list --output table
을 실행합니다.Name
,SubscriptionID
및CloudName
열의 출력 값에 유의하십시오.Name CloudName SubscriptionId State IsDefault ------- ---------- ------------------------------------ ------- ---------- MyCloud AzureCloud 13c... Enabled True
Azure 포털로 이동합니다. Private Link 를 찾아 Private Link 를 클릭합니다.
Private endpoints 를 클릭한 다음 Add 를 클릭합니다.
Basics 섹션에서 환경의 Subscription, Resource group, Name 및 Region 필드를 작성한 후 Next: Resource 를 클릭합니다.
Resource 섹션에서 Connection method 및 Resource ID or alias Field 필드를 작성합니다.
Connection Method 에서 Connect to an Azure resource by resource ID or alias 을 선택합니다.
Snowflake에서 SYSTEM$GET_PRIVATELINK_CONFIG 를 실행하고
privatelink-pls-id
의 값을 Resource ID or alias 필드에 입력합니다. 이 단계의 스크린샷에서는 대표적인 예로east-us-2
리전에 대한 별칭 값이 사용되며 Azure는 녹색 확인 표시로 유효한 별칭 값을 확인한다는 점에 유의하십시오.별칭 값에 관한 오류 메시지가 표시되면 Snowflake 지원팀 에 문의하여 리소스 ID 값을 받은 다음 리소스 ID 값을 사용하여 이 단계를 반복하십시오.
Private endpoints 섹션으로 돌아가 몇 분 동안 기다립니다. 승인되면 Private Endpoint에 Pending 의 CONNECTION STATE 값이 표시됩니다. 이 값은 다음 단계에서 인증을 완료한 후 Approved 로 업데이트됩니다.
다음 단계를 완료함으로써 Azure에서 Snowflake 계정을 활성화하여 Azure Private Link를 사용합니다.
명령줄 환경에서 다음 Azure CLI 네트워크 명령을 사용하여 프라이빗 엔드포인트 리소스 ID 값을 기록합니다.
az network private-endpoint show
프라이빗 엔드포인트는 템플릿 파일을 사용하여 이전 단계에서 생성되었습니다. 리소스 ID 값은 잘린 값이 있는 다음 형식을 취합니다.
/subscriptions/26d.../resourcegroups/sf-1/providers/microsoft.network/privateendpoints/test-self-service
명령줄 환경에서 다음 Azure CLI 계정 명령을 실행하고 출력을 저장합니다. 출력은 다음 단계에서
federated_token
인자의 값으로 사용됩니다.az account get-access-token --subscription <SubscriptionID>
명령 출력에서 액세스 토큰 값을 추출합니다. 이 값은 다음 단계에서
federated_token
값으로 사용됩니다. 이 예에서는 값이 잘리고 액세스 토큰 값은eyJ...
입니다.{ "accessToken": "eyJ...", "expiresOn": "2021-05-21 21:38:31.401332", "subscription": "0cc...", "tenant": "d47...", "tokenType": "Bearer" }
중요
Azure 액세스 토큰을 생성하는 사용자는 구독에 대한 읽기 권한이 있어야 합니다. 이를 위한 최소 권한은 Microsoft.Subscription/subscriptions/acceptOwnershipStatus/read 입니다. 또는 기본 역할
Reader
는 보다 대략적으로 세분화된 권한을 부여합니다.accessToken
값은 민감한 정보이므로 비밀번호 값처럼 취급해야 합니다. 이 값을 공유하지 마십시오.Snowflake 지원에 문의해야 하는 경우 모든 명령과 URL에서 액세스 토큰을 수정한 후 지원 티켓을 생성하십시오.
Snowflake에서
private-endpoint-resource-id
값과federated_token
값을 인자로 사용하여 SYSTEM$AUTHORIZE_PRIVATELINK 함수를 호출합니다.USE ROLE ACCOUNTADMIN; SELECT SYSTEM$AUTHORIZE_PRIVATELINK ( '/subscriptions/26d.../resourcegroups/sf-1/providers/microsoft.network/privateendpoints/test-self-service', 'eyJ...' );
인증된 구성을 확인하려면 Azure의 Snowflake 계정에서 SYSTEM$GET_PRIVATELINK 함수를 호출하십시오. Snowflake는 성공적인 인증에 대해
Account is authorized for PrivateLink.
를 반환합니다.Snowflake 계정에서 Azure Private Link를 비활성화 해야 하는 경우
private-endpoint-resource-id
및federated_token
에 이런 인자 값을 사용하여 SYSTEM$REVOKE_PRIVATELINK 함수를 호출하십시오.DNS 설정. Snowflake로의 모든 요청은 Private Endpoint를 통해 라우팅되어야 합니다. DNS를 업데이트하여 Private Endpoint의 개인 IP 주소로의 Snowflake 계정 및 OCSP URLs을 확인합니다.
엔드포인트 IP 주소를 얻으려면, Azure 포털 검색 창으로 이동하여 엔드포인트의 이름(즉, 5단계의 NAME 값)을 입력합니다. Network Interface 결과를 찾아 클릭합니다.
Private IP address 의 값(즉,
10.0.27.5
)을 복사합니다.SYSTEM$GET_PRIVATELINK_CONFIG 함수의 다음 엔드포인트 값이 비공개 IP 주소로 확인되도록 DNS를 구성합니다.
이러한 엔드포인트 값을 사용하면 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 구성에 대한 전체 설명은 이 절차의 범위를 벗어납니다. 예를 들어, Azure Private DNS 존 과 사용자 환경을 통합할 수 있습니다. 내부 Azure 및 Cloud Infrastructure 관리자에게 문의하여 DNS의 URLs을 올바르게 구성 및 확인하십시오.
아웃바운드 방화벽 설정과 DNS 레코드를 확인하여 Azure Private Link 계정 및 OCSP URLs을 포함한 후에는 SnowCD(Connectivity Diagnostic Tool) 및 SYSTEM$ALLOWLIST_PRIVATELINK 를 사용하여 Snowflake로의 연결을 테스트합니다.
비공개 연결 계정 URL 로 Snowflake에 연결합니다.
Azure Private Link를 통해 Snowsight에 연결하려면 Snowsight 설명서 의 지침을 따르십시오.
Azure Private Link와 함께 SSO 사용하기¶
Snowflake는 Azure Private Link와 함께 SSO를 사용할 수 있도록 지원합니다. 자세한 내용은 다음을 참조하십시오.
Azure Private Link에서 클라이언트 리디렉션 사용하기¶
Snowflake는 Azure Private Link에서 클라이언트 리디렉션 사용을 지원합니다.
자세한 내용은 클라이언트 연결 리디렉션하기 섹션을 참조하십시오.
비공개 연결로 복제 및 Tri-Secret Secure 사용하기¶
Snowflake는 대상 계정에서 Tri-Secret Secure 또는 이 기능을 활성화하는지에 관계없이 원본 계정에서 대상 계정으로 데이터 복제를 지원합니다.
자세한 내용은 데이터베이스 복제 및 암호화 섹션을 참조하십시오.
공용 액세스 차단하기 — 선택 사항¶
Snowflake와 Azure Private Link의 연결을 테스트한 후에는 선택 사항 으로 네트워크 정책으로 네트워크 트래픽 제어하기 을 사용하여 Snowflake로의 공용 액세스를 차단할 수 있습니다.
CIDR 블록 범위를 구성하여 조직의 IP 주소 범위 를 사용해 Snowflake로의 공용 액세스를 차단합니다. 이 범위는 가상 네트워크 범위에 속할 수 있습니다.
CIDR 블록 범위가 설정되면, CIDR 블록 범위 내의 IP 주소만 Snowflake에 액세스할 수 있습니다.
네트워크 정책을 사용하여 공용 액세스를 차단하려면:
새 네트워크 정책을 생성하거나 기존 네트워크 정책을 수정합니다. 조직에서 사용할 CIDR 블록 범위를 추가합니다.
사용자 계정에서 네트워크 정책을 사용하도록 설정합니다.