分類の紹介¶
このトピックでは、分類のしくみに関する情報を提供します。
カスタム分類子の使用方法については、 カスタムデータ分類 をご参照ください。
このトピックの内容:
概要¶
分類は、個人データのフィールドとメタデータを分析して、Snowflakeで定義されたシステムタグを列に関連付ける多段階プロセスです。データエンジニアは、 SQL と Snowsight を使用してこのデータを追跡できます。データエンジニアは、テーブル内の列を分類して、一意の識別子(パスポートまたは銀行口座のデータ)、準識別子(個人が居住している都市)、機密値(個人の給与)など、追跡または保護が必要な特定の種類のデータが列に含まれているかどうかを判断できます。
システムタグを使用してデータを追跡し、マスキングまたは行アクセスポリシーを使用してデータを保護することで、データエンジニアはデータに関連付けられたガバナンス体制を改善できます。分類とデータ保護のステップの全体的な結果として、データプライバシー規制の遵守が促進されます。
単一のテーブルまたはスキーマ内のテーブルを分類できます。Snowflakeは、列を分類してタグ付けできるように、定義済みの システムタグ を提供します。または、カスタム分類子を使用して、データに関する知識に基づいて独自のセマンティックカテゴリを定義できます。採用するガバナンス体制に応じて、Snowflakeシステムタグとカスタム分類子を使用するアプローチを選択することもできます。
分類は、データのプライバシーとデータガバナンスの管理者に次の利点を提供します。
- データアクセス:
列データを分類した結果は、IDおよびアクセス管理の管理者に、Snowflakeの ロール階層 を評価および維持して、Snowflakeのロールが機密データまたは PII データへの適切なアクセス権を確保するように通知できます。
- データ共有:
分類プロセスは、 PII データのストレージの場所を特定して確認するのに役立ちます。その後、データ共有プロバイダーは分類結果を使用して、データを共有するかどうか、またデータ共有コンシューマーが PII データを利用できるようにする方法を決定できます。
- ポリシーの適用:
ベーステーブル内の列を参照してビューまたはマテリアライズドビューを作成するなど、 PII データを含む列を使用すると、マスキングポリシーまたは行アクセスポリシーのいずれかを使用してデータを保護するための最適なアプローチを決定するのに役立ちます。
サポートされているオブジェクトとデータ型¶
Snowflakeは、外部テーブル、マテリアライズドビュー、セキュアビューなど、すべての型のテーブルとビューに保存されているデータの分類をサポートしています。
サポートされているすべての データ型 のテーブルとビューの列を分類できます。ただし、次のデータ型は 除きます。
GEOGRAPHY
BINARY
VARIANT
列のデータ型を NUMBER または STRING データ型に キャスト できる場合は、列を VARIANT データ型で分類できることに注意してください。列に JSON、 XML、またはその他の半構造化データが含まれている場合、Snowflakeは列を分類しません。
テーブルにサポートされているデータ型ではない列が含まれている場合、または列にすべての NULL 値が含まれている場合、分類プロセスは列を無視し、出力に含めません。
重要
データが NULL 以外の値を持つ NULL 値を表す場合は、分類結果の精度に影響を与える可能性があります。
コンピューティングコスト¶
分類プロセスには、分類が実行されるときに使用および実行されている、 仮想ウェアハウス によって提供されるコンピューティングリソースが必要です。
テーブル/ビュー内のデータを分類するために必要な時間(したがって、ウェアハウスによって消費されるクレジットの数)は、分類されるデータの量の関数です。
特に、テーブルまたはビューに分類をサポートする列が多数ある場合は、処理時間に影響を与える可能性があります。ただし、原則として、処理速度はウェアハウスのサイズに比例します。言い換えると、ウェアハウスのサイズが大きくなるごとに(XSからS)、通常、処理時間が半分に短縮されます。
次の一般的なガイドラインに従って、 ウェアハウスのサイズ を選択します。
処理時間の考慮なし: XSウェアハウス。
テーブル内の列が最大100列: Sウェアハウス。
テーブル内の列が101列から300列: Mウェアハウス。
テーブル内の列が301列以上: Lウェアハウス。
詳細については、 ウェアハウスに関する考慮事項 をご参照ください。
推奨事項¶
分類機能を活用して PII データ追跡機能を最適化するには、次を実行します。
- 検証:
最初にAccount Usageビューをクエリします。
ACCESS_HISTORY: 最も頻繁にアクセスされるテーブルおよびビューオブジェクトを判定します。
OBJECT_DEPENDENCIES: 2つ以上のオブジェクト間のメタデータ参照を判定します。
クエリ結果を使用して、分類システムタグのスキーマレベルまたはデータベースレベルの割り当てに優先順位を付けます。
- 列名:
テーブルオブジェクトで適切な列名を使用し、テーブル作成者をトレーニングして、内部のテーブル作成ガイドラインに準拠させます。
- データ型:
列には適切なデータ型を使用します。たとえば、 AGE 列には NUMBER データ型が必要です。
- VARIANT:
列のデータ型が VARIANT の場合は、テーブルを分類する前に列に対して FLATTEN コマンドを使用します。
- ウェアハウス:
データを分類するときは、適切なウェアハウスサイズを使用します。詳細については、 コンピューティングコスト (このトピック内)をご参照ください。
分類を管理する¶
権限参照¶
データ分類の権限モデルによって、データプライバシー管理者は、どのペルソナがテーブルを分類し、列にタグを付けることができるかを決定できます。たとえば、必要な権限をすべて1つのロールに持たせることも、データプライバシー管理者が職務の分離(SoD)要件を満たすために異なるロールに権限を委任することもできます。実行可能な付与の組み合わせの一例が、 データ分類を使用する の データの分類を始める セクションに示されています。
管理者には、関係するロールまたはペルソナを管理する方法に応じてさまざまなオプションがあります。これらのオプションにより、採用するガバナンス体制に柔軟性がもたらされます。例:
テーブルの所有者(テーブルの OWNERSHIP 権限を持つロール)は、テーブルを分類し、列にシステムタグを設定できます。
テーブルに対する SELECT 権限を持ち、アカウントに対する APPLY TAG 権限を持つカスタムロールは、テーブルを分類し、列にシステムタグを設定できます。
列の分類とタグ付けに異なるロールまたはペルソナを関与させる場合は、テーブルに対する SELECT 権限を1つのロールに付与し、アカウントに対する APPLY TAG 権限を別のロールに付与します。
次の表は、テーブルを分類し、列にデータ分類システムタグを設定し、これらの両方のタスクを実行するためのさまざまな付与オプションをまとめたものです。
権限またはロール |
テーブルの分類 |
列にシステムタグを設定する |
---|---|---|
テーブルまたはビューに対する SELECT。 |
✔ |
|
テーブルに対する OWNERSHIP。 |
✔ |
✔ |
アカウントに対する APPLY TAG。 |
✔ |
|
ACCOUNTADMIN ロール。 |
✔ |
|
データベースまたはスキーマに対する OWNERSHIP。 |
重要
テーブルを分類するには、実行中のウェアハウスが必要です。テーブルを分類するために使用されるロールには、少なくともウェアハウスに対する USAGE 権限が必要です。
アカウントロールに SNOWFLAKE.GOVERNANCE_VIEWER データベースロールを付与すると、そのアカウントロールを持つユーザーが DATA_CLASSIFICATION_LATEST ビューにクエリを実行し、分類されたテーブルの最新の結果を参照できるようになります。