組織は、顧客の個人情報といった機密データの取り扱いにおいてSnowflakeを信頼しています。このような情報の適切な管理を徹底することは非常に重要です。組織としては、まずどのようなデータを保有しているのか、どこに保存しているのか、誰がアクセスできるのか、を把握する必要があります。データを分類することは、組織におけるこのような課題の解決に有効です。しかし、組織は、処理速度が遅くミスを起こしやすい手作業での処理や、必要以上の機能が搭載された高価で付加的な管理を必要とするサードパーティ製ツールに頼っているため、データの分類に非常に苦労しています。また、機密情報が含まれていると思われるデータをロックしたために分析が不可能となり、顧客ニーズに対応するためのインサイトが得られない組織もあります。Snowflakeのデータクラシフィケーションは、機密情報とみなされる可能性のある個人情報をネイティブに分類するため、手作業での処理がなくなり、サードパーティ製ツールに依存する必要もなくなります。さらに、データクラシフィケーションは、Snowflakeのネイティブなガバナンス機能と統合しているため、制御および管理された方法でデータを開放して顧客インサイトを得ることができます。これにより、組織は顧客ニーズに対応し信頼を得ることができます。

本日、データクラシフィケーションのパブリックプレビューが開始されたことをここに発表いたします。データクラシフィケーションは、機密性があるとみなされた個人情報である構造化データに含まれるカラムを分析し、事前定義された一連のSnowflakeシステムタグを顧客に提供しこのデータの分類をサポートします。Snowflakeの他のガバナンス機能と組み合わせることで、組織は、顧客の個人情報の適切な管理を徹底することができます。Snowflakeのクラシフィケーション機能はプラットフォームに組み込まれているため、追加コストがかからず、追加のツールを管理する必要もありません。これにより、組織はデータの把握、処理速度の向上、アナリティクス価値の制御、統制された方法での解放を実現できます。Snowflakeデータクラシフィケーションを使用した分類後は、INFORMATION_SCHEMAで定義されたクエリを実行することで、このデータの検索、ロールベースのポリシーによる保護、およびアクセス履歴を介した監査アクセスを容易に実行することができます。これらすべてはSnowflakeネイティブなデータガバナンス機能の一部となっています。

「Snowflakeのデータクラシフィケーションにより、社内全体のデータプラットフォームにおいて、PIIデータ管理の信頼性が向上しました。

— Eric Jalbert、HomeXのシニアデータインフラストラクチャーエンジニア

機能の説明

データクラシフィケーションは、テーブルの列にあるコンテンツやメタデータを分析し、その情報を事前構築された機械学習モデルに送り、機密性があるとみなされ保護の強化やアクセスの制限が必要な個人情報の適切なカテゴリー決定をサポートし、その結果をシステムタグとして適用します。Snowflakeは、さらに多くのカテゴリーを追加することで、追加コストをほとんどかけずに機能性を向上することができます。では、機密性があるとみなされた個人情報とは何でしょうか。それは、個人に結び付けることができるあらゆる情報を指します。機密性レベルは、データや潜在的有害性により異なります。グループとしてまとめられる一般的な4つのカテゴリーは以下の通りです。

  1. ダイレクト識別子:名前や電話番号など、個人に一意の属性
  2. 準識別子:性別や郵便番号と年齢といった組み合わせて特定する識別子
  3. トランザクションおよび時空パターン:クレジットカードでの購入やライドシェアデータ
  4. 機密属性:個人を特定するものではないが、病歴などの開示されたくない情報

Snowflakeのクラシフィケーションでは、ダイレクト識別子、準識別子、機密属性のみに焦点を当てています。

テーブルの分析が終わるとシステムタグ用の値が返されます。システムタグは、Snowflakeにより定義されたオブジェクトタグで、Snowflakeデータベース共有で利用することができます。クラシフィケーションはsemantic_categoryとprivacy_categoryの2つのタグを使用します。Semanticカテゴリーは、列内のセルに含まれる内容(名前、性別、年齢、電話番号、メールアドレスなど)に関連しており、Privacyカテゴリーは、列に含まれる個人情報の種類(識別子、準識別子、機密など)に関連しています。

