- 카테고리:
시스템 함수 (시스템 제어)
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT¶
Snowflake VPC 또는 VNet에서 비공개 연결 엔드포인트를 프로비저닝하여 Snowflake가 비공개 연결을 사용하여 외부 서비스에 연결할 수 있도록 합니다. 엔드포인트는 Snowflake 계정을 호스팅하는 클라우드 플랫폼에 따라 서비스 엔드포인트 또는 리소스 엔드포인트가 될 수 있습니다.
참고
Snowflake 계정이 Azure 정부 리전에 있는 경우 공급자 리소스 ID 는 정부 구독에 있는 리소스의 ID 여야 합니다. Snowflake 고객을 위한 정부 리전에 대한 자세한 내용은 미국 SnowGov 리전 섹션을 참조하십시오.
구문¶
AWS:
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '<provider_service_name>', '<host_name>' )
Azure:
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '<provider_resource_id>', '<host_name>', [, '<subresource>' ] )Google Cloud:
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '<target_service_id>', '<host_name>' )
인자¶
AWS:
'provider_service_name'
연결할 외부 서비스 또는 리소스를 지정합니다. 예: Amazon API 게이트웨이의 경우
com.amazonaws.us-west-2.execute-api
, Amazon S3의 경우com.amazonaws.us-west-2.s3
.AWS 에서 이 값을 검색하는 방법에 대한 자세한 내용은 비공개 연결 엔드포인트 프로비저닝 섹션을 참조하십시오.
'host_name'
VPC 또는 VNet의 리소스에 액세스하기 위해 정규화된 호스트 이름을 지정합니다.
이 값에는 포트 번호가 포함되지 않으며 외부 서비스에 연결하기 위해 사용하는 Snowflake 오브젝트에서 지정한 것과 일치해야 합니다.
예제에는
bedrock-runtime.us-west-2.amazonaws.com
및*.s3.us-west-2.amazonaws.com
이 포함됩니다.외부 스테이지 및 외부 볼륨에 비공개 연결을 사용하는 경우,
host_name
은 특정 AWS S3 버킷을 지정하는 대신 와일드카드를 사용해야 합니다.AWS 에서 이 값을 검색하는 방법에 대한 자세한 내용은 비공개 연결 엔드포인트 프로비저닝 섹션을 참조하십시오.
Azure:
'provider_resource_id'
VPC 또는 VNet에 있는 리소스에 대한 정규화된 식별자를 지정합니다.
'host_name'
VPC 또는 VNet의 리소스에 액세스하기 위해 정규화된 호스트 이름을 지정합니다.
외부 함수를 위한 아웃바운드 비공개 연결의 호스트 이름 예제는 다음 항목을 참조하세요.
'subresource'
Azure 리소스의 하위 리소스 이름을 지정합니다.
Azure Private Link Service 및 Azure API 관리 서비스에는 이 인자가 필요하지 않습니다.
지원되는 모든 값은 하위 리소스 테이블 섹션을 참조하십시오.
Google Cloud:
'target_service_id'
서비스 연결 대상 ID(사용자 지정 서비스에 대한) 또는 연결할 리전 Google API 엔드포인트를 지정합니다.
'host_name'
리소스에 액세스하기 위해 정규화된 호스트 이름을 지정합니다.
반환¶
엔드포인트가 성공적으로 프로비저닝되었다는 상태 메시지나 엔드포인트가 성공적으로 프로비저닝되지 않은 이유에 대한 세부 정보와 지침을 반환합니다.
액세스 제어 요구 사항¶
계정 관리자(ACCOUNTADMIN 역할이 있는 사용자)만 이 함수를 호출할 수 있습니다.
사용법 노트¶
기존 비공개 연결 엔드포인트의 호스트 이름만 수정할 수 있습니다. 호스트 이름 변경에 대한 자세한 내용은 SYSTEM$SET_PRIVATELINK_ENDPOINT_HOSTNAME 섹션을 참조하세요.
이 함수를 실행하는 데 약 5분이 걸릴 수 있는데, (Snowflake 외부의) 클라우드 플랫폼에서 비공개 연결 엔드포인트를 프로비저닝하는 프로세스에 따라 달라지기 때문입니다.
프라이빗 엔드포인트 제한에 대한 자세한 내용은 크기 조정 고려 사항 섹션을 참조하십시오.
예¶
- AWS:
외부 S3 서비스에 대한 아웃바운드 비공개 연결을 설정합니다.
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.us-west-2.s3', '*.s3.us-west-2.amazonaws.com' );
자세한 AWS 예제는 다음 가이드를 참조하십시오.
- Microsoft Azure:
Microsoft Azure 의 Snowflake가 Microsoft Azure VNet 의 Microsoft Azure API 관리 서비스에 연결할 수 있도록 비공개 엔드포인트를 프로비저닝합니다.
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/f4b00c5f-f6bf-41d6-806b-e1cac4f1f36f/resourceGroups/aztest1-external-function-rg/providers/Microsoft.ApiManagement/service/aztest1-external-function-api', 'aztest1-external-function-api.azure.net', 'Gateway' );
Private endpoint with ID "/subscriptions/e48379a7-2fc4-473e-b071-f94858cc83f5/resourcegroups/test_rg/providers/microsoft.network/privateendpoints/32bd3122-bfbd-417d-8620-1a02fd68fcf8" to resource "/subscriptions/f4b00c5f-f6bf-41d6-806b-e1cac4f1f36f/resourceGroups/aztest1-external-function-rg/providers/Microsoft.ApiManagement/service/aztest1-external-function-api" has been provisioned successfully. Please note down the endpoint ID and approve the connection from it on the Azure portal.
외부 네트워크 액세스를 사용하여 Microsoft Azure 의 Snowflake가 외부 서비스에 연결할 수 있도록 비공개 엔드포인트를 프로비저닝합니다.
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/11111111-2222-3333-4444-5555555555/resourceGroups/leorg1/providers/Microsoft.Sql/servers/myserver', 'testdb.database.windows.net', 'sqlServer' );
"Resource Endpoint with id "/subscriptions/f0abb333-1b05-47c6-8c31-dd36d2512fd1/resourceGroups/privatelink-test/providers/Microsoft.Network/privateEndpoints/external-network-access-pe" provisioned successfully"
Snowflake가 Microsoft Azure 를 위해 외부 스테이지에 연결할 수 있도록 비공개 엔드포인트를 프로비저닝합니다.
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/cc2909f2-ed22-4c89-8e5d-bdc40e5eac26/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo', 'storagedemo.blob.core.windows.net', 'blob' );
"Resource Endpoint with id "/subscriptions/57faea9a-20c2-4d35-b283-9c0c1e9593d8/resourceGroups/privatelink-test/providers/Microsoft.Network/privateEndpoints/external-network-access-pe" provisioned successfully"
- Google Cloud:
게시된 서비스에 연결합니다.
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'projects/my-project/regions/us-west2/serviceAttachments/my-http-server', 'my-http-server.com' );
엔드포인트를 생성한 후 리소스 공급자의 |google-cloud|에서 연결을 수락해야 합니다.
|google-cloud|의 Snowflake가 |google-cloud| VPC 네트워크의 서비스 연결 대상에 연결할 수 있도록 비공개 엔드포인트를 프로비저닝합니다.
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'projects/my-project/regions/us-east4/serviceAttachments/my-service-attachment', 'my-service.com' );
Private endpoint with ID "abcd0000000000000001" to resource "projects/my-project/regions/us-east4/serviceAttachments/my-service-attachment" was provisioned successfully. Please note the Private Endpoint ID and approve the corresponding connection request in the cloud provider console.
|google-cloud|의 Snowflake가 리전 Cloud KMS(Cloud Key Management Service) 엔드포인트에 연결할 수 있도록 비공개 엔드포인트를 프로비저닝합니다.
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'cloudkms.us-east4.rep.googleapis.com', 'cloudkms.us-east4.rep.googleapis.com' );
Private endpoint with ID "abcd0000000000000001" to resource "cloudkms.us-east4.rep.googleapis.com" was provisioned successfully. Please note the Private Endpoint ID and approve the corresponding connection request in the cloud provider console.
Snowflake가 Google Cloud 를 위해 외부 스테이지에 연결할 수 있도록 비공개 엔드포인트를 프로비저닝합니다.
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'storage.us-east4.rep.googleapis.com', 'storage.us-east4.rep.googleapis.com' );
Private endpoint with ID "abcd0000000000000001" to resource "storage.us-east4.rep.googleapis.com" was provisioned successfully. Please note the Private Endpoint ID and approve the corresponding connection request in the cloud provider console.