Snowflakeネットワークポリシー入門|IPでアクセスを制限する方法

Snowflakeネットワークポリシー入門|IPでアクセスを制限する方法 Snowflake

はじめに:なぜネットワークポリシーが必要なの?

こんにちは!今回はSnowflakeのセキュリティ機能のひとつ、ネットワークポリシーについて解説します。Snowflakeはクラウド上で動くデータウェアハウスなので、理論上は世界中のどこからでもアクセスできてしまいます。便利な反面、「社外のカフェのWi-Fiから誤ってログインされたら困る…」という不安もありますよね。

そこで活躍するのが ネットワークポリシー です。これは「このIPアドレスからしかSnowflakeに接続させない」という、いわば玄関の鍵のような機能。たとえば「会社のオフィスとVPNからだけ接続OK、それ以外は全部ブロック」といった制御が、SQLたった数行で実現できます。

SnowflakeネットワークポリシーでALLOWED_IP_LISTとBLOCKED_IP_LISTによりIP接続を制御する仕組みを示す概念図

ネットワークポリシーの基本概念

ネットワークポリシーは、許可リスト(ALLOWED_IP_LIST)拒否リスト(BLOCKED_IP_LIST) の2つで成り立っています。

  • ALLOWED_IP_LIST:接続を許可するIPアドレスやCIDR範囲を列挙
  • BLOCKED_IP_LIST:逆に接続を絶対に拒否したいIP

イメージはマンションの自動ロック。住人(許可IP)だけ入れて、それ以外はインターホン越しに門前払い、というイメージです。CIDR表記(例:192.168.1.0/24)を使えば、特定の範囲をまとめて指定できるのも便利ポイント。

適用できるレベル

ネットワークポリシーは、以下の3つの単位で適用できます。

  • アカウントレベル:Snowflakeアカウント全体に適用(最も広範囲)
  • ユーザーレベル:特定のユーザーだけに適用(ユーザーごとに違うポリシーを設定可能)
  • セキュリティ統合レベル:SCIMやOAuth経由のアクセス用

実際に作ってみよう

では、SQLで簡単なネットワークポリシーを作ってみましょう。なお、ネットワークポリシーの作成・変更には SECURITYADMIN ロール以上の権限が必要です。権限管理がよくわからない方は、まずSnowflake RBAC入門|ロールで権限管理を始めようを読んでおくとスムーズですよ。

1. ポリシーを作成する

-- オフィスのIP範囲だけ許可、特定のIPは明示的に拒否
CREATE NETWORK POLICY office_only_policy
  ALLOWED_IP_LIST = ('203.0.113.0/24', '198.51.100.42')
  BLOCKED_IP_LIST = ('198.51.100.99')
  COMMENT = '本社オフィスとVPNからのアクセスのみ許可';

2. アカウント全体に適用する

ALTER ACCOUNT SET NETWORK_POLICY = office_only_policy;

3. 特定ユーザーだけに適用する

-- 例: ETL用のサービスアカウントには別ポリシー
ALTER USER etl_service_user 
  SET NETWORK_POLICY = etl_server_policy;

ユーザーレベルの設定は、アカウントレベルの設定より優先されます。なので「全社では厳しめ、ただしバッチサーバーだけは別ルールで」といった柔軟な運用が可能です。

SnowflakeネットワークポリシーをALTER ACCOUNTとALTER USERでアカウントと特定ユーザーに適用するSQL設定例

Snowsightからの操作

SQLが苦手な方は、Snowsightの左メニューから Admin → Security → Network Policies と進めば、画面ぽちぽちでポリシーを作成・編集できます。

運用上の注意点

便利なネットワークポリシーですが、以下の点には要注意です。

  • 自分自身を締め出さない:現在接続しているIPを許可リストに含め忘れると、設定した瞬間に自分もログインできなくなります(あるある事故)。
  • BLOCKED_IP_LISTが優先:同じIPが両方のリストに入っていた場合、ブロックが勝ちます。
  • 動的IPに注意:在宅勤務の家庭用回線などは固定IPでないことが多く、その場合はVPNを経由させるのが現実的です。
  • 監査ログとの併用:過去のアクセス履歴は LOGIN_HISTORY ビューなどで確認できるので、不審なアクセスがないか定期チェックを。

よくあるユースケース

  • 本番環境を社内ネットワークに限定:オフィスIP+VPNのIPレンジだけALLOW
  • BIツール用ユーザーをサーバーに固定:Tableau ServerなどのIPだけ許可
  • 退職者対策:不要になったIPをBLOCKしておく

セキュリティを強化するなら、カスタムロールでの権限管理と組み合わせるのがおすすめ。「誰が」「どこから」アクセスできるかを多重で守れます。

まとめ

ネットワークポリシーは、SQL数行でSnowflakeに強力なIPアクセス制御を追加できる頼もしい機能です。本番環境では必須レベルなので、ぜひ早めに導入してみてください。設定する際は「自分のIPを忘れずに!」を合言葉に、安全なデータ運用を目指しましょう❄️

参考リンク

関連記事