SYSTEM$REGISTER_PRIVATELINK_ENDPOINT

SYSTEM$REGISTER_PRIVATELINK_ENDPOINT

Snowflake 서비스로의 연결을 라우팅하기 위해 프라이빗 커넥티비티 엔드포인트(private connectivity endpoint)를 등록하는 시스템 함수예요.

출처: Snowflake SQL Reference

본문

Syntax

AWS

SYSTEM$REGISTER_PRIVATELINK_ENDPOINT(
  '<aws_private_endpoint_vpce_id>',
  '<aws_account_id>',
  '<token>',
  [ <delay_time> ]
  )

Azure

SYSTEM$REGISTER_PRIVATELINK_ENDPOINT(
  '<azure_private_endpoint_link_id>',
  '<azure_private_endpoint_resource_id>',
  '<token>',
  [ <delay_time> ]
  )

Required arguments

AWS

aws_private_endpoint_vpce_id:

Amazon Web Services(AWS) 가상 프라이빗 클라우드 엔드포인트(AWS VPCEID)의 식별자를 지정해요.

AWS VPCEID 값을 얻으려면 AWS 콘솔을 탐색하거나 다음 명령을 사용하세요:

aws ec2 describe-vpc-endpoints

aws_account_id:

Amazon Web Services(AWS) 계정을 고유하게 식별하는 12자리 식별자를 문자열로 지정해요.

AWS 계정 ID 값을 얻으려면 AWS 콘솔을 탐색하거나 다음 명령을 사용하세요:

aws sts get-caller-identity

Azure

azure_private_endpoint_link_id:

Microsoft Azure(Azure) 가상 프라이빗 클라우드 엔드포인트 링크(Azure LinkID)의 식별자를 지정해요.

Azure LinkID 값을 얻으려면: SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS 시스템 함수를 실행하세요.

azure_private_endpoint_resource_id:

Microsoft Azure(Azure)에서 Snowflake 계정을 고유하게 식별하는 식별자를 문자열로 지정해요.

Azure 프라이빗 엔드포인트 리소스 ID를 얻으려면 다음 명령을 사용하세요:

az network private-endpoint list --resource-group my_resource_group

token:

프라이빗 커넥티비티 엔드포인트의 소유권을 확인하는 액세스 토큰을 지정해요.

토큰을 얻으려면 최소한 프라이빗 커넥티비티 엔드포인트에 대한 해당 읽기 또는 설명(describe) 권한이 있어야 해요. 자세한 내용은 다음을 참고하세요: AWS endpoint policies, Azure private endpoint privileges.

토큰을 얻으려면 다음 명령을 사용하세요:

Snowflake on AWS의 경우:

aws sts get-federation-token --name snowflake --policy '{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Action": ["ec2:DescribeVpcEndpoints"], "Resource": ["*"] } ] }'

Snowflake on Azure의 경우:

az account get-access-token --subscription <subscription_id>

액세스 토큰의 범위를 제한하는 방법에 대한 자세한 내용은 다음을 참고하세요: Snowflake on AWS의 경우: Managing access token scope on Amazon Web Services, Snowflake on Azure의 경우: Managing access token scope on Microsoft Azure.

Optional arguments

delay_time:

프라이빗 엔드포인트 등록을 시행(enforce)하기 전에 기다릴 분(minute) 수를 지정해요.

범위: 0 ~ 1440분 (24시간)

  • 0분: 등록이 즉시 시행돼요.
  • 기본값: 60 (1시간)

지연 시간과 시행에 대한 자세한 내용은 Manage enforcement with the delay time argument를 참고하세요.

Returns

프라이빗 커넥티비티 엔드포인트 등록에 대한 상태 메시지를 반환해요.

지연 시간을 지정하면 함수는 등록이 언제 시행될지 알리는 메시지를 반환하며, 여러 계정을 같은 프라이빗 엔드포인트에 고정(pin)할 때 시행은 가장 이른 등록을 기준으로 한다는 점을 상기시켜 줘요.

Usage notes

  • 계정 관리자(ACCOUNTADMIN 역할을 가진 사용자)만 이 함수를 호출할 수 있어요.
  • Snowflake 계정에 대해 여러 프라이빗 커넥티비티 엔드포인트를 등록할 수 있어요.

Examples

SYSTEM$REGISTER_PRIVATELINK_ENDPOINT 시스템 함수를 호출해 VPC 엔드포인트를 Snowflake 계정에 등록해요. 토큰 인자에는 잘린 값이 들어 있고 지연 시간 단위는 분(minute)이에요:

AWS

SELECT SYSTEM$REGISTER_PRIVATELINK_ENDPOINT(
  'vpce-0c1...',
  '123.....',
  '{
    "Credentials": {
      "AccessKeyId": "ASI...",
      "SecretAccessKey": "alD...",
      "SessionToken": "IQo...",
      "Expiration": "2024-12-10T08:20:20+00:00"
    },
    "FederatedUser": {
      "FederatedUserId": "0123...:snowflake",
      "Arn": "arn:aws:sts::174...:federated-user/snowflake"
    },
    "PackedPolicySize": 9,
    }',
  120
  );

Azure

SELECT SYSTEM$REGISTER_PRIVATELINK_ENDPOINT(
  '123....',
  '/subscriptions/0cc51670-.../resourceGroups/dbsec_test_rg/providers/Microsoft.Network/
  privateEndpoints/...',
  'eyJ...',
  120
);

더 알아보기 (Learn more)