機密データの自動分類からのデータの除外¶
機密データの自動分類 を使用することで、Snowflakeはユーザーの介入なしに定期的にデータが機密かどうかを分類します。この機能を有効にするには、分類プロファイル を定義してから、分類するデータを含むデータベースにそれを設定します。
分類プロファイル設定とシステムタグを使用すると、特定のデータを自動分類から除外することができます。
たとえば、データベース my_db に3つのテーブル t1、t2、t3 があるとします。デフォルトでは、my_db に分類プロファイルをセットした場合、3つのテーブルはすべて自動的に分類されます。Snowflakeは、自動分類中に t2 をスキップし、テーブル t1 および t3 のみを分類するように構成できます。
ワークフロー¶
機密データの自動分類からデータを除外するには、2段階のプロセスがあります。
機密データの自動分類から除外するすべてのオブジェクトに SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION タグを適用します。詳細はこちら
分類プロファイルの
enable_tag_based_sensitive_data_exclusionキーをtrueに設定します。詳細はこちら
このプロセスは、タグベースの機密データ除外 と呼ばれます。
注釈
システムタグを適用し、分類プロファイルを構成した後、SYSTEM$CLASSIFY ストアドプロシージャを呼び出して分類プロファイルを指定すると、Snowflakeはタグ付きオブジェクトを分類から除外します。
データオブジェクトにタグを設定する¶
オブジェクトタグ は、別のオブジェクトに設定できるオブジェクトです。Snowflakeは、システム定義のタグ SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION を提供します。これは、機密データの自動分類から除外するオブジェクトに設定できます。このタグの値が TRUE の場合の場合、Snowflakeは分類中にそのオブジェクトをスキップします。
たとえば、テーブルに SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION = 'TRUE' を設定した場合、Snowflakeは、テーブルのデータベースを自動的に分類する際に、そのテーブルをスキップします。
スキーマ、テーブル、または列に SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION タグを設定することで、どのデータを機密データの自動分類から除外するかを制御できます。
スキーマにタグを設定する¶
データベースに分類プロファイルが設定されると、自動データ分類中にデータベース内のすべてのスキーマが分類されます。データベース内のスキーマに SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION タグを設定することで、スキーマを分類処理から除外できます。
たとえば、データベース内のスキーマ internal を除くすべてのスキーマを自動的に分類するとします。ALTER SCHEMA コマンドを実行すると、スキーマにシステム定義タグを設定できます。
ALTER SCHEMA internal SET TAG SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION = 'TRUE';
Snowflakeがデータベース内のデータを自動的に分類する際に、スキーマ internal 内のデータはスキップされます。
SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION タグを設定するためのアクセス制御要件については、アクセス制御の要件 をご参照ください。
テーブルにタグを設定する¶
データベースまたはスキーマに分類プロファイルが設定されると、自動データ分類中にそのオブジェクトのすべてのテーブルが分類されます。データベースまたはスキーマ内のテーブルに SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION タグを設定することで、テーブルを分類処理から除外できます。
たとえば、データベース内のテーブル my_table を除くすべてのテーブルを自動的に分類するとします。ALTER TABLE コマンドを実行すると、テーブルにシステム定義タグを設定できます。
ALTER TABLE my_table SET TAG SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION = 'TRUE';
Snowflakeがデータベース内のデータを自動的に分類する際に、テーブル my_table 内のデータはスキップされます。
列にタグを設定する¶
テーブルの列のすべてではなく、一部を自動的に分類したい場合があります。列に SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION タグを設定すると、Snowflakeはその列をスキップしてテーブルの残りの部分を分類します。列を除外すると、機密データが含まれていても、分類結果にはその列に対して空の値が含まれます。
たとえば、テーブル内の列 employee_id を除くすべての列を自動的に分類するとします。ALTER TABLE ... ALTER COLUMN コマンドを実行すると、列にシステム定義タグを設定できます。
ALTER TABLE my_table ALTER COLUMN employee_id
SET TAG SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION = 'TRUE';
Snowflakeがデータベース内のデータを自動的に分類する際に、JSON の employee_id フィールドの結果は空になります。
分類プロファイルの定義¶
分類プロファイルには、Snowflakeがデータベースまたはスキーマ内のデータを自動的に分類する方法を制御する設定が含まれています。これらの設定は、OBJECT でキー値のペアを使用して指定されます。
自動分類からデータを除外する場合は、分類プロファイルの enable_tag_based_sensitive_data_exclusion キーを定義する必要があります。このキーの値を true として定義しない場合、オブジェクトの SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION 設定は無効です。
次に示すのは、データベースに設定すると、自動分類から適切にタグ付けされたオブジェクトを除外する分類プロファイルの例です。
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE
my_classification_profile(
{
'minimum_object_age_for_classification_days': 0,
'maximum_classification_validity_days': 30,
'auto_tag': true,
'enable_tag_based_sensitive_data_exclusion': true
});
メソッドを使用して分類プロファイルのキーを設定する¶
既存の分類プロファイルがある場合は、SET_ENABLE_TAG_BASED_SENSITIVE_DATA_EXCLUSION メソッドを呼び出してプロファイルの enable_tag_based_sensitive_data_exclusion キーを設定できます。
SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION でタグ付けされたオブジェクトを除外するには、引数を true に設定してメソッドを呼び出します。たとえば、my_classification_profile が設定されたデータベースの分類からデータを除外できるようにするには、次のコマンドを実行します。
CALL my_classification_profile!SET_ENABLE_TAG_BASED_SENSITIVE_DATA_EXCLUSION(true);
分類プロファイルのタグベースの機密データ除外を無効にするには、引数を false に設定してコマンドを実行します。
CALL my_classification_profile!SET_ENABLE_TAG_BASED_SENSITIVE_DATA_EXCLUSION(false);
アクセス制御の要件¶
次のセクションでは、データの自動分類からオブジェクトを除外するために必要なロールと権限について説明します。
タグを設定するための要件¶
分類プロファイルを作成するには、SNOWFLAKE.CLASSIFICATION_ADMIN データベースロールが必要です。スキーマ、テーブル、または列に SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION システムタグを設定するには、この同じデータベースロールが必要です。追加の権限がない場合、SNOWFLAKE.CLASSIFICATION_ADMIN データベースロールを持つユーザーは、所有するオブジェクトに対してのみシステムタグを設定できます。
たとえば、ロール classify_admin を持つユーザーが、所有するオブジェクトに SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION タグを設定するには、次のコマンドを実行します。
GRANT DATABASE ROLE SNOWFLAKE.CLASSIFICATION_ADMIN TO ROLE classify_admin;
管理者が、所有するオブジェクトだけでなく、任意のオブジェクトに SNOWFLAKE.CORE.SKIP_SENSITIVE_DATA_CLASSIFICATION システムタグを設定できるようにする場合は、次のコマンドを実行します。
GRANT DATABASE ROLE SNOWFLAKE.CLASSIFICATION_ADMIN TO ROLE classify_admin;
GRANT APPLY TAG ON ACCOUNT TO ROLE classify_admin;
分類プロファイルの構成の要件¶
分類プロファイルの enable_tag_based_sensitive_data_exclusion キーを設定するには、分類プロファイルの PRIVACY_USER インスタンスロールが必要です。