Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

Snowflake

サポート対象の認証

ユーザー名/パスワード

前提条件

DataRobotでSnowflakeに接続するには、以下が必要です。

  • Snowflakeアカウント

セキュリティ統合を伴うOAuth

OAuthの設定時にセキュリティ統合を作成する場合は、OAUTH_REDIRECT_URIhttps://<datarobot_app_server>/account/snowflake/snowflake_authz_returnとして指定する必要があります。

必須パラメーター

以下にリストされている必須フィールドに加えて、他の使用可能な設定オプションについては、 Snowflakeのドキュメントを参照してください。

必須フィールド 説明 ドキュメンテーション
address Snowflake接続用の安全な接続URLを格納する接続オブジェクト。

例: {account_name}.snowflakecomputing.com
Snowflakeドキュメント
warehouse 仮想ウェアハウスの一意の識別子。 Snowflakeドキュメント
db データベースの一意の識別子。 Snowflakeドキュメント

Snowflake OAuth

前提条件

DataRobotでSnowflakeに接続するには、以下が必要です。

Set up the connection in DataRobot

OAuthパラメーターで接続する場合、新しいデータ接続を作成する必要があります。

OAuthを使用してデータ接続を設定するには:

  1. データ接続の作成接続のテストの手順に従ってください。

  2. テスト接続をクリックすると、ウィンドウが表示され、データベースアカウントから取得できるSnowflakeクライアントIDとクライアントシークレットを入力する必要があります。 保存してサインインをクリックします。

  3. Snowflakeのユーザー名とパスワードを入力します。 サインインをクリックします。

  4. データベースクライアントに同意するには、許可をクリックします。

接続に成功すると、DataRobotに以下のメッセージが表示されます。

必須パラメーター

以下にリストされている必須フィールドに加えて、他の使用可能な設定オプションについては、 Snowflakeのドキュメントを参照してください。

必須フィールド 説明 ドキュメンテーション
データ接続の必須フィールド
address Snowflake接続用の安全な接続URLを格納する接続オブジェクト。

例:
{account_name}.snowflakecomputing.com
Snowflakeドキュメント
warehouse 仮想ウェアハウスの一意の識別子。 Snowflakeドキュメント
db データベースの一意の識別子。 Snowflakeドキュメント
資格情報の必須フィールド
クライアントID アプリケーションの公開識別子。 Snowflakeドキュメント
クライアントのシークレット アプリケーションの認証に使用する秘密識別子。 Snowflakeドキュメント
Snowflakeアカウント名 組織内のSnowflakeアカウントの一意の識別子。 Snowflakeドキュメント

Snowflake External OAuth

前提条件

DataRobotでSnowflakeに接続するには、以下が必要です。

  • Snowflakeアカウント
  • OktaのSnowflakeで設定済みの外部OAuth

セキュリティ統合を伴う外部OAuth

Oktaを外部IDプロバイダー(IdP)として使用する場合は、 Oktaで新しいアプリ統合を作成する際に、http://localhost/account/snowflake/snowflake_authz_returnサインインリダイレクトURIとして指定する必要があります。

  • Snowflakeアカウント
  • Microsoft Azure ADのSnowflakeで設定済みの外部OAuth

セキュリティ統合を伴う外部OAuth

Azure ADを外部IDプロバイダー(IdP)として使用する場合は、 両方のアプリケーションをAzure ADに登録する際に、https://<datarobot_app_server>/account/snowflake/snowflake_authz_returnリダイレクトURIとして指定する必要があります。

外部IdPの設定

備考

このセクションでは、外部IdPを設定するための設定例を使用します。 特定の環境と要件に基づいて外部IdPを設定する方法については、OktaまたはAzure ADのドキュメントを参照してください。

適切な外部IdPで、Snowflakeアプリケーションを作成します。

Oktaで新しいアプリ統合を作成します。

  1. アプリケーション > 各種アプリケーションに移動します。
  2. アプリ統合を作成をクリックします。
  3. サインイン方法で、OIDC - OpenID Connectを選択します。
  4. アプリケーションタイプで、ウェブアプリケーションを選択します。
  5. 次へをクリックします。
  6. 次のオプションが選択されていることを確認してください。

    • クライアント資格情報
    • 認証コード
    • リフレッシュトークン
    • 同意が必要
  7. ログインで、http://localhost/account/snowflake/snowflake_authz_returnを追加しリダイレクトURIにサインインします。

  8. Client IDClient secretが生成されます。

次に、新しい認証サーバーを作成します。

  1. セキュリティ > API > 認証サーバーを追加に移動します。

    • オーディエンスhttps://<partner_name>.snowflakecomputing.com/に設定します。 <partner_name>は現在のDataRobot Snowflakeインスタンスのdatarobot_partnerです。
  2. スコープ > スコープを追加に移動します。

    • 名前session:role:publicに設定します(Snowflakeロールを参照)。
    • チェックインの場合、Require user consent for this scopeBlock services from requesting this scopeを追加します。
    • (オプション)同意を必要とするoffline_accessスコープを設定します。
  3. アクセスポリシー > ルールを追加に移動し、次のルールを追加します。

    • チェックインClient Credentialsを追加します。
    • チェックインAuthorization Codeを追加します。
    • クライアントインテグレーション(上記で作成)をAssigned to clientsフィールドに追加します。
  4. トークンに移動し、トークンを作成をクリックします。

  5. 次の結果が得られます。

    • Issuer、たとえば、https://dev-11863425.okta.com/oauth2/aus15ca55wkdOxplJ5d7
    • Okta APIへのプログラムによるアクセス用の認証Token
    • 認証サーバーのメタデータJSON(設定 > メタデータURI)。

Okta API呼び出し

```

title="Get current user" curl --location --request GET 'https://.okta.com/api/v1/users/me' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: SSWS '


title="Get the user's grants" curl --location --request GET 'https://.okta.com/api/v1/users//clients//grants' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: SSWS '
``` title="Revoke grant/consent"
  curl --location --request DELETE 'https://<OKTA_ACCOUNT>.okta.com/api/v1/users/<USER_ID>/grants/<GRANT_ID>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: SSWS <TOKEN>' 

Azure ADでSnowflakeリソースのアプリケーションを登録します。

  1. MS Azure > Azure AD > アプリの登録に移動します。
  2. 新規登録をクリックします。

    • 名前に、Snowflakeリソースを入力します。
    • サポートされているアカウントの種類で、この組織のディレクトリのみのアカウントを選択します。
    • リダイレクトURIで、ウェブを選択しhttp://localhost/account/snowflake/snowflake_authz_returnと入力します。
    • 登録をクリックします。
  3. APIを公開します。

    • Snowflake URIを参照するようにアプリケーションIDのURIを設定します(例:https://hl91180.us-east-2.aws.snowflakecomputing.com)。
    • 既存のSnowflakeロールを参照するスコープを追加します。スコープには、アプリケーションID URIがプレフィックスとして付けられます(例:https://hl91180.us-east-2.aws.snowflakecomputing.com/session:scope:public)。

Azure ADでSnowflakeクライアントアプリのアプリケーションを登録します。

  1. MS Azure > Azure AD > アプリの登録に移動します。
  2. 新規登録をクリックします。

    • 名前に、Snowflakeリソースを入力します。
    • サポートされているアカウントの種類で、この組織のディレクトリのみのアカウントを選択します。
    • リダイレクトURIで、ウェブを選択しhttp://localhost/account/snowflake/snowflake_authz_returnと入力します。
    • 登録をクリックします。
  3. クライアント資格情報 > 新しいクライアントシークレットに移動し、値をコピーします。 この値は、この手順の後では使用できないことに注意してください。

  4. API Permission > Add Permission > My APIs > Snowflake Resourceに移動し、上記で作成したSnowflakeリソースのスコープを選択します(session:scope:public)。
  5. 次の結果が得られます。

    • Snowflakeクライアントアプリ:Client IDClient secret
    • 発行者URL(Snowflakeとの連携では<external_oauth_jws_keys_url>

      • Snowflakeクライアントアプリ > 概要 > エンドポイント > OpenID Connectメタデータのドキュメントに移動し、ブラウザーでドキュメントを開き、jwks_uri(例えば、https://login.microsoftonline.com/6064c47c-80e4-4a2b-82ee-1fc5643b37a2/discovery/v2.0/keys)を検索します。
    • エンティティID(Snowflakeとの連携では<external_oauth_issuer>

      • Snowflakeクライアントアプリ > 概要 > エンドポイント > フェデレーションメタデータのドキュメントに移動し、ブラウザーでドキュメントを開き、entityID(例えば、https://sts.windows.net/6064c47c-80e4-4a2b-82ee-1fc5643b37a2/)を検索します。
Related reading

Snowflakeの設定

備考

このセクションでは、Snowflakeで外部IdPを設定するための設定例を使用します。 特定の環境と要件に基づいてSnowflakeで外部IdPを設定する方法については、Snowflakeのドキュメントを参照してください。

Snowflakeで、適切な外部IdPの統合を作成します。

create security integration external_oauth_okta_2
    type = external_oauth
    enabled = true
    external_oauth_type = okta
    external_oauth_issuer = '<OKTA_ISSUER>'
    external_oauth_jws_keys_url = '<JWKS_URI>'
    external_oauth_audience_list = ('<AUDIENCE>')
    external_oauth_token_user_mapping_claim = 'sub'
    external_oauth_snowflake_user_mapping_attribute = 'login_name';

CREATE OR REPLACE USER <user_name>
  LOGIN_NAME = '<okta_user_name>';

alter user <user_name> set DEFAULT_ROLE = 'PUBLIC'; 


参考値:

  • OKTA_ISSUER: https://dev-11863425.okta.com/oauth2/aus15ca55wkdOxplJ5d7
  • AUDIENCE: https://hl91180.us-east-2.aws.snowflakecomputing.com/
  • JWKS_URIhttps://dev-11863425.okta.com/oauth2/aus15ca55wkdOxplJ5d7/v1/keys(Okta認証サーバーのメタデータJSONから取得)
  • okta_user_nameOkta > ディレクトリ > ユーザーから取得し、ユーザーを選択してから、プロフィール > ユーザー名/ログインに移動します)
create security integration external_oauth_azure_1
    type = external_oauth
    enabled = true
    external_oauth_type = azure
    external_oauth_issuer = 'https://sts.windows.net/6064c47c-80e4-4a2b-82ee-1fc5643b37a2/'
    external_oauth_jws_keys_url = 'https://login.microsoftonline.com/6064c47c-80e4-4a2b-82ee-1fc5643b37a2/discovery/v2.0/keys'
    external_oauth_audience_list = ('https://hl91180.us-east-2.aws.snowflakecomputing.com/')
    external_oauth_token_user_mapping_claim = 'upn'
    external_oauth_snowflake_user_mapping_attribute = 'login_name'; 

Set up the connection in DataRobot

When connecting with external OAuth parameters, you must create a new data connection.

To set up a Snowflake data connection using external OAuth:

  1. データ接続の作成接続のテストの手順に従ってください。

  2. After clicking Test Connection, select your OAuth provider from the dropdown—either Okta or Azure AD— and fill in the additional required fields.Then, click Save and sign in.

  3. Enter your Okta or Azure AD username and password. サインインをクリックします。

  4. データベースクライアントに同意するには、許可をクリックします。

接続に成功すると、DataRobotに以下のメッセージが表示されます。

必須パラメーター

以下にリストされている必須フィールドに加えて、他の使用可能な設定オプションについては、 Snowflakeのドキュメントを参照してください。

必須フィールド 説明 ドキュメンテーション
データ接続の必須フィールド
address Snowflake接続用の安全な接続URLを格納する接続オブジェクト。

例: {account_name}.snowflakecomputing.com
Snowflakeドキュメント
warehouse 仮想ウェアハウスの一意の識別子。 Snowflakeドキュメント
db データベースの一意の識別子。 Snowflakeドキュメント
資格情報の必須フィールド
クライアントID アプリケーションの公開識別子。

Okta管理コンソールで、アプリケーション > 各種アプリケーション > OpenID Connectウェブアプリ > サインオンタブ > サインオン方法に移動します。

Azure ADでは、これはapplicationIDとも呼ばれます。
Oktaまたは Azure ADのドキュメント
クライアントのシークレット アプリケーションの認証用の秘密識別子。

Okta管理コンソールで、アプリケーション > 各種アプリケーション > OpenID Connectウェブアプリ > サインオンタブ > サインオン方法に移動します。

Azure ADでは、これはapplication secretとも呼ばれます。
Oktaまたは Azure ADのドキュメント
Snowflakeアカウント名 組織内のSnowflakeアカウントの一意の識別子。 Snowflakeドキュメント
発行者URL SAML IDプロバイダーを一意に識別するURL。 「発行者」とは、IDプロバイダーのエンティティIDを指します。

例:
  • Okta:https://<your_company>.okta.com/oauth2/<auth_server_id>
  • Azure AD:
    https://login.microsoftonline.com/<snowflake_resource_app_id>
Oktaまたは Azure ADのドキュメント
スコープ Snowflakeのロール名が含まれます。

例:
Snowflakeアナリストのパラメーター。
  • Okta: session:role:analyst
  • Azure AD: <client_app_id>/session:scope:analyst
Snowflakeドキュメント

これらのフィールドに適切な値については管理者にお問い合わせください。

注意事項

デフォルトでは、Snowflakeは二重引用符で囲まれた識別子を保存および解決する際に、アルファベットの大文字と小文字を保持します。ただし、Snowflakeでこのデフォルトを上書きすると、二重引用符で囲まれた識別子は大文字として保存および解決されます。 DataRobotは大文字と小文字を区別するプラットフォームであるため、元の大文字と小文字を維持することが重要です。

大文字と小文字の区別に関連する潜在的な問題を回避するには、DataRobotのSnowflakeデータ接続に移動し、QUOTED_IDENTIFIERS_IGNORE_CASEパラメーターを追加して、値をFALSEに設定します。 詳細については、 Snowflakeのドキュメントを参照してください。

トラブルシューティング

問題 解決方法 説明
DataRobotで操作を実行しようとすると、ファイアウォールが毎回IPアドレスをクリアするよう要求します。 DataRobotのホワイトリストに登録されたすべてのIPを追加します。 ホワイトリストの送信元IPアドレスを参照してください。 ホワイトリストに登録されたIPをすでに追加している場合は、既存のIPが完全であることを確認してください。

更新しました March 9, 2023
Back to top