>100 Views
March 19, 26
スライド概要
プロジェクトにおけるSnowflake環境の経験から、将来的な利用規模の拡大を想定した際、事前にセキュリティ関連の考慮が必要であると認識しました。
1. 権限・アクセス管理
2. ポリシーの複製
今回は上記2つの観点から検証項目を設定し、検証を行いました。
エヌアイデイの若手メンバーが参加し、基礎技術の習得と実践的な経験を目的とした社内の技術検証取り組みの資料です。
株式会社エヌアイデイの公式アカウントです。ソフトウェア開発、システム構築、システム運用まで幅広いICTサービスを提供する、1967年創業の独立系IT企業です。 NIDエンジニアの社内取り組みや登壇資料を共有します。
Snowflakeセキュリティ検証: 権限管理とNW制御の実践 2026年3月27日 (検証実施時期:2024年8-10月) 株式会社エヌアイデイ ICTデザイン事業部ANA部第2課 Copyright(c)2025 NID All Rights Reserved 1
参加メンバー&検証年月 ICTデザイン事業部ANA部第2課 ICTデザイン事業部ANA部第2課 ICTデザイン事業部ANA部第2課 ICTデザイン事業部ANA部第2課 ※2024年8月~10月検証実施 T.T. R.O. N.H. K.S. (1年目 ※検証当時) (2年目 ※検証当時) (1年目 ※検証当時) (1年目 ※検証当時)
目次 ● 概要 ● 目的 ● 使用サービス ● 用語 ● 検証1 ● 検証2 ● まとめ ● 展望 ※本資料に登場する会社名・製品・サービス名、ロゴマークなどは該当する各社の商号・商標または登録商標です。 3
概要:Snowflakeとは ■Snowflake Snowflake社の提供するクラウド型のデータプラットフォームサービス データレイクおよびデータウェアハウスの機能を持ち、AWS, Azure, Google Cloudといった任意のクラウド上で動作させることができる。 4
概要:Snowflakeとは 続き ■データレイク データを格納しておくストレージ データの形式に制約はなく、画像やテキストなど様々なデータを一元的に 保存することができる。 ■データウェアハウス(DWH) 構造化データ※1を格納する保存ストレージ 重複排除やソートなど、加工されて分析に適した形式のデータを格納する。 ※1構造化データ:事前に定めた定義に従い、行と列を持つ形式に整形されたデータ 5
目的 実プロジェクトにおけるSnowflake環境経験を踏まえ、将来的な利用規模の 拡大を想定した場合、以下の点について考慮が必要であると認識した。 ・権限設計 ・アカウント管理 ・セキュリティ統制 これらの考慮点を踏まえて、セキュリティおよびアカウント管理の観点から Snowflakeを用いた検証を計画した。 6
使用サービス 本検証では下記のサービスを使用した。 サービス 提供元 エディション プラットフォーム Snowflake Snowflake トライアルプラン AWS ap-northeast-1 7
用語説明 ・ACCOUNTADMIN Snowflake内ですべての操作を実行することが可能な最上位の権限をもつロール ・プライマリロール 現在のセッションでメインとして使用するロール ・セカンダリロール プライマリロール以外に、ユーザに割り当てられている他のロールの権限を同時 に有効化できる機能 8
用語説明 続き ・ネットワークルール 通信元を特定するためのドメイン名やIPアドレスなどのネットワーク識別子を グループ化し定義したもの ・ネットワークポリシー Snowflakeサービスおよび内部ステージ※2へのアクセスを制御するセキュリティ 機能 定義済みのネットワークルールを引用し、それらに対して許可またはブロックを 行う。 ※2内部ステージ:Snowflakeが提供・管理する専用のデータ格納領域 Amazon S3などのSnowflake外に存在し、データを連携する際に使用する領域は外部ステージと呼ぶ 9
検証項目 今回の検証では2つの観点から検証を行った。 1. 権限・アクセス管理 2. ポリシーの複製 10
検証1 権限・アクセス管理 アクセス管理の観点で、下記項目の動作確認を行った。 項番 検証項目 内容 1-1 ACCOUNTADMINの剥奪 アカウントに付与する権限を必要最低限にするため、初め から管理者権限を剥奪した状態でユーザを作成する。 1-2 ネットワークポリシーの適用 IPアドレスを制限し、指定したNWからのアクセスのみを 許可する。 1-3 ネットワークポリシーの適用 IPアドレスを制限し、指定したNW外からのアクセスを ブロックする。 1-4 セカンダリロール機能の制限 セカンダリロールを禁止するポリシーを適用し、現在の ロール以外の権限によるクエリ実行を禁止する。 11
検証2 ポリシーの複製 アカウント管理の観点で、下記項目の動作確認を行った。 項番 検証項目 内容 2-1 ゼロデータアカウントの テンプレート機能 定義したテンプレートを元に、ロールやポリシーの内容が 同一のユーザを複製する。 12
検証1 権限・アクセス管理 13
検証1-1 ACCOUNTADMINの剥奪 下記項目の動作確認を行った。 項番 検証項目 内容 1-1 ACCOUNTADMINの剥奪 アカウントに付与する権限を必要最低限にするため、初め から管理者権限を剥奪した状態でユーザを作成する。 14
検証1-1 ACCOUNTADMINの剥奪 ■目的 新規ユーザ作成時における管理者権限の付与を制限し、業務に必要な最小限の 権限のみを割り当てる。 ■方法 新規ユーザの作成時に、低い権限を指定するパラメータを用いる。 作成したユーザの権限では、高権限が必要な操作が実行できないことを確認する。 15
構成 ACCOUNTADMINの剥奪 何も指定せずに作成したユーザは 上位権限も使用できてしまう 以下パラメータを指定 DEFAULT_ROLE=PUBLIC PUBLIC(一般権限)しか許可されて いないユーザを作成する 16
結果 ACCOUNTADMINの剥奪 各項目の検証結果を下記に記載した。 項番 検証項目 内容 結果 1-1 ACCOUNTADMIN の剥奪 アカウントに付与する権限を必要最低限にするため、初めから 管理者権限を剥奪した状態でユーザを作成する。 OK 17
結果 ACCOUNTADMINの剥奪 無制限ユーザの場合 クエリの実行権限は 管理者権限 管理者権限を持っているので、 内部データに対するクエリの実行が できる。 18
結果 ACCOUNTADMINの剥奪 制限ユーザの場合 クエリの実行権限は 一般権限 管理者権限が付与されていないので、 自身の権限を上げることができない。 19
結果 ACCOUNTADMINの剥奪 制限ユーザの場合 クエリの実行権限は 一般権限 管理者権限が付与されていないので、 管理者権限が必要なクエリの実行が できない。 20
検証観点1-2.1-3 権限・アクセス管理 下記項目の動作確認を行った。 項番 検証項目 内容 1-2 ネットワークポリシーの適用 IPアドレスを制限し、指定したNWからのアクセスのみを 許可する。 1-3 ネットワークポリシーの適用 IPアドレスを制限し、指定したNW外からのアクセスを ブロックする。 21
検証1-2.1-3 ネットワークポリシーの適用 ■目的 許可された通信元以外からのアクセスを制御し、Snowflake環境の安全性を向上 させる。 ■方法 許可したい通信元のIPレンジのみをネットワークルールに設定する。 許可されたIPアドレスからはアクセスが可能で、許可されたIPアドレス以外から はアクセスができないことを確認する。 22
構成 ネットワークポリシーの適用イメージ 許可されたIPの ためアクセス可能 OK 192.0.2.10 Allow 192.0.2.0/24 許可されていないIPの ためアクセス不可 NO 203.0.113.5 23
結果 ネットワークポリシーの適用 各項目の検証結果を下記に記載する。 項番 検証項目 内容 結果 1-2 ネットワークポリシーの 適用 IPアドレスを制限し、指定したNWからのアクセスのみ を許可する。 OK 1-3 ネットワークポリシーの 適用 IPアドレスを制限し、指定したNW外からのアクセスを ブロックする。 OK 24
結果 ネットワークポリシーの適用 IPアドレスを制限する ネットワークポリシーを作成する。 25
結果 ネットワークポリシーの適用 ポリシーをアクティブ化すると 設定が反映される。 26
結果 ネットワークポリシーの適用 ポリシー適用後、 許可されていないIPアドレスからは アクセスができなくなる。 27
検証1-4 権限・アクセス管理 下記項目の動作確認を行った。 項番 検証項目 内容 1-4 セカンダリロール機能の制限 セカンダリロールの機能を制限するポリシーを適用する。 28
検証1-4 セカンダリロール機能の制限 ■目的 意図しない権限の過剰な行使を抑制し、操作の透明性を高める。 ■方法 ユーザがセカンダリロールを使用することを禁止するポリシーを適用する。 ポリシー設定後に、セカンダリロールの使用ができないことを確認する。 29
構成 セカンダリロール機能 マネージャー マネージャ用 Database 分析者用 Database ロールを切り替えなくても複数の 権限を一度に使用できる →誤操作や不正アクセス防止のために 禁止したい 分析者 30
結果 セカンダリロール機能の制限 各項目の検証結果を下記に記載する。 項番 検証項目 内容 結果 1-4 セカンダリロール機能 セカンダリロールの機能を制限するポリシーを適用 する。 NG 31
結果 セカンダリロール機能の制限 トライアルプランの制約により、 セカンダリロールを禁止するポリシーが 非対応のためエラーとなった 32
検証2 ポリシーの複製 33
検証2-1 ポリシーの複製 下記項目の動作確認を行った。 項番 検証項目 内容 2-1 ゼロデータアカウントの テンプレート機能 ロールやポリシーの内容が同一のユーザをSnowflake の アカウントに複製する。 34
検証2-1 ゼロデータアカウントのテンプレート機能 ■目的 複数のテナントへの迅速な展開と設定の標準化を実現する。 ■方法 ロールやポリシーが同一のユーザを複数のテナントに複製できることを確認する。 35
構成 ゼロデータアカウントのテンプレート機能 α Account β Account template 36
結果 ゼロデータアカウントのテンプレート機能 各項目の検証結果を下記に記載する。 項番 検証項目 内容 結果 2-1 ゼロデータアカウントの テンプレート機能 ロールやポリシーの内容が同一のユーザをSnowflake のアカウントに複製し、権限を管理する。 NG 37
結果 ゼロデータアカウントのテンプレート機能 (2024/10時点)「Snowflakeのセッションで紹介されていた」以上の情報がなく、 テンプレートの記載内容および展開方法がわからずに機能を試すことすら 叶わなかった。 38
検証課題 39
検証課題 動作検証で判明した課題を下記に記載する。 項番 課題種別 内容 1-4 セカンダリロール機能 ロールを自由に切り替えるという権限を制限する機能が、 トライアルプランではサポートされておらずテストを実施する ことができなかった。 2-1 ゼロデータアカウントの テンプレート機能 テンプレートによるアカウントを複製するという機能を検討し たが、情報が足らず検証に至らなかった。 40
まとめ 1.ACCOUNTADMINの剥奪 →ACCOUNTADMINを最初から付与せずにユーザを払いだすことができた。 2-3.ネットワークポリシーの適用 →許可されたIPアドレスからの通信のみアクセスできることを確認した。 4.セカンダリロール機能の制限 →トライアルアカウントではテストを行うことができなかった。 5.ゼロデータアカウントのテンプレート機能 →2024/10現在の公開情報だけでは検証不可能なことがわかった。 41
展望 新規作成したユーザからACCOUNTADMINを剥奪し、PUBLIC(低権限のみ)が 割り当てられていることで、想定外の操作を抑止することができることを確認 した。 ネットワークポリシーによるアクセス制限と組み合わせることで、許可された 経路以外からの接続を遮断し、セキュアなエンドポイント管理を実現した。 これらの2層の制御により、Snowflakeにおける安全かつ統制されたデータ活用 基盤の構築が可能となる。用いるデータの容量や求められる要件よって、制御の 仕方は適宜変更していく必要がある点には留意した上で運用していく必要がある。 今回の検証結果をベースとして、実運用のフェーズに合わせて最適なガバナンス モデルの構築を目指していく。 42
参考サイト タイトル URL Brand Guidelines - Snowflake https://www.snowflake.com/brand-guidelines/ アクセス制御の概要 | Snowflake Documentation https://docs.snowflake.com/ja/user-guide/security-access-controloverview ネットワークポリシーを使用したネットワーク トラフィックの制御 | Snowflake Documentation https://docs.snowflake.com/ja/user-guide/network-policies アクセス制御の概要 | Snowflake Documentation https://docs.snowflake.com/ja/user-guide/security-access-controloverview#enforcement-model-with-primary-role-and-secondary-roles SnowflakeのNetwork Rulesを使ってNetwork Policyを整理してみた。 #Security - Qiita https://qiita.com/Itsuki_Inoue/items/87d8a9208b9ee92f9da6 Snowflake SUMMIT 2023 最速レポ(2日目①) datumstudio.jp/blog/0628_snowflake_summit2023_dailyreport_day2/ 第8回DataMeshLT#4 Snowflake-データメッシュ ガバナンス - Speaker Deck https://speakerdeck.com/sfdmt/di-8hui-datameshlt-number-4snowflake-detametusiyugabanansu 43