クラシフィケーションは、確率や他の可能性についても報告します。確率は、分類が正確である見込みを示し、他の可能性は、有力な一致が見つけられなかった場合の他の可能性の一覧です。ユーザーは結果のレビューを行いシステムで定義されたストアドプロシージャを使用してタグに適用するかどうかを判断します。これらのタグの値は、Snowflakeがサポートするカテゴリーセットに限定されており、これらはSnowflakeで定義されたオブジェクトタグであるため、「アカウント使用状況」にあるTag_ReferencesTagsビューといったオブジェクトタグに関連したあらゆる機能は、これらのシステムタグにも適用されます。

データが分類されると、組織は、Snowflakeのダイナミックデータマスキングといったポリシーを設定してアクセスが必要な人のみが許可されるように徹底することができます。アクセスは、アカウントの使用状況ビューのAccess_Historyをクエリすることで監査することができます。GDPRデータ削除ユースケースに対しては、組織は、アカウントの使用状況ビューのTag_Referencesをクエリして、メールなどの特定の列のオブジェクトを検索して、データ内のメールがあるかもしれない場所のすべてのインスタンスを検索して当該のメールを削除することができます。

例:顧客PIIデータの特定と保護

データクラシフィケーションがどのように機能するかを紹介するために、StyleMeUpという架空のリテーラーを使用します。StyleMeUpは、Snowflakeにロードされたばかりの自社の顧客に関して多くの機密フィールドを有しています。

StyleMeUpはこのデータが適切に管理され、適切なスタッフのみが必要なフィールドへのアクセスを有しているように徹底したいと考えています。例えば、請求を担当する部署は、StyleMeUp顧客の名前、住所、クレジットカード番号を知る必要がありますが、これら以外の情報は不要です。StyleMeUpはまず、自身がどのような情報を保有しているのかを把握する必要があります。そのためにSnowflakeデータクラシフィケーションが使用されます。

以下のコマンドを使用することで、StyleMeUpはそれぞれの列におけるシステムタグ用に提案された値を受け取ります。

SELECT EXTRACT_SEMANTIC_CATEGORIES('CUSTOMER_INFO');

JSONのフォーマットから数秒以内に結果が返されます。

結果がレビューされ、承認されたため、以下のコマンドを使用すると、System Tags、semantic_category、privacy_categoryは、上図に示された各列の値と共に適用されます。

CALL ASSOCIATE_SEMANTIC_CATEGORY_TAGS('CUSTOMER_INFO',
EXTRACT_SEMANTIC_CATEGORIES('CUSTOMER_INFO'));

これで、StyleMeUpはTag_Referencesビューをクエリして、どの列がCUSTOMER_INFOテーブルにあるかを確認することができます。

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES 
WHERE OBJECT_NAME = 'CUSTOMER_INFO';

StyleMeUpはこのテーブルにマスキングポリシーを設定し、請求担当部署がマスキングされていない、FNAME、LNAME、CITY、STATE、ZIP、COUNTRY、CREDIT_CARDの列だけを参照できるようにします。

ALTER TABLE CUSTOMER_INFO ALTER COLUMN AGE SET MASKING POLICY 
AGE_MASK;
ALTER TABLE CUSTOMER_INFO ALTER COLUMN EMAIL SET MASKING POLICY 
EMAIL_MASK;
ALTER TABLE CUSTOMER_INFO ALTER COLUMN PHONE SET MASKING POLICY 
PHONE_MASK;
ALTER TABLE CUSTOMER_INFO ALTER COLUMN IP SET MASKING POLICY 
IP_MASK;

クラシフィケーションはまた、個人情報の検索を容易にするため、GDPRにおけるデータ削除依頼への対応もサポートします。例えば、StyleMeUpは顧客の1社から、「[email protected]」のメールアドレスを伴うデータの削除を依頼されたとします。

StyleMeUpはTag_Referencesビューをクエリして、メールが含まれるすべてのテーブルを呼び出します。

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES 
WHERE TAG_VALUE = 'EMAIL';

EMAILとして分類された列を含むCUSTOMER_INFOというテーブルが見つかったため、以下のコマンドを使用して、削除依頼された情報を削除します。

DELETE FROM CUSTOMER_INFO WHERE EMAIL = '[email protected]';
今すぐ始めましょう

Snowflakeを利用したPIIデータの処理や保護の方法について順を追って説明する本クイックスタートガイドに従って、データクラシフィケーションと併せて多数のSnowflakeネイティブガバナンス機能をお試しください。プロダクトドキュメンテーションはこちらから入手できます。