翻訳者ノート
こんにちは!コンテンツチームの加藤です。
ClaudeにSnowflakeのデータをセキュアに読ませたいけれど、OAuthやRBACの設定でつまずいた経験はありませんか。本記事では、Snowflake側のロール設計からConnect AI経由の接続、監査ログの確認までを、実際に使えるSQLコマンド付きで手順化しました。読み終える頃には、自社のガバナンス要件に合わせた接続構成を自信を持って組めるようになると思います。 |
Snowflakeには多くの企業で特に分析価値の高いデータが保存されています。そのデータをClaudeに取り込めば、自然言語クエリや自動分析、AIエージェントのワークフローに活用できます。ただし、そのためには認証、ネットワークポリシー、ガバナンスを適切に処理する明確な手順が必要です。
本ブログでは、CData Connect AIを使ってClaudeをSnowflakeに接続する方法を解説します。Connect AIは、OAuth、ロールベースのアクセス制御(RBAC)、監査ログの処理を単一のガバナンス管理されたエンドポイントに集約する、マネージドMCP(Model Context Protocol)プラットフォームです。
ステップ1:Claudeとの連携に向けたSnowflakeの準備
コネクタを設定する前に、Snowflake環境にはClaudeが必要とする最小限の権限に範囲が限定された専用のロールが必要です。専用に設計されたロールを割り当てることで、Claudeが意図された範囲外のスキーマやオブジェクトにアクセスするのを防ぎ、権限の確認を容易にします。
CREATE ROLE claude_role;
GRANT USAGE ON DATABASE analytics_db TO ROLE claude_role;
GRANT USAGE ON SCHEMA analytics_db.public TO ROLE claude_role;
GRANT SELECT ON ALL TABLES IN SCHEMA analytics_db.public TO ROLE claude_role;
各GRANTは、1つのアクセス層を追加します。データベースおよびスキーマに対するUSAGEはナビゲーションを許可し、テーブルに対するSELECTはデータ取得を許可します。Claudeのコネクタに必要なのは、OAuthの設定とMCPサーバーのみであり、セマンティックモデルやエージェントフレームワークは不要です。
Snowflakeに組み込まれたRBACフレームワークは、割り当てられたロールに基づいてシステムへのアクセスを制限し、その上に行レベルのセキュリティポリシーを重ねて適用することができます。認証の設定に進む前に、Snowflakeアカウント識別子を特定してください。OAuthおよびURLとの互換性を確保するため、アンダースコアからハイフンへの変換が必要です。
この設計により、Snowflake側で書き込み権限を持つユーザーであっても、Claude経由でのデータ変更は一切できません。SELECTのみを付与したロールがすべてのアクセスの起点になるため、意図しないDROPやINSERTが発生する余地自体がなくなります。
ステップ2:SnowflakeでOAuthを設定する
OAuth(Open Authorization)は、認証情報(クレデンシャル)を公開することなくアプリケーションが安全に接続できるようにする、アクセス委任のためのオープン標準です。SnowflakeでOAuthセキュリティ統合を設定すると、ClaudeまたはConnect AIが認証に使用する認証情報が作成されます。
CREATE SECURITY INTEGRATION claude_oauth
TYPE = OAUTH
ENABLED = TRUE
OAUTH_CLIENT = CUSTOM
OAUTH_REDIRECT_URI = 'https://oauth.cdata.com/oauth/'
OAUTH_ISSUE_REFRESH_TOKENS = TRUE;
作成後、 DESCRIBE SECURITY INTEGRATION claude_oauth を実行して、クライアント ID とクライアントシークレットを取得します。これらの値を取得するには、ACCOUNTADMIN または SECURITYADMIN の権限が必要です。よくひっかかる2つの落とし穴としては以下があります。
ステップ3:ネットワークとガバナンスポリシーの設定
Snowflakeのネットワークポリシーは、接続を確立できるIP範囲を制御します。接続をテストする前に、Connect AIエンドポイント(例:160.79.106.0/24の範囲)からのトラフィックを許可するIngressネットワークルールを追加してください。
ネットワークポリシーを厳格にするほどセキュリティは高まりますが、その分システム間の柔軟性は下がるという現実的なトレードオフがあります。クエリ実行時のデータの経路は、次の3段階です。
Claudeからのリクエストが、Connect AI経由でSnowflakeに送信される。
SnowflakeがSELECTのみを実行し、結果を返す。
結果はConnect AIを経由し、AnthropicのクラウドインフラストラクチャからClaudeに届く(この間、クエリ実行中はデータがSnowflakeの境界の外に出ることになる)。
ClaudeからConnect AI MCPエンドポイントへの接続はAnthropicのクラウドインフラストラクチャから発信されるため、エンドポイント自体はパブリックインターネット経由で到達可能な状態にしておく必要があります。
このモデルにおける主なコンプライアンス対策は、ロールのスコープ設定と監査ログの記録です。規制対象業界のチームは、本番ワークロードを稼働させる前に、こうしたルーティングの前提がデータ居住要件に合致しているかを必ず確認しておきましょう。
ステップ4:リモートMCPサーバーを構成する
MCPは、AIエージェントとエンタープライズデータシステム間の、リアルタイムかつガバナンスに準拠したアクセスを実現するためのオープンスタンダードです。適切な導入方法は、ClaudeがSnowflakeのみへの接続を必要とするか、それとも複数のエンタープライズシステムにわたるより広範なアクセスを必要とするかによって異なります。
Snowflakeのみへの接続の場合
Snowflakeは現在MCPをネイティブでサポートしているため、ほとんどのチームは別途サーバーをホストする必要はありません。MCPサーバーのURLを登録する際は、アカウント識別子にアンダースコアではなくハイフンが使用されていることを確認してください。設定手順については、Snowflakeの公式ドキュメントを参照してください。
この方法は、ClaudeにSnowflakeへのクエリだけを行わせたいチームに適しています。
Snowflakeおよびその他数百のデータソースへの接続の場合
リモートMCPコネクタとは、AIツールとエンタープライズデータソース間のガバナンス管理された接続を仲介し、アクセスポリシーと認証情報を一か所に集約するクラウドエンドポイントです。Connect AIは、ClaudeとSnowflakeの管理レイヤーとして機能し、他の数百のエンタープライズシステムに対しても同様のガバナンス管理されたアクセスを拡張します。BIツールやETL、EAI、ノーコードプラットフォームへの組み込み連携をAIで加速したい場合は、AIを活用してBI、ETL、EAI、ノーコードプラットフォームへのCData Driver統合を加速するも参考になります。
なお、生のソーステーブルではなくdbtで整備された本番スキーマを指定すると、Claudeが参照するテーブル構造がより予測可能になり、データエンジニアにとっても扱いやすくなります。Connect AIでSnowflakeをデータソースとして追加するには:
Connect AIダッシュボードにログインし、「接続を追加」をクリックします。
コネクタカタログから「Snowflake」を選択します。
Snowflakeアカウント識別子(アンダースコアではなくハイフンを使用)、ウェアハウス名、および手順2で取得したOAuthクライアントIDとクライアントシークレットを入力します。
認証方法を選択します。Connect AIは、OAuth、OKTA、Azure AD、および秘密鍵に対応しています。
接続を保存し、ステータスが「アクティブ」になっていることを確認します。


