チュートリアル: 機密データの自動分類とタグ付け¶
概要¶
機密データの識別子と追跡はシンプルで簡単です。Snowflakeは、機密データを識別する組み込みアルゴリズムを提供し、そのデータにシステムタグを自動的に付けて、データのタイプと機密性の追跡を支援します。
最小限の設定で、スキーマを構成し、Snowflakeが新規および変更データに対して自動的にこの分類プロセスを実行し、システムタグとともにユーザー定義のタグを適用することもできます。
このチュートリアルでは、以下のことを行います。
機密データに適用されるユーザー定義タグなど、チュートリアルを完了するために必要なリソースをセットします。
分類プロファイルを作成し、Snowflakeはスキーマに追加されたデータを自動的に分類します。
分類プロファイルにタグマッピングを追加し、Snowflakeが機密データとして識別したデータにユーザー定義のタグが適用されるようにします。
分類結果を表示します。
Tip
このチュートリアルでは紹介しませんが、分類をカスタマイズして、ユーザー定義の正規表現を使用して機密データを識別し、ユーザー定義のセマンティックカテゴリでそのデータにタグを付けることもできます。詳細については、 自動カスタム分類の実装 をご参照ください。
ガバナンス・データベースの設定¶
このチュートリアルでは、データをガバナンスするために必要なSnowflakeオブジェクト(ユーザー定義タグと分類プロファイル)を作成します。ベストプラクティスに基づき、これらのオブジェクトはガバナンス専用のデータベースに作成されます。
SQL ワークシート を開き、以下のステートメントを実行して、ガバナンスオブジェクト用のデータベースとスキーマを作成します。
USE ROLE ACCOUNTADMIN;
CREATE DATABASE IF NOT EXISTS governance_db;
CREATE SCHEMA IF NOT EXISTS governance_db.sch;
注釈
簡単に行うため、 ACCOUNTADMIN システムロールを使用して、機密データ分類の構成に必要な権限をセットしないようにします。実際には、この強力なロールは使用せず、必要な権限を持つカスタムロールを作成してください。
データの設定¶
このチュートリアルのデータを設定する前に、テーブルに入力するウェアハウスを作成します。
CREATE WAREHOUSE IF NOT EXISTS tutorial_wh;
テーブルを作成する¶
分類するテーブルを含むデータベースとスキーマを作成します。
CREATE DATABASE IF NOT EXISTS data_db; CREATE SCHEMA IF NOT EXISTS data_db.sch;
機密データを格納するテーブル構造を作成します。
CREATE TABLE data_db.sch.customers ( account_number NUMBER(38,0), first_name VARCHAR(16777216), last_name VARCHAR(16777216), email VARCHAR(16777216) );
テーブルに値を挿入します。¶
作成したテーブルにデータを追加します。
USE WAREHOUSE tutorial_wh;
INSERT INTO data_db.sch.customers (account_number, first_name, last_name, email)
VALUES
(1589420, 'john', 'doe', 'john.doe@example.com'),
(2834123, 'jane', 'doe', 'jane.doe@example.com'),
(4829381, 'jim', 'doe', 'jim.doe@example.com'),
(9821802, 'susan', 'smith', 'susan.smith@example.com'),
(8028387, 'bart', 'simpson', 'bart.barber@example.com');
分類プロファイルの作成¶
これで、機密データを保護するために分類が必要なデータがテーブルいっぱいになりました。データがスキーマに追加されると、Snowflakeが自動的にデータを分類するようにするため、分類プロファイルを作成する必要があります。
分類プロファイルは、スキーマ内のデータが分類される頻度や、分類プロセス中の処理を制御します。すべての分類プロファイルは、 CLASSIFICATION_PROFILE クラスのインスタンスです。
スキーマの分類プロファイルを作成するには、以下を実行します。
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE
governance_db.sch.my_classification_profile(
{
'minimum_object_age_for_classification_days': 0,
'maximum_classification_validity_days': 30,
'auto_tag': true
});
この分類プロファイルがスキーマにセットされると、以下のことが起こります。
分類は1日以内に始まります (
'minimum_object_age_for_classification_days': 0
)。最初の分類後、Snowflakeは30日ごとにテーブルの再分類が必要かどうかを再チェックします (
'maximum_classification_validity_days': 30
)。機密データ (
'auto_tag': true
) を含むと識別された列には、自動的に分類タグがセットされます。
分類プロファイルにタグマッピングを追加¶
分類プロファイルで 'auto_tag': true
をセットしているため、Snowflake はデータを機密情報として分類すると、自動的に システム分類タグ を適用します。SEMANTIC_CATEGORY タグは、データのタイプを分類します。例えば、データを名前または住所として識別します。PRIVACY_CATEGORY タグはデータの機密性を分類し、例えばデータを識別子または準識別子として識別します。
さらに一歩進んで、データの分類方法に基づいてユーザー定義のタグを自動的に適用したいとします。このチュートリアルでは、その方法をご紹介します!
機密データに適用するカスタムタグを作成するには、以下のステートメントを実行します。
CREATE TAG governance_db.sch.tutorial_pii;
次に、Snowflakeが列に名前が含まれていることを識別したときに、このユーザー定義タグが適用されるように分類プロファイルを変更します。分類プロファイルにタグマッピングを追加すると、ユーザー定義のタグをいつ、どのように適用するかを構成できます。
タグ・マップを分類プロファイルに追加するには、 classification_profile_name!SET_TAG_MAP
メソッドを実行します。
CALL governance_db.sch.my_classification_profile!SET_TAG_MAP(
{'column_tag_map':[
{
'tag_name':'governance_db.sch.tutorial_pii',
'tag_value':'sensitive_name',
'semantic_categories':['NAME']
}]});
自動分類でシステム定義の意味カテゴリが NAME
、ユーザー定義のタグ tutorial_pii
が列にセットされます。分類プロファイルに基づき、ユーザー定義 tutorial_pii
タグの値は sensitive_name
にセットされます。
注釈
分類プロファイルを作成する際に、タグマッピングを定義することもできます。
スキーマへの分類プロファイルのセット¶
分類プロファイルの構成ができたので、スキーマにセットする準備ができました。これにより、自動分類プロセスが開始されます。
ALTER SCHEMA data_db.sch
SET CLASSIFICATION_PROFILE = 'governance_db.sch.my_classification_profile';
あとはSnowflakeがやってくれます!Snowflakeは既存のデータの分類を開始し、新しいデータがスキーマに追加されると分類を継続します。
分類結果を表示¶
チュートリアルのこの部分を完了する前に、Snowflakeが分類プロセスを完了するまで1時間待つ必要があります。
1時間後、以下のステートメントを実行し、分類結果を取得します。
CALL SYSTEM$GET_CLASSIFICATION_RESULT('data_db.sch.customers');
その結果、次のことがわかりました。
ACCOUNT_NUMBER 列は機密扱いではないため、分類タグは割り当てられていません。
EMAIL 列は、 EMAIL のセマンティックカテゴリと IDENTIFIER のプライバシーカテゴリでフラグされます。
分類プロファイルのタグマッピングに基づいて、
governance_db.sch.tutorial_pii
ユーザー定義タグは、 NAME のセマンティックカテゴリを持つ列に割り当てられました(出力のハイライト行を参照)。
{
"classification_profile_config": {
"classification_profile_name": "GOVERNANCE_DB.SCH.MY_CLASSIFICATION_PROFILE"
},
"classification_result": {
"ACCOUNT_NUMBER": {
"alternates": []
},
"EMAIL": {
"alternates": [],
"recommendation": {
"confidence": "HIGH",
"coverage": 1,
"details": [],
"privacy_category": "IDENTIFIER",
"semantic_category": "EMAIL",
"tags": [
{
"tag_applied": true,
"tag_name": "snowflake.core.semantic_category",
"tag_value": "EMAIL"
},
{
"tag_applied": true,
"tag_name": "snowflake.core.privacy_category",
"tag_value": "IDENTIFIER"
}
]
},
"valid_value_ratio": 1
},
"FIRST_NAME": {
"alternates": [],
"recommendation": {
"confidence": "HIGH",
"coverage": 1,
"details": [],
"privacy_category": "IDENTIFIER",
"semantic_category": "NAME",
"tags": [
{
"tag_applied": true,
"tag_name": "snowflake.core.semantic_category",
"tag_value": "NAME"
},
{
"tag_applied": true,
"tag_name": "snowflake.core.privacy_category",
"tag_value": "IDENTIFIER"
},
{
"tag_applied": true,
"tag_name": "governance_db.sch.tutorial_pii",
"tag_value": "sensitive_name"
}
]
},
"valid_value_ratio": 1
},
"LAST_NAME": {
"alternates": [],
"recommendation": {
"confidence": "HIGH",
"coverage": 1,
"details": [],
"privacy_category": "IDENTIFIER",
"semantic_category": "NAME",
"tags": [
{
"tag_applied": true,
"tag_name": "snowflake.core.semantic_category",
"tag_value": "NAME"
},
{
"tag_applied": true,
"tag_name": "snowflake.core.privacy_category",
"tag_value": "IDENTIFIER"
},
{
"tag_applied": true,
"tag_name": "governance_db.sch.tutorial_pii",
"tag_value": "sensitive_name"
}
]
},
"valid_value_ratio": 1
}
}
}
クリーンアップ、まとめ、追加リソース¶
おめでとうございます。これでこのチュートリアルは終了です。
まとめると、以下のことを学びました。
分類プロファイルを作成して、自動分類の実装方法を制御します。
分類プロファイルにタグマッピングを追加し、機密データを含む列にユーザー定義のタグが自動的にセットされるようにします。
自動分類を開始するために、スキーマに分類プロファイルをセットします。
自動分類の結果を表示します。
チュートリアルのオブジェクトをドロップする¶
チュートリアルを繰り返す予定がある場合は、作成したオブジェクトを保持することができます。
そうでない場合は、以下のようにチュートリアルのオブジェクトをドロップします。
DROP TAG governance_db.sch.tutorial_pii;
DROP DATABASE governance_db;
DROP DATABASE data_db;
DROP WAREHOUSE tutorial_wh;
次の内容¶
関連コストやカスタム分類の実装など、機密データの自動分類の実装に関する詳細については、 機密データを自動的に分類 を参照してください。