パートナーアプリケーション用Snowflake OAuth の構成

このトピックでは、サポートされるSnowflakeパートナーアプリケーション用にSnowflakeへの OAuth アクセスを構成する方法について説明します。このプロセスでは、統合を作成する必要があります。これは、Snowflakeとサードパーティのアプリケーションまたはサービスの間のインターフェイスを定義するファーストクラスのSnowflakeオブジェクトです。

重要

サードパーティアプリケーションを使用してSnowflakeに接続する場合、アプリケーションで使用される統合フローが内部セキュリティ要件を満たしていることを確認するようにお勧めします。この機能で使用するエンドツーエンドフローの詳細については、パートナーに直接お問い合わせください。

現在、Snowflake OAuth は次のアプリケーションをサポートしています。

クライアント

必要なクライアントバージョン

クライアントタイプ

Tableau Desktop / Server / Online

2019.1またはそれ以上

パブリック

Looker

6.20またはそれ以上

重要

現在、Tableauが OAuth をサポートしているのは、Tableauのテクノロジーがパブリックインターネットにアクセスできる場合のみです。

同様に、Lookerは、Lookerがホストするインスタンスがパブリックインターネットにアクセスできる場合にのみ OAuth をサポートします。この制限は、お客様がホストするLookerの実装(つまり、オンプレミス実装)には影響しません。

したがって、 AWS PrivateLink またはAzure Private Linkを使用しているお客様は、Snowflakeで OAuth とTableau、または OAuth とLookerを使用しようとすると問題が発生する場合があります。質問や詳細については、TableauまたはLookerそれぞれにお問い合わせください。

このトピックの内容:

ステップ1。OAuth 統合を構成する

CREATE SECURITY INTEGRATION コマンドを使用して統合を作成します。統合は、Snowflakeと OAuth をサポートするクライアントなどのサードパーティサービスの間のインターフェイスを提供するSnowflakeオブジェクトです。

注釈

この SQL コマンドを実行できるのは、アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)またはグローバル CREATE INTEGRATION 権限を持つロールのみです。

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)の役割はこのリストに含まれており、削除できません。ユーザーがこれらのロールで OAuth を使用できるようにするビジネス上のニーズがあり、セキュリティチームがそれを許可している場合は、 Snowflakeサポート に連絡して、アカウントでこれらのロールを許可するようリクエストしてください。

ログイン頻度の制御

ユーザーが正常に認証されると、パートナーアプリケーションはパブリッシュされた更新トークンを使用して、有効期限が短いアクセストークンをリクエストし、更新トークンの有効期限が切れるまで、ログインプロセスを繰り返すように求めることはありません。オプションの OAUTH_REFRESH_TOKEN_VALIDITY パラメーターは、更新トークンが有効な時間の長さ(秒単位)を指定します。この設定を使用すると、更新トークンを定期的に期限切れにして、ユーザーにログインプロセスの繰り返しを強制できます。

OAUTH_REFRESH_TOKEN_VALIDITY パラメーターでサポートされる最小値、最大値、およびデフォルト値は次のとおりです。

アプリケーション

最小

最大

デフォルト

Tableau Desktop

60 (1分)

36000 (10時間)

36000 (10時間)

Tableau ServerまたはTableau Online

60 (1分)

7776000 (90日)

7776000 (90日)

ビジネスで最小値を下げるか、最大値を上げる必要がある場合は、 Snowflakeサポート に連絡して、アカウントの変更をリクエストしてください。

ネットワークポリシーの管理

Snowflakeは OAuthのネットワークポリシーをサポートしています。詳細については、 OAuth およびネットワークポリシー をご参照ください。

Tableau Desktop

次の例では、デフォルト設定で OAuth 統合を作成します。

CREATE SECURITY INTEGRATION td_oauth_int1
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_DESKTOP;

DESCRIBE INTEGRATION を使用して統合設定を表示します。

DESC SECURITY INTEGRATION td_oauth_int1;

次の例では、10時間(36000秒)後に期限切れになる更新トークンを使用して OAuth 統合を作成します。統合により、ユーザーは SYSADMIN をアクティブロールとしてセッションを開始できなくなります。

CREATE SECURITY INTEGRATION td_oauth_int2
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY = 36000
  BLOCKED_ROLES_LIST = ('SYSADMIN');

Tableau ServerまたはTableau Online

次の例では、デフォルト設定で OAuth 統合を作成します。

CREATE SECURITY INTEGRATION ts_oauth_int1
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_SERVER;

DESCRIBE INTEGRATION を使用して統合設定を表示します。

DESC SECURITY INTEGRATION ts_oauth_int1;

次の例では、1日(86400秒)後に期限切れになる更新トークンを使用して 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');

ステップ2。パートナーアプリケーションからSnowflakeにログインする

Tableau

Tableauが提供する 指示 に従い、 OAuth を使用してSnowflakeに接続します。

重要

現在、Tableauアプリケーションはユーザーの既定のロールのみを認証できます。または、デフォルトロールが設定されていない場合、 PUBLIC ロールがセッションのアクティブなロールとして使用されます。

Looker

Lookerが提供する 手順 に従って、 OAuthを使用してSnowflakeに接続します。