파트너 애플리케이션용 Snowflake OAuth 구성하기¶
이 항목에서는 지원되는 Snowflake 파트너 애플리케이션을 위한 Snowflake로의 Snowflake OAuth 액세스를 구성하는 방법을 설명합니다. 이 프로세스에서는 Snowflake와 서드 파티 애플리케이션 또는 서비스 사이의 인터페이스를 정의하는 일급 Snowflake 오브젝트인 통합을 생성해야 합니다.
중요
서드 파티 애플리케이션을 사용하여 Snowflake에 연결하는 경우, Snowflake는 애플리케이션에서 사용되는 통합 흐름이 내부 보안 요구 사항을 충족하는지 확인하는 것을 권장합니다. 이 기능을 위해 사용되는 엔드 투 엔드 흐름에 대한 자세한 내용은 파트너에 직접 문의하십시오.
참고
Snowflake OAuth에서는 세션 내 역할을 보조 역할로 전환하는 기능이 지원되지 않습니다.
이 동작이 OAuth 워크플로에 필요한 경우 외부 OAuth를 대신 사용하십시오.
자세한 내용은 External OAuth가 포함된 보조 역할 사용하기 섹션을 참조하십시오.
현재 Snowflake OAuth에서 지원하는 애플리케이션은 다음과 같습니다.
클라이언트 |
필수 클라이언트 버전 |
클라이언트 타입 |
---|---|---|
2019.1 이상 |
공용 |
|
6.20 이상 |
||
Alation 설명서 참조 |
||
이 항목의 내용:
Snowflake OAuth 통합 구성하기¶
CREATE SECURITY INTEGRATION 명령을 사용하여 통합을 생성합니다. 통합은 Snowflake OAuth를 지원하는 클라이언트와 같이 Snowflake와 서드 파티 서비스 간의 인터페이스를 제공하는 Snowflake 오브젝트입니다.
참고
계정 관리자(즉, ACCOUNTADMIN 시스템 역할의 사용자) 또는 전역 CREATE INTEGRATION 권한이 있는 역할만 이 SQL 명령을 실행할 수 있습니다.
CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
<name>
TYPE = OAUTH
ENABLED = { TRUE | FALSE }
OAUTH_CLIENT = <partner_application>
oauthClientParams
[ COMMENT = '<string_literal>' ]
여기서:
oauthClientParams
oauthClientParams ::= [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ] [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ] [ BLOCKED_ROLES_LIST = ('<role_name>', '<role_name>') ]
통합 사용에서 특정 역할 차단하기¶
선택적 BLOCKED_ROLES_LIST 매개 변수를 사용하면 통합과 함께 사용하여 사용자가 명시적으로 동의할 수 없는 Snowflake 역할을 나열할 수 있습니다.
기본적으로 ACCOUNTADMIN, SECURITYADMIN 및 ORGADMIN 역할은 이 목록에 포함되며 제거할 수 없습니다. 사용자에게 이러한 역할로 Snowflake OAuth를 사용해야 하는 작업이 있고 보안 팀이 이를 허용하는 경우, Snowflake 지원 에 문의하여 계정에서 이러한 역할을 허용하도록 요청하십시오.
로그인 빈도 제어하기¶
사용자의 로그인이 성공하면 파트너 애플리케이션은 발급된 새로 고침 토큰을 사용하여 새로운 일시적 액세스 토큰을 요청할 수 있으며 새로 고침 토큰이 만료될 때까지 사용자에게 로그인 프로세스를 다시 수행하라는 메시지를 표시하지 않습니다. 선택 사항 OAUTH_REFRESH_TOKEN_VALIDITY 매개 변수는 새로 고침 토큰이 유효한 기간(초)을 지정합니다. 이 설정을 통해 새로 고침 토큰이 주기적으로 만료되어 사용자는 로그인 프로세스를 반복할 수 있습니다.
OAUTH_REFRESH_TOKEN_VALIDITY 매개 변수에서 지원되는 최소, 최대 및 기본 값은 다음과 같습니다.
애플리케이션 |
최소값 |
최대값 |
기본값 |
---|---|---|---|
Tableau Desktop |
|
|
|
Tableau Server 또는 Tableau Online |
|
|
|
최소값을 줄이거나 최대값을 증가해야 할 작업이 있는 경우 Snowflake 지원 에 문의하여 계정을 변경하도록 요청하십시오.
파트너 애플리케이션을 위해 Snowflake OAuth에서 클라이언트 리디렉션 사용하기¶
Snowflake는 지원되는 Snowflake 클라이언트에서 클라이언트 리디렉션과 Snowflake OAuth 사용을 포함하여, 파트너 애플리케이션을 위해 Snowflake OAuth에서의 클라이언트 리디렉션 사용을 지원합니다.
자세한 내용은 클라이언트 연결 리디렉션하기 섹션을 참조하십시오.
네트워크 정책 관리하기¶
Snowflake는 Snowflake OAuth를 위한 네트워크 정책을 지원합니다. 자세한 내용은 네트워크 정책 섹션을 참조하십시오.
예¶
Tableau Desktop
다음은 기본 설정을 사용하여 Snowflake OAuth 통합을 만드는 예입니다.
CREATE SECURITY INTEGRATION td_oauth_int1 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_DESKTOP;DESCRIBE INTEGRATION 을 사용하여 통합 설정 보기:
DESC SECURITY INTEGRATION td_oauth_int1;다음은 10시간(36,000초) 후에 만료되는 새로 고침 토큰으로 Snowflake OAuth 통합을 만드는 예입니다. 통합은 사용자가 SYSADMIN을 활성 역할로 세션을 시작하지 못하도록 차단합니다.
CREATE SECURITY INTEGRATION td_oauth_int2 TYPE = OAUTH ENABLED = TRUE OAUTH_REFRESH_TOKEN_VALIDITY = 36000 BLOCKED_ROLES_LIST = ('SYSADMIN') OAUTH_CLIENT = TABLEAU_DESKTOP;
Tableau Server 또는 Tableau Online
다음은 기본 설정을 사용하여 Snowflake OAuth 통합을 만드는 예입니다.
CREATE SECURITY INTEGRATION ts_oauth_int1 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_SERVER;DESCRIBE INTEGRATION 을 사용하여 통합 설정 보기:
DESC SECURITY INTEGRATION ts_oauth_int1;다음은 1일(86,400초) 후에 만료되는 새로 고침 토큰으로 Snowflake OAuth 통합을 만드는 예입니다. 통합은 사용자가 SYSADMIN을 활성 역할로 세션을 시작하지 못하도록 차단합니다.
CREATE SECURITY INTEGRATION ts_oauth_int2 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_SERVER OAUTH_REFRESH_TOKEN_VALIDITY = 86400 BLOCKED_ROLES_LIST = ('SYSADMIN');
파트너 애플리케이션에서 Snowflake에 로그인하기¶
Tableau¶
Snowflake OAuth를 사용하여 Snowflake에 연결하려면 Tableau가 제공하는 지침 을 따르십시오.
Looker¶
Snowflake OAuth를 사용하여 Snowflake에 연결하려면 Looker가 제공하는 단계 를 따르십시오.
Alation¶
Alation Community 에 액세스하고 Snowflake OAuth를 사용하여 Snowflake에 연결하려면 Alation에서 제공하는 지침을 따르십시오.
ThoughtSpot¶
ThoughtSpot 설명서 에 액세스하여 Snowflake에 대한 연결을 생성하기 위한 지침을 따르십시오. 여기에는 Snowflake OAuth 를 구성하는 방법에 대한 단계가 포함됩니다.
Collibra¶
Collibra 설명서 에 액세스하고 Snowflake OAuth를 사용하여 Snowflake에 연결하려면 Collibra에서 제공하는 지침을 따르십시오.
사용자 동의 관리하기¶
이 섹션에서는 위임된 권한 부여, 즉 Snowflake 통합에 연결된 1개 이상의 클라이언트에 지정된 사용자 동의를 관리하는 방법을 설명합니다.
Snowflake OAuth 동의 표시하기¶
SHOW DELEGATED AUTHORIZATIONS 를 사용하여 액세스 권한이 있는 유효한 위임된 권한 부여를 나열합니다.
SHOW DELEGATED AUTHORIZATIONS;
+-------------------------------+-----------+-----------+-------------------+--------------------+
| created_on | user_name | role_name | integration_name | integration_status |
|-------------------------------+-----------+-----------+-------------------+--------------------|
| 2018-11-27 07:43:10.914 -0800 | JSMITH | PUBLIC | MY_OAUTH_INT | ENABLED |
+-------------------------------+-----------+-----------+-------------------+--------------------+
지정된 사용자에 대해 위임된 활성 권한 부여를 나열합니다. 사용자는 본인의 위임된 권한을 나열할 수 있지만, 그렇지 않은 경우 이 명령 베리언트에는 사용자에 대한 OWNERSHIP 권한이 필요합니다.
SHOW DELEGATED AUTHORIZATIONS
BY USER <username>;
지정된 통합에 대해 위임된 활성 권한 부여를 나열합니다. 이 명령 베리언트에는 통합에 대한 OWNERSHIP 권한(즉, ACCOUNTADMIN 역할)이 필요합니다.
SHOW DELEGATED AUTHORIZATIONS
TO SECURITY INTEGRATION <integration_name>;
동의 취소하기¶
사용자는 지정된 통합에서 동의를 취소할 수 있습니다. 이는 통합과 관련된 액세스 토큰을 모두 취소하는 효과가 있습니다.
지정된 통합에 대한 사용자 동의를 취소하려면 ALTER USER … REMOVE DELEGATED AUTHORIZATIONS 명령을 실행합니다.
참고
보안 관리자(즉, SECURITYADMIN 역할의 사용자) 이상만 이 SQL 명령을 실행할 수 있습니다.
ALTER USER <username> REMOVE DELEGATED AUTHORIZATIONS
FROM SECURITY INTEGRATION <integration_name>
여기서:
username
동의를 취소할 사용자를 지정합니다.
integration_name
특정 클라이언트에 대한 액세스 토큰과 연결된 통합을 지정합니다.
특정 역할과 연결된 사용자 동의를 취소하려면 문에 OF ROLE role_name
을 포함합니다.
ALTER USER <username> REMOVE DELEGATED AUTHORIZATION
OF ROLE <role_name>
FROM SECURITY INTEGRATION <integration_name>
여기서:
role_name
액세스 토큰과 연결된 역할을 지정합니다.
역할과 연결된 모든 액세스 토큰이 취소됩니다.
오류 코드¶
인증 흐름, 토큰 요청 또는 교환 중 또는 OAuth 흐름 완료 후 Snowflake 세션 생성 시 OAuth와 관련된 오류 코드 목록 및 JSON blob에 반환된 오류에 대해서는 오류 코드 를 참조하십시오.