ディメンション | ネイティブ Snowflake MCP | CData Connect AI(リモート MCP) |
監査可能性 | Snowflakeのクエリ履歴のみ | すべてのエージェント操作にわたる一元化された監査ログ |
システム横断的な制御 | Snowflakeのスコープ内のみ | 数百のエンタープライズシステムにわたるアクセスを管理 |
認証オプション | OAuth、鍵ペア | OAuth、OKTA、Azure AD、秘密鍵 |
マルチAI対応 | MCP対応ツール | Claude、Copilot、ChatGPT、Geminiのネイティブサポート |
ステップ5:Connect AI経由でClaudeを接続する
Connect AIでSnowflake接続の設定が完了したら、最後のステップとして、Claudeをその管理対象エンドポイントにリンクします。
Claudeで、[Customize] > [Connectors] に移動し、「+」をクリックします。
コネクタ一覧から「CData Connect AI」を探し、「追加」を選択します。
Connect AIの認証情報を使用して、OAuth認証フローを完了させます。
ステップ5で設定したSnowflake接続を選択します。
接続ステータスを確認し、ClaudeにアクティブなSnowflakeデータソースが表示されていることを確認します。
接続に成功すると、Claude は Connect AI の MCP ツールセットにアクセスできるようになり、設定済みの Snowflake スキーマに対してガバナンスされたクエリを実行できるようになります。詳細な手順については、CData ナレッジベースのガイド「Connect AI を通じて Snowflake を Claude に接続する」を参照してください。
ステップ6:接続の検証とセキュリティ制御の適用
接続をテストすることで、本番ワークロードを実行する前に設定が正しいことを確認できます。まず、機密性の低いテーブルを対象とした読み取り専用クエリを実行し、以下の点を確認してください。
クエリが、認証エラーや権限エラーなしで完了すること。
claude_roleに付与されたスキーマのみが表示される。
Snowflakeのクエリ履歴に、claude_roleのIDでセッションが記録されていること。
基本的な接続性を確認した後、ロールの権限を見直し、意図した範囲を超えるものにはアクセスできないことを確認してください。機密性の高いフィールドが存在する場合は、行レベルのセキュリティポリシーを適用してください。AnthropicまたはCDataのインフラストラクチャを経由するデータに関する、すべての運用ポリシーおよび同意ポリシーを文書化してください。
よくある問題 | 確認事項 |
OAuth/リダイレクト URI の問題 | プロトコルやパスを含め、SnowflakeとConnect AIでURIの形式が同一であることを確認してください |
スコープの不一致 | 付与されたスコープが、Claudeが要求するものと完全に一致していることを確認してください。それ以上のものであってはなりません |
必要以上のデータの可視性 | `SHOW GRANTS TO ROLE claude_role` を実行し、意図したスキーマのみにアクセスできることを確認してください |
トークン権限の確認 | OAUTH_ISSUE_REFRESH_TOKENS が TRUE であり、Connect AI でトークンのローテーションが有効になっていることを確認してください |
ステップ7:よくある問題のトラブルシューティング
連携の失敗のほとんどは、以下の根本原因に起因します。
OAuth またはリダイレクト URI のエラー:Snowflake と Connect AI で URI の形式が同一であること、およびアカウント名全体でハイフンが使用されていることを確認してください。
権限不足のエラー: SHOW GRANTS TO ROLE claude_role を実行し、必要な権限がすべて付与されていることを確認してください。データベースまたはスキーマに `USAGE` が欠落していることが、最も一般的な原因です。
ネットワークまたはファイアウォールの問題:Connect AIのIP範囲がSnowflakeのネットワークポリシーに追加されていることを確認してください。ファイアウォールによるブロックは、認証エラーではなく接続タイムアウトとして現れます。
トークンの有効期限切れ:セキュリティ統合設定で、OAUTH_ISSUE_REFRESH_TOKENSがTRUEに設定されており、Connect AIのトークンローテーションが有効になっていることを確認してください。
ステップ8:ガバナンスとロール管理のベストプラクティス
最小権限の原則にもとづき、claude_roleの権限は業務で必要な範囲に限定し、スキーマ変更のたびに権限付与を見直しましょう。監査証跡とは、一連の操作を時系列で記録した、証拠となるログのことです。Snowflake組み込みのクエリ履歴とConnect AIの一元化された監査ログを組み合わせれば、Claudeが実行したすべてのSQL文を完全に記録できます。AIエージェントにどこまで権限を委ねるべきかという設計指針は、自律性のスペクトラムのどこにいても、AIエージェントに必要な条件でも整理されています。
定期的な権限レビューに加えて、Snowflakeの組み込みログ機能を有効にし、AIによるクエリをすべて追跡できる状態にしておいてください。Claudeのコネクタは複数のエンタープライズシステムに同時にアクセスできるため、システム間のアクセス状況は明示的に文書化しておく必要があります。
Snowflakeデータで実現できること:業務別のClaude活用例
接続設定が完了すれば、あとはClaudeに自然言語で質問するだけでSnowflakeのデータを分析できます。以下は、Connect AI経由の接続で実際に活用できる業務別のプロンプト例です。

