SYSTEM$GET_PRIVATELINK
SYSTEM$GET_PRIVATELINK
SYSTEM$GET_PRIVATELINK는 현재 계정이 Snowflake 서비스에 대한 프라이빗 연결(private connectivity)을 사용하도록 승인되었는지 확인하는 시스템 함수예요.
본문
카테고리: System 함수 (System Control)
반환값:
TRUE: 현재 Snowflake 계정이 Snowflake 서비스에 대한 프라이빗 연결을 사용하도록 승인(즉 활성화)되었어요.FALSE: 현재 Snowflake 계정이 Snowflake 서비스에 대한 프라이빗 연결을 사용하도록 승인되지 않았어요(즉 비활성화).
구문 (Syntax)
AWS:
SYSTEM$GET_PRIVATELINK( '<aws_id>' , '<federated_token>' )
Azure:
SYSTEM$GET_PRIVATELINK( '<private-endpoint-resource-id>' , '<federated_token>' )
GCP:
SYSTEM$GET_PRIVATELINK( '<gcp_project_id>' , '<access_token>' )
인자 (Arguments)
'<aws_id>' — Amazon Web Services(AWS) 계정을 고유하게 식별하는 12자리 식별자를 문자열로 지정해요.
'<private-endpoint-resource-id>' — Microsoft Azure(Azure)의 프라이빗 엔드포인트를 고유하게 식별하는 식별자를 문자열로 지정해요.
'<federated_token>' — 페더레이션 사용자에 대한 접근 자격 증명을 담은 페더레이션 토큰 값을 문자열로 지정해요. 이 값을 얻으려면 Snowflake 계정을 호스팅하는 클라우드 플랫폼에 해당하는 명령을 실행해요. 플랫폼이 제공하는 명령줄 도구를 사용해요:
- Snowflake on AWS:
aws sts get-federation-token --name sam
- Snowflake on Azure:
az account get-access-token --subscription <SubscriptionID>
여기서 **SubscriptionID**는 구독의 고유 식별자예요. 예: 13c... 이 값을 얻으려면 명령줄 환경에서 다음 Azure CLI 명령을 실행해요:
az account list --output table
SubscriptionID 열의 출력 값을 기록해요(이 예시에서는 잘려 있음):
Name CloudName SubscriptionId State IsDefault
------- ---------- ------------------------------------ ------- ----------
MyCloud AzureCloud 13c... Enabled True
'<gcp_project_id>' — Google Cloud(GCP) 프로젝트를 고유하게 식별하는 식별자를 문자열로 지정해요.
'<access_token>' — Google Cloud 사용자에 대한 접근 자격 증명을 담은 접근 토큰 값을 문자열로 지정해요.
사용 시 유의사항 (Usage notes)
- 계정 관리자(즉 ACCOUNTADMIN 역할을 가진 사용자)만 이 함수를 실행할 수 있어요.
- 이 함수는 AWS 또는 Azure의 Snowflake 계정에서 사용할 수 있어요. Google Cloud Platform(GCP)은 현재 지원되지 않아요.
- SYSTEM$AUTHORIZE_PRIVATELINK 함수를 호출해 Snowflake 계정이 Snowflake 서비스에 대한 프라이빗 연결을 사용하도록 활성화해요.
- SYSTEM$REVOKE_PRIVATELINK 함수를 호출해 Snowflake 계정이 Snowflake 서비스에 대한 프라이빗 연결을 사용하지 않도록 비활성화해요.
예시 (Examples)
AWS의 Snowflake 계정에 대해 AWS PrivateLink가 승인되었는지 확인해요. 이 예시에서는 값이 잘려 있어요.
USE ROLE ACCOUNTADMIN;
select SYSTEM$GET_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$GET_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$GET_PRIVATELINK(
'my-gcp-project-id',
'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
);