
Snowflakeセキュリティ検証:権限管理とNW制御の実践
データ活用基盤は利用者や接続経路が増えるほど運用が複雑化し、初期の設計・統制が不十分だと「想定外の操作」や「意図しないアクセス」につながります。そこで、今回はクラウド型データプラットフォームサービスの「Snowflake」を用いたセキュリティ検証をおこないました。
今回の検証は、今後の案件での実運用に向け、事前にナレッジを蓄積することを目的として社内の若手メンバー(1年目~2年目)が参加しました。
※本記事はスライドの記載内容をもとに、検証の要点を簡潔にまとめています。詳細な検証内容や技術的な説明は埋め込みのスライド本文をご参照ください。
INDEX[非表示]
- 1.検証の目的
- 2.使用サービスと用語説明
- 3.検証結果
- 3.1.検証1:権限・アクセス管理
- 3.1.1.検証1-1:ACCOUNTADMINの剥奪
- 3.1.2.検証1-2/1-3:ネットワークポリシーの適用
- 3.1.3.検証1-4:セカンダリロール機能の制限
- 3.2.検証2:ポリシーの複製
- 4.まとめ
検証の目的
プロジェクトにおけるSnowflake環境の経験を踏まえ、将来的な利用規模の拡大を想定した際、以下の点について事前に考慮が必要であると認識しました。
- 権限設計
- アカウント管理
- セキュリティ統制
上記の考慮点を踏まえ、以下二つの観点から検証項目を設定し、検証をおこないました。
- 権限・アクセス管理
- ポリシーの複製
使用サービスと用語説明
- 使用サービス:Snowflake(トライアルプラン)
- プラットフォーム:AWS ap-northeast-1
本検証に登場するおもな用語は以下のとおりです。
- ACCOUNTADMIN:Snowflake内ですべての操作を実行することが可能な最上位の権限をもつロール
- プライマリロール:現在のセッションでメインとして使用するロール
- セカンダリロール:プライマリロール以外に、ユーザに割り当てられている他のロールの権限を同時に有効化できる機能
- ネットワークルール:通信元を特定するためのドメイン名やIPアドレスなどのネットワーク識別子をグループ化し定義したもの
- ネットワークポリシー:Snowflakeサービスおよび内部ステージへのアクセスを制御するセキュリティ機能。定義済みのネットワークルールを引用し、許可またはブロックをおこなう。
検証結果
検証1:権限・アクセス管理
本観点では、以下の動作確認をおこないました。
- 1-1 ACCOUNTADMINの剥奪
- 1-2 ネットワークポリシーの適用(指定したNWからのアクセスのみを許可)
- 1-3 ネットワークポリシーの適用(指定したNW外からのアクセスをブロック)
- 1-4 セカンダリロール機能の制限
検証1-1:ACCOUNTADMINの剥奪
- 目的:新規ユーザ作成時における管理者権限の付与を制限し、業務に必要な最小限の権限のみを割り当てる。
- 方法:新規ユーザ作成時に低い権限を指定するパラメータを用いる。作成したユーザの権限では、高権限が必要な操作が実行できないことを確認する。

DEFAULT_ROLE=PUBLIC のパラメータを指定し、PUBLIC(一般権限)しか許可されていないユーザを作成しました。結果、このユーザでは高権限が必要な操作は実行できないことが確認できました。
検証1-2/1-3:ネットワークポリシーの適用
- 目的:許可された通信元以外からのアクセスを制御し、Snowflake環境の安全性を向上させる。
- 方法:許可したい通信元のIPレンジのみをネットワークルールに設定する。許可されたIPアドレスからはアクセスが可能で、許可されたIPアドレス以外からはアクセスができないことを確認する。

IPアドレスを制限するネットワークポリシーを適用することで、指定したNWからのアクセスのみ許可、指定したNW外からのアクセスをブロックの双方で動作確認ができました。
検証1-4:セカンダリロール機能の制限
- 目的:意図しない権限の過剰な行使を抑制し、操作の透明性を高める。
- 方法:ユーザがセカンダリロールを使用することを禁止するポリシーを適用し、ポリシー設定後にセカンダリロールの使用ができないことを確認する。

ポリシーの適用を試みたところ、トライアルプランの制約上、セカンダリロールを禁止するポリシーが非対応でエラーとなってしまい、テストを実施できませんでした。

検証2:ポリシーの複製
本観点では、以下を対象に動作確認を試みました。
- 2-1 ゼロデータアカウントのテンプレート機能
検証2-1:ゼロデータアカウントのテンプレート機能
- 目的:複数のテナントへの迅速な展開と設定の標準化を実現する。
- 方法:ロールやポリシーが同一のユーザを複数のテナントに複製できることを確認する。

実施に向けて調査をおこないましたが、検証当時(2024年10月)はテンプレートの記載内容および展開方法の公開情報が不足しており、手法がわからず実施まで至りませんでした。
まとめ
本検証の結果は次のとおりです。
- ACCOUNTADMINの剥奪:ACCOUNTADMINを最初から付与せずにユーザを払いだすことができた。
- ネットワークポリシーの適用:許可されたIPアドレスからの通信のみアクセスできることを確認した。
- セカンダリロール機能の制限:トライアルアカウントではテストをおこなうことができなかった。
- ゼロデータアカウントのテンプレート機能:2024年10月当時の公開情報だけでは手法がわからず検証できなかった。
今回の期間では実施できなかった項目もありますが、管理者権限の制限によってユーザの想定外の操作を抑止できること、ネットワークポリシーによるアクセス制限の組み合わせでセキュアなエンドポイント管理を実現できることがわかりました。
この2層の制御により、Snowflakeにおける安全かつ統制されたデータ活用基盤の構築が可能となると考えます。一方で、用いるデータの容量や求められる要件によって制御の仕方は適宜変更していく必要がある点には留意が必要です。
今回の検証結果をベースとして、実運用のフェーズに合わせて最適なガバナンスモデルの構築を目指していきます。
※本資料に登場する会社名・製品・サービス名、ロゴマークなどは該当する各社の商号・商標または登録商標です。