経理・財務分析:「今四半期のMRRを製品カテゴリ別・地域別に集計し、前四半期との差分を教えてください」のように問いかければ、ロールに許可されたテーブルの範囲内でClaudeが集計・要約まで行います。
マーケティングアトリビューション分析:「過去6か月で最もLTVの高い顧客を獲得したマーケティングチャネルはどれですか」といった質問により、広告費からパイプライン、成約までを横断した分析を自然言語で得られます。
SaaS利用状況モニタリング:「無料プランから有料プランへの転換率が高い機能はどれですか」を尋ねれば、プロダクト利用ログテーブルを参照した機能採用・リテンション分析をその場で受け取れます。
いずれの例も、ステップ1で設定したSELECT権限の範囲内でのみ実行されるため、追加の権限拡張なしに安全に運用できます。
同じガバナンスを他システムにも適用する
Snowflake単体のMCP接続では、監査ログもロール管理もSnowflake内に閉じてしまいます。CData Connect AIなら、同じOAuth・RBACの仕組みを他の数百のシステムにも拡張できます。たとえば、SalesforceからMySQLへのデータ連携にClaude CodeとMCPを組み合わせる具体的な方法は、Claude CodeとMCPを使ったSalesforceからMySQLへの連携で紹介しています。
Connect AIの無料トライアルを開始して、Snowflakeで構築したガバナンスモデルを他システムにも拡張してみてください。
SnowflakeのデータをClaudeで安全に活用する
OAuth・RBAC・監査ログを一元管理できるConnect AIなら、Snowflakeのデータをそのままの安全性でClaudeに渡せます。まずは30日間の無料トライアルで、実際の接続を試してみてください。
無料トライアルを始める