はじめに:なぜネットワークポリシーが必要なの?
こんにちは!今回はSnowflakeのセキュリティ機能のひとつ、ネットワークポリシーについて解説します。Snowflakeはクラウド上で動くデータウェアハウスなので、理論上は世界中のどこからでもアクセスできてしまいます。便利な反面、「社外のカフェのWi-Fiから誤ってログインされたら困る…」という不安もありますよね。
そこで活躍するのが ネットワークポリシー です。これは「このIPアドレスからしかSnowflakeに接続させない」という、いわば玄関の鍵のような機能。たとえば「会社のオフィスとVPNからだけ接続OK、それ以外は全部ブロック」といった制御が、SQLたった数行で実現できます。

ネットワークポリシーの基本概念
ネットワークポリシーは、許可リスト(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;
ユーザーレベルの設定は、アカウントレベルの設定より優先されます。なので「全社では厳しめ、ただしバッチサーバーだけは別ルールで」といった柔軟な運用が可能です。

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を忘れずに!」を合言葉に、安全なデータ運用を目指しましょう❄️
参考リンク
関連記事
- Snowflake RBAC入門|ロールで権限管理を始めよう – ロールベースのアクセス制御の基本。ネットワークポリシーと併用すべき必須機能です。
- Snowflakeカスタムロール作成とGRANT/REVOKE入門 – 権限を細かく分けたいときに役立つカスタムロールの作り方。
- Snowflakeの自動サスペンドと自動再開で賢く節約!初心者向け解説 – セキュリティと並んで運用で気にすべきコスト最適化の話。
- Snowflakeの料金体系をやさしく解説 – クレジットやストレージなどコストの仕組み全般を解説しています。

