Snowflakeは数クリックでアカウントが立ち上がり、すぐにSQLが書ける手軽さが魅力です。しかしその手軽さゆえに、エディションやリージョン、そして最初に作るロールの設計を後回しにすると、あとから「作り直し」でしか直せない負債を抱えがちです。本記事では、AWS上で動くSnowflakeを前提に、エディション選択・リージョン選定・最初のオブジェクト作成・MFAとネットワークの初期防御までを、正しい順序で解説します。とりわけ、初期構築でACCOUNTADMIN一本に頼るとガバナンスが崩れる——この落とし穴を検証段階でどう潰すかを軸に据えます。
01初期セットアップは「順序」が9割
Snowflakeの立ち上げでつまずくのは、たいてい機能の使い方ではなく「順序」です。エディションやリージョンはアカウント作成時に決まってしまい後から動かせない要素で、ロール体系は最初に作ったオブジェクトの所有者が固定されるため、あとから直そうとすると影響範囲が広がります。逆に言えば、順番さえ間違えなければ初期セットアップは怖くありません。まずは全体像を1枚の図で掴んでください。
02エディション選択:機能ではなく「要件」で選ぶ
Snowflakeには Standard・Enterprise・Business Critical という3つの主要エディションがあります(上位のVirtual Private Snowflakeもあります)。Standardは標準機能をひと通り使える入門レベル、Enterpriseは大規模組織向けに機能を拡張したもので、Time Travelの保持期間を最長90日まで延ばせるほか、列レベル・行レベルのアクセスポリシーやオブジェクトタグが利用できます。Business Critical(旧称 Enterprise for Sensitive Data)はさらに機微データ向けの保護を加えたエディションで、HIPAA・HITRUST CSFへの対応、顧客管理鍵によるTri-Secret Secure、フェイルオーバー/フェイルバックによる事業継続、そしてAWS PrivateLinkによる閉域接続が使えます。
選び方の勘所は「使いたい機能」から入らないことです。組織の統制・コンプライアンス要件から逆算すると迷いません。列レベルセキュリティやタグベースの統制を最初から入れたいならEnterprise以上、そしてAWS PrivateLchildやTri-Secret Secure、DRのためのフェイルオーバーが要件に入るならBusiness Critical一択になります。なお、エディションはALTER ACCOUNTで後から引き上げることも可能になっていますが、変更に伴う設計の見直しコストは小さくないため、要件が読めているなら最初から適切なエディションで開始するのが結局は安上がりです。
03AWSリージョンの選定は「後から動かせない」前提で
Snowflakeアカウントは、作成時に選んだ1つのリージョンでホストされます。ここが重要で、アカウントを別リージョンへ「引っ越す」ことは基本的にできません。複数リージョンで使いたい場合は、各リージョンにアカウントを持ち、レプリケーションで連携させる構成になります。したがってリージョン選定は、あとで直せない一発勝負として扱うべきです。
判断軸は主に3つです。第一にレイテンシ——利用者やデータソースに地理的に近いリージョンを選びます。国内利用が中心なら東京(ap-northeast-1)や大阪(ap-northeast-3)が基本線です。第二にデータレジデンシ——個人情報や規制データを国外に出せない要件があるなら、選択肢は自動的に絞られます。第三にAWS側リソースとの同居です。SnowflakeはAWS上でS3をストレージ基盤として動きますが、外部ステージ用のS3バケットや、後述のTri-Secret Secureで使うKMSの顧客管理鍵は、原則としてSnowflakeアカウントと同一リージョンに置く必要があります。クロスリージョンのKMS参照はサポートされないため、鍵とアカウントのリージョンがずれると詰みます。
04【落とし穴】ACCOUNTADMINで作り込むと統制が崩れる
もっとも典型的な失敗が、立ち上げの勢いのまま最上位ロールのACCOUNTADMINでデータベースもウェアハウスも作り込んでしまうことです。Snowflakeでは、オブジェクトを作成したロールがそのまま所有者になります。ACCOUNTADMINで作り続けると、資産の所有権が最上位ロールに集中し、後から権限委譲やロール分離をしようとしても所有権の付け替えが必要になり、統制の再設計が一気に重くなります。
当社でも、あるPoC環境でこの状態を意図的に再現して検証しました。構築担当がACCOUNTADMINのまま全DB・全WHを作った結果、いざチームごとに権限を分けようとすると所有権の移設と再GRANTが連鎖し、素直に分離できないと分かりました。検証段階でこの詰みを踏み抜けたため、本番アカウントでは方針を切り替え、初期からSYSADMIN配下のカスタムロール階層で構築することを標準化。結果として本番では、この作り直しを一度も発生させていません。
Snowflakeのシステムロールは役割が明確に分かれています。ACCOUNTADMINは最上位で、その配下にSECURITYADMIN・SYSADMIN・USERADMINが並びます。SYSADMINはウェアハウス・データベース・各種オブジェクトの作成を担い、SECURITYADMINは権限付与(MANAGE GRANTS)、USERADMINはユーザーとロールの管理を担当します。公式ドキュメントも、オブジェクトの所有者となるカスタムロールは最上位のものをSYSADMINに束ね、ACCOUNTADMINはアカウントの初期設定と保守にのみ使うことを推奨しています。
05最初のデータベース・ウェアハウス・ロールを正しい順で作る
ここまでの方針を、具体的な作成順に落とし込みます。おすすめは次の流れです。まずUSERADMIN(相当のロール)で管理用のカスタムロールを用意し、SYSADMINにぶら下げます。次にそのカスタムロールに切り替えてから、データベースとスキーマ、そしてウェアハウスを作成します。こうすると生まれた瞬間からオブジェクトの所有者が意図したロールになり、後付けの所有権移設が不要になります。「まずロール、次にそのロールでオブジェクト」——この順番だけは徹底してください。
ウェアハウス作成時にはコスト面の初期設定を必ず入れます。SnowflakeのウェアホウスはCREATE時にAUTO_SUSPENDを指定でき、既定値は600秒(10分の無操作で自動停止)です。開発・検証系ではもっと短く、たとえば60秒程度まで詰めるのが定石です。加えてINITIALLY_SUSPENDEDは既定でFALSE(作成と同時に起動)なので、作った直後から課金が始まる点に注意します。
06初期防御:MFAとネットワークポリシーを最初に入れる
セットアップの最後ではなく、むしろ早い段階で入れておきたいのが認証とネットワークの防御です。Snowflakeは単要素(パスワードのみ)サインインの廃止を段階的に進めており、2024年8月のビヘイビア変更以降に作成されたアカウントでは、パスワードで認証する人間ユーザーは既定でMFA登録が求められます。管理者はさらに認証ポリシー(Authentication Policy)で、MFAの要求範囲やSSOへの適用を明示的に制御できます。プログラムから接続するサービスユーザーにはパスワードを持たせず、キーペア(RSA)認証を使うのが現在の推奨形です。
ネットワーク面ではネットワークポリシーで接続元を絞ります。新規に組む場合は、スキーマレベルのネットワークルール(MODE=INGRESS、TYPE=IPV4など)を作り、それを許可リストとしてネットワークポリシーに束ねる方式が推奨で、旧来のALLOWED_IP_LIST/BLOCKED_IP_LISTパラメータは使いません。アカウントに紐づけられるネットワークポリシーは常に1つだけで、新しいものを割り当てると既存が自動的に外れます。許可リストには自分の現在の接続元(オフィスの固定IPやAWS側のNAT Gateway/VPNの出口IP)を必ず含めてください。含め忘れると、有効化した瞬間に自分自身が締め出されエラーになります。
AWSとの閉域接続まで踏み込むなら、Business Critical以上で使えるAWS PrivateLinkが有効です。VPCインターフェースエンドポイント経由でSnowflakeへ到達し、通信がインターネットを経由しなくなります。あわせて、外部ステージからS3を読む場合はストレージ統合(Storage Integration)を使い、長期のアクセスキーではなくIAMロールで最小権限を委譲する構成が定石です。認証・ネットワーク・鍵管理の初期防御は、データを入れる前に固めておくほど後の手戻りが減ります。
—まとめ:セットアップ「完了」の定義
初期セットアップが終わったと言えるのは、次が揃ったときです。①要件から逆算してエディションを選んだ。②AWSリソースの重心に合わせてリージョンを確定した。③ACCOUNTADMINでの作り込みを避け、SYSADMIN配下にカスタムロール階層を用意した。④最初のDB・スキーマ・ウェアハウスをそのロールで作り、AUTO_SUSPENDとリソースモニターでコストの初期ガードを入れた。⑤MFAとネットワークポリシー(新方式のネットワークルール)で認証と接続元を絞った。——この5点が「はい」になっていれば、データを入れて拡張していく土台は整っています。当社は低コストの小規模導入から大規模基盤まで、AWS上のSnowflakeをこの順序で立ち上げ、統制とコストを最初から効かせる設計を標準にしています。手軽に始められるからこそ、最初の一手を丁寧に。それが半年後の運用を大きく楽にします。
参考情報(一次情報)
- Snowflake editions | Snowflake Documentation
- Access control best practices | Snowflake Documentation
- Multi-factor authentication (MFA) | Snowflake Documentation
- Controlling network traffic with network policies | Snowflake Documentation
- AWS PrivateLink and Snowflake | Snowflake Documentation
- CREATE WAREHOUSE | Snowflake Documentation
EMWはAWS上のSnowflakeを、エディション選定からロール統制・ネットワーク防御まで一貫して支援します。立ち上げの順序に迷ったらご相談ください。
相談する