SYSTEM$AUTHORIZE_PRIVATELINK

현재 계정에 Snowflake 서비스로의 프라이빗 연결(private connectivity) 을 활성화하는 시스템 함수예요. AWS·Azure·GCP 클라우드별로 다른 인자를 받아요.

출처: 공식 문서

본문

Business Critical 기능

이 함수는 Business Critical(또는 그 이상) 에디션이 필요합니다. 업그레이드 문의는 Snowflake Support에 연락하세요.

현재 계정에 대해 Snowflake 서비스로의 프라이빗 연결을 활성화합니다.

참고 (See also): SYSTEM$REVOKE_PRIVATELINK , SYSTEM$GET_PRIVATELINK , SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS

구문 (Syntax)

AWS:

SYSTEM$AUTHORIZE_PRIVATELINK( '<aws_id>' , '<federated_token>' )

Azure:

SYSTEM$AUTHORIZE_PRIVATELINK( '<private-endpoint-resource-id>' , '<federated_token>' )

GCP:

SYSTEM$AUTHORIZE_PRIVATELINK( '<gcp_project_id>' , '<access_token>' )

인자 (Arguments)

다음 명령으로 필요한 값을 얻을 수 있습니다:

aws sts get-federation-token --name sam
az account get-access-token --subscription <SubscriptionID>
az account list --output table
Name     CloudName   SubscriptionId                        State    IsDefault
-------  ----------  ------------------------------------  -------  ----------
MyCloud  AzureCloud  13c....                               Enabled  True

SubscriptionID

구독의 고유 식별자입니다. 예: 13c... 이 값을 얻으려면 명령줄 환경에서 다음 Azure CLI 명령을 실행하세요. 이 예제에서는 잘려서 표시된 SubscriptionID 컬럼의 출력 값을 기록해 두세요.

'gcp_project_id'

Google Cloud(GCP) 프로젝트를 고유하게 식별하는 식별자를 문자열로 나타낸 것입니다.

'access_token'

Google Cloud 사용자의 접근 자격 증명을 담은 접근 토큰 값을 문자열로 나타낸 것입니다.

사용 참고 (Usage notes)

  • 계정 관리자(ACCOUNTADMIN 역할을 가진 사용자)만 이 함수를 실행할 수 있습니다.
  • 이 함수는 AWS 또는 Azure의 Snowflake 계정에서 사용할 수 있습니다. Google Cloud Platform(GCP)은 현재 지원되지 않습니다.
  • SYSTEM$GET_PRIVATELINK 함수를 호출해 Snowflake 계정이 Snowflake 서비스에 프라이빗 연결을 사용하도록 인가되었는지 확인하세요.
  • SYSTEM$REVOKE_PRIVATELINK 함수를 호출해 Snowflake 계정이 Snowflake 서비스에 프라이빗 연결을 사용하지 않도록 비활성화하세요.

예제 (Examples)

AWS에서 Snowflake 계정에 AWS PrivateLink를 활성화합니다. 이 예제에서는 값이 잘려 있습니다.

USE ROLE ACCOUNTADMIN;

select SYSTEM$AUTHORIZE_PRIVATELINK(
    '185...',
    '{
      "Credentials": {
          "AccessKeyId": "ASI...",
          "SecretAccessKey": "enw...",
          "SessionToken": "Fwo...",
          "Expiration": "2021-01-07T19:06:23+00:00"
      },
      "FederatedUser": {
          "FederatedUserId": "185...:sam",
          "Arn": "arn:aws:sts::185...:federated-user/sam"
      },
      "PackedPolicySize": 0
  }'
  );

Azure에서 Snowflake 계정에 Azure Private Link를 활성화합니다. 이 예제에서는 값이 잘려 있습니다.

USE ROLE ACCOUNTADMIN;

select SYSTEM$AUTHORIZE_PRIVATELINK(
  '/subscriptions/26d.../resourcegroups/sf-1/providers/microsoft.network/privateendpoints/test-self-service',
  'eyJ...');

GCP에서 Snowflake 계정에 Google Cloud Private Service Connect를 활성화합니다:

USE ROLE ACCOUNTADMIN;

select SYSTEM$AUTHORIZE_PRIVATELINK(
  'my-gcp-project-id',
  'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
  );

더 알아보기 (Learn more)