# Snowflake への接続

Snowflake コネクタを使用すると、Treasure AI Studio のエージェントがチャット中に Snowflake ウェアハウスのデータを探索・可視化できます。セットアップは 3 つのパートに分かれます。管理者が Snowflake で OAuth セキュリティ統合を作成し、Treasure AI でコネクタを設定し、その後、各ユーザーが自分のコネクションを認可します。

コネクションが初めての方へ
まず [コネクション](/ja/products/ai-studio/connections) で全体像（コネクタとコネクションの違い、管理者とユーザーの役割）を確認してください。このページでは Snowflake 固有の手順を説明します。

## 目的

Snowflake コネクタをエンドツーエンドでセットアップします。Snowflake の OAuth セキュリティ統合を作成し、Treasure AI でコネクタを設定・有効化し、コネクションを認可して、エージェントがウェアハウスにクエリできるようにします。

## 前提条件

- Treasure AI Studio のアカウント管理者権限（コネクタ設定の手順用）
- `ACCOUNTADMIN` ロール（またはセキュリティ統合を作成できる別のロール）を持つ Snowflake アカウント
- 接続したい Snowflake アカウントのアカウント URL


## ステップ 1 — Snowflake でセキュリティ統合を作成する（管理者）

Treasure AI は、Snowflake アカウントで作成する OAuth セキュリティ統合を使って Snowflake に接続します。このセットアップでは、リフレッシュトークンを使用するコンフィデンシャル OAuth クライアントを利用します。

1. **アカウント URL を確認します。** Snowsight で左下のアカウントセレクターをクリックし、アカウントを選択して、アカウント URL をコピーします。形式は `https://ORGNAME-ACCOUNTNAME.snowflakecomputing.com` です。これを Treasure AI で **Account URL** として入力します（ステップ 2）。
2. **統合を作成します。** 以下の SQL を `ACCOUNTADMIN` として実行します。redirect URI は、Treasure AI のコネクタフォームの **[セットアップガイド]** に表示されるコールバック URL（末尾が `/connections/callback`、リージョンごとに異なります）に置き換えてください。

```sql
CREATE SECURITY INTEGRATION TREASURE_AI_STUDIO_INTEGRATION
  TYPE = OAUTH
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://<your-region-host>/connections/callback'
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY = 7776000
  ENABLED = TRUE;
```
3. **クライアント認証情報を取得します。** 以下を実行します。

```sql
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('TREASURE_AI_STUDIO_INTEGRATION');
```
4. 出力から **`OAUTH_CLIENT_ID`** と **`OAUTH_CLIENT_SECRET`** をコピーします。`OAUTH_CLIENT_SECRET_2` は無視してください。最初のシークレットのみが必要です。


詳細は、Snowflake の [カスタムクライアント向け Snowflake OAuth の設定](https://docs.snowflake.com/en/user-guide/oauth-custom) を参照してください。

エージェントは PUBLIC ロールで接続します
コネクションは、Snowflake の `PUBLIC` ロールでエージェントを認可します。エージェントは `PUBLIC` がアクセスできるオブジェクトのみクエリできるため、`PUBLIC` ロールに必要な権限を付与してください。具体的には、ウェアハウスへの `USAGE`（クエリ実行に必須）、データベースとスキーマへの `USAGE`、およびエージェントに探索させたいテーブルへの `SELECT` です。ロールは認可時に固定され、チャット内から変更することはできません。

`PUBLIC` は Snowflake アカウント内の**すべての**ユーザーに自動的に付与されるロールであるため、エージェントのために `PUBLIC` へ付与した権限は、他のすべてのユーザーにもそのデータを公開することになります。エージェントに必要な最小限のみを付与し、機微なデータについてはより制限された構成が必要かどうかを検討してください。

## ステップ 2 — Treasure AI でコネクタを設定する（管理者）

1. Treasure AI Studio で **[設定] → [コネクタ設定]**（**[組織]** の下）を開きます。
2. **[コネクタを追加]** をクリックし、**[Snowflake]** を選びます。
3. フォームに入力します。


| フィールド | 値 |
|  --- | --- |
| **Account URL** | ステップ 1 で控えたアカウント URL。例: `https://myorg-myaccount.snowflakecomputing.com`。 |
| **Client ID** | セキュリティ統合の `OAUTH_CLIENT_ID`。 |
| **Client Secret** | セキュリティ統合の `OAUTH_CLIENT_SECRET`（マスクされたフィールドとして入力）。 |


1. このフォームの **[セットアップガイド]** パネルを参照してください。セキュリティ統合に登録する正確な **redirect URL**（ステップ 1）と、実行する SQL が記載されています。
2. **[保存]** をクリックします。Snowflake コネクタが設定済み一覧に表示されます。
3. ユーザーがコネクションを認可できるよう、コネクタが**有効化**されていることを確認します。


Snowflake コネクタと [追加] ボタンが表示された [コネクタを選択] 画面
Account URL・Client ID・Client Secret の各フィールドと、下部の [セットアップガイド] パネルを備えた [Snowflake の設定] フォーム
ネットワークポリシーでアカウントドメインを許可する
アカウントでネットワークポリシーを使用している場合は、エージェントのサンドボックスが到達できるよう、コネクタの **egress ドメイン**（Snowflake アカウントのホスト。例: `myorg-myaccount.snowflakecomputing.com`）を許可してください。必要なドメインは、**[コネクタ設定]** で設定済みコネクタの横に表示されます。

## ステップ 3 — 自分のコネクションを認可する（ユーザー）

エージェントに Snowflake へアクセスさせたい各ユーザーは、自分のコネクションを認可します。

1. **[設定] → [コネクション]** を開きます。
2. **[利用可能]** の下で **[Snowflake]** を見つけ、**[接続]** をクリックします。
3. ポップアップで Snowflake にサインインし、要求されたアクセスを許可します。
4. ポップアップが閉じると、接続済み一覧に接続日とともに **Snowflake** が表示されます。


[利用可能] の下に Snowflake が表示され、[接続] ボタンがある [コネクション] ページ
後でコネクションを削除するには、その横にある削除（ゴミ箱）アイコンをクリックします。

## ステップ 4 — チャットで Snowflake を使う

接続が完了したら、エージェントに Snowflake のデータを扱うよう依頼します（例: テーブルの探索やクエリ結果の可視化）。エージェントはウェアハウスに対して SQL を実行し、あなたのコネクションを自動的に使用するため、チャット内で追加の設定は不要です。

## リファレンス

| 項目 | 値 |
|  --- | --- |
| コネクタ | Snowflake |
| 認証 | OAuth 2.0（ユーザー対マシン）、リフレッシュトークンを使用するコンフィデンシャルクライアント |
| OAuth スコープ | `refresh_token`、`session:role:PUBLIC` |
| エージェントのロール | `PUBLIC`（OAuth スコープで固定） |
| 必須設定 | Account URL、Client ID、Client Secret |
| Redirect URL | コネクタフォームの **[セットアップガイド]** に表示（末尾が `/connections/callback`） |


## トラブルシューティング

| 問題 | 解決策 |
|  --- | --- |
| コネクションタブに Snowflake が表示されない | 管理者が **[コネクタ設定]** で Snowflake コネクタを追加し、有効化する必要があります。 |
| OAuth ポップアップで redirect URL のエラーが出る | セキュリティ統合の `OAUTH_REDIRECT_URI` が、コネクタフォームのセットアップガイドに表示されるコールバック URL と完全に一致している必要があります。正しい値で `CREATE SECURITY INTEGRATION`（または `ALTER SECURITY INTEGRATION`）を実行し直してください。 |
| 約90日でコネクションが使えなくなる | リフレッシュトークンの有効期間は90日です（ステップ1の `OAUTH_REFRESH_TOKEN_VALIDITY = 7776000` 秒）。**[設定] → [コネクション]** から再接続して認可し直してください。 |
| コネクションは認可されたがエージェントが Snowflake に到達できない | ネットワークポリシーで Snowflake アカウントのドメインを許可してください（**[コネクタ設定]** に表示される egress ドメインを参照）。 |
| エージェントは接続できるがテーブルが見えない | エージェントにクエリさせたいデータベース・スキーマ・テーブルに対して `PUBLIC` ロールへ権限を付与してください。 |
| 「Account URL」が拒否される | URL は `https://<orgname>-<accountname>.snowflakecomputing.com` の形式のアカウントホストである必要があります。組織名とアカウント名の間はアンダースコアではなくハイフンを使用してください。 |
| クライアントシークレットでコネクタの保存が失敗する | `SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('TREASURE_AI_STUDIO_INTEGRATION');` を実行し直して `OAUTH_CLIENT_SECRET` をコピーし直してください。`OAUTH_CLIENT_SECRET_2` ではなく最初のシークレットをコピーしているか確認します。 |


## 次のステップ

- [コネクション](/ja/products/ai-studio/connections) — コネクションの全体像と管理者向けコントロール
- [Databricks への接続](/ja/products/ai-studio/connections/databricks) — Databricks コネクションの設定と認可
- [クエリ実行](/ja/products/ai-studio/query/query-execution) — エージェントがクエリを実行し結果を返す仕組み
- [チャートとデータ可視化](/ja/products/ai-studio/visualization/charts) — エージェントがデータを可視化する仕組み