Snowflakeでよく見聞きする Horizon Catalog ですが、カタログなのか?サービスなのか?実体がよくわからないという方も多いかと思います。
Horizon Catalog は、一言でいえばカタログとその関連機能をひとまとめにして名前をつけたものです。本記事では、現在(2025年9月時点)GAまたはパブリックプレビューで利用可能となっている Horizon Catalog の全機能についてまとめました。
概要
Horizon Catalog は、コンプライアンス、セキュリティ、プライバシー、ディスカバリ、およびコラボレーション機能の組み込みセットを通じて、企業全体の課題に対応する統合ソリューションです。
独立したサービスではなく、以下の5つの要素からなる機能群の総称です。
- コンプライアンス
- セキュリティ
- プライバシー
- 相互運用性
- アクセス
機能
コンプライアンス
アクセス履歴
Account Usageビューの"ACCESS_HISTORY"にてオブジェクトのアクセス履歴を参照することが可能です。
アクセス履歴は主に以下に役立ちます。
- 未使用のデータ検出
- 機密データの移動状況追跡
- データ検証
- コンプライアンス監査
複製とフェイルオーバー
すべてのクラウドプラットフォーム・リージョンで複製が可能です。
リージョンレベルの災害に対応することが容易となり、高可用性の担保に役立ちます。
※データベース、共有以外のオブジェクトの複製やフェイルオーバーの利用については Business Critical Edition(またはそれ以上)が必要
オブジェクトの依存関係
Account Usageビューの"OBJECT_DEPENDENCIES"にてオブジェクトの依存関係を参照することが可能です。
依存関係を特定することで、参照されているオブジェクトの更新影響の考慮、機密データとの関連性調査などに役立ちます。
データリネージ
Snowsightの「Lineage」タブでオブジェクトの関係性を確認することが可能です。
例:テーブルからテーブルへのデータ移動、ビューのテーブル参照など
データの品質管理
データメトリック関数(DMFs)を利用し、データの品質管理を行うことが可能です。
データメトリック関数によりNULL値や重複値を検出し、問題があるレコードの特定や、データの修正を行うことができます。
セキュリティ
認証
Snowflakeでは、以下の認証方式がサポートされています。
- パスワードベース認証
- シングルサインオン(SSO)
- キーペア認証
- OAuth
- MFA
暗号化
Snowflakeはエンドツーエンド暗号化を実施しており、保存中の顧客データについてはAES 256ビット(またはそれ以上) の暗号化、転送中の顧客データに Transport Layer Security (TLS) 1.2 (またはそれ以上) を使用しています。
暗号鍵はSnowflake側で管理されますが、Tri-secret secure機能を有効化すると顧客管理キーを組み合わせることが可能です。
※Tri-secret secureの有効化は Business Critical Edition(またはそれ以上)が必要
接続性
ネットワークポリシーによるIP制限、Privatelink等を利用した閉域接続によりセキュアな接続が可能です。
※Privatelinkの有効化は Business Critical Edition(またはそれ以上)が必要
アクセス制御
Snowflakeのアクセス制御は、以下の3つの方式を組み合わせたものになっています。
- 任意アクセス制御(DAC)
- 各オブジェクトの所有者が、そのオブジェクトへのアクセス権を任意のユーザ/ロールに付与できる
- ロールベースアクセス制御(RBAC)
- アクセス権限がロールに割り当てられ、ロールはユーザーに割り当てられる
- ユーザベースアクセス制御(UBAC)
- アクセス権限が直接ユーザに割り当てられる
WITH MANAGED ACCESS
による限定的なアクセス制御など、細かな制御にも対応しています。
行や列のアクセス制御ポリシー
Trust Center
Scanner Package として提供される各スキャナーで指定されたセキュリティ上の推奨事項を定期的に評価・モニタリングできる機能です。Snowsight上で視覚的に確認することができます。
Workload Identity Federation
サービスユーザ向けの新しい認証方式です。
クラウドサービスプロバイダーのネイティブなID機能を利用したSnowflakeへの接続が可能です。
パスワード、APIキー、キーペアのような長期的な認証情報を持つ必要がなくなり、セキュリティの向上と運用の効率化を実現できます。
Programmatic Access Tokens
以下のSnowflakeエンドポイントの認証で利用可能なアクセストークンです。
- Snowflake REST API
- Snowflake SQL API
- Snowflake Catalog SDK
- Snowparkコンテナサービスエンドポイント
- Snowpark Connect for SparkでSnowflakeにホストされているSparkランタイム
プライバシー
差分プライバシー
クエリの集計結果にノイズを付加することで、差分攻撃(クエリの実行結果差分からデータを特定しようとする攻撃手法)から機密情報を保護します。
集計ポリシー
個別の列の参照における集約関数の利用を強制するポリシーです。
例:ロールAが参照する場合以外は、個人名データに対するSELECTコマンドに値を返さず、部門における人数集計コマンドの結果は返ってくる
結合ポリシー
クエリにおける結合(JOIN)の利用を強制するポリシーです。
例:"従業員"テーブルが他テーブルと結合されていない場合、値を返さない
投影ポリシー
投影(特定の列の値を表示すること)を制限するポリシーです。
例:ロールAが参照する場合以外は、個人番号データに対する直接的なSELECTコマンドに値を返さない
投影ポリシーは少し緩い制約であるため、クエリによっては間接的に値を参照できてしまいます。
漏洩を完璧に防ぐ必要がある場合は、対象の列を省くか、差分プライバシーを利用します。
合成データ
元のデータの形式と統計的特性を保持したまま、合成データ(機密情報の偽のコピー)を作成できる機能です。
例:機密情報を含むデータの合成データを作成してデータエンジニアリング部門に連携し、機械学習等の分析に利用してもらう
クリーンルーム
セキュアな環境で、複数組織間でデータの共有・連携ができるサービスです。
データは差分プライバシーや暗号化によって保護され、高いレベルでプライバシーが保たれます。
Snowflakeアカウントを持たない顧客ともコラボレーションを行うことが可能です。
相互運用性
Open Catalog
Apache Polaris をベースとしたフルマネージドのカタログサービスです。
Iceberg REST互換の様々なクエリエンジンに対して、Iceberg形式のテーブルへの一元化された読み書きアクセスを提供します。
アクセス
データ共有
共有(データベース共有のためのオブジェクト)や、共有からなるリストをもとに、以下の方法でデータを共有することが可能です。
- 直接共有
- 共有を介して直接的に特定のアカウントにデータを共有
- Data Exchange
- 招待した特定のアカウントグループとデータを共有
- Marketplace
- リストを公開し外部組織とデータを共有
- 内部Marketplace
- Marketplaceの組織内限定版
Universal Search
Snowflakeに関連する以下の情報を検索可能です。
- アカウント内のオブジェクト
- Marketplaceで利用可能なデータ製品
- 関連するSnowflakeのドキュメント
- Snowflakeコミュニティのナレッジベースの記事
部分検索や自然言語による検索にも対応しています。
機密データ自動分類
機密データ自動分類を適用することで、機密データを検出し自動的にシステムタグを付与することができます。
システムタグには以下のカテゴリがあります。
- セマンティックカテゴリ:名前、年齢、性別等の個人の属性
- プライバシーカテゴリ:セマンティックカテゴリに該当する場合、さらに「識別子、準識別子、機密」の3つのプライバシーカテゴリに分類する
カスタム分類子を利用することで、独自のセマンティックカテゴリを指定することも可能です。
さいごに
Horizon Catalog の機能一式をご紹介しました。
本記事ではご紹介しなかったプライベートプレビューの機能を含め、Horizon Catalog では様々な機能が提供されており、新たな機能も年々追加されています。今後の Horizon Catalog の更なる進化が期待されます。