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