機密データの分類の概要

機密データがどこにあり、適切に保護されているかどうかを知ることが重要です。これは単なるベストプラクティスではありません。規制に準拠するために、多くの業界で不可欠な要件です。Snowflakeは、機密データを自動的に検出し、タグやマスキングポリシーなどのガバナンス制御を簡単に適用できるようにするソリューションを提供します。

Snowflakeは機密データを、名前や国識別子などの :doc:` ネイティブカテゴリ </user-guide/classify-native>` に分類しますが、独自の カスタムカテゴリ を作成して組織やドメインに固有の機密データを検出することもできます。

始めましょう

Snowflakeは、機密データの分類を構成し、機密データのガバナンス状況を表示するためのウェブインターフェイスを提供します。

開始するには、次のいずれかを実行します。

機密データの分類の中心概念

分類カテゴリについて

機密データの分類では、機密データを含むと識別されたすべての列に、セマンティックカテゴリとプライバシーカテゴリの2つのカテゴリが割り当てられます。

  • セマンティックカテゴリ は、個人属性の タイプ を識別します。名前やアドレスなど一般的な属性の場合、Snowflakeは ネイティブカテゴリ を提供します。機密データがネイティブカテゴリに適合しない場合は、 :doc:` カスタムカテゴリ </user-guide/classify-custom>` を作成できます。

  • プライバシーカテゴリ は、個人属性の 機密性 を識別します。それは IDENTIFIER 、 QUASI_IDENTIFIER または SENSITIVE (給与などの一般的な非識別子カテゴリ)のいずれかです。

分類タグについて

:doc:` タグ </user-guide/object-tagging/introduction>` は、列に割り当てることができるSnowflakeオブジェクトです。Snowflakeは、次のシステム定義タグを使用して、機密データを含むと分類した列を識別します。

  • SNOWFLAKE.CORE.SEMANTIC_CATEGORY:列内のデータのネイティブまたはカスタムカテゴリを識別するために使用されるタグ。

  • SNOWFLAKE.CORE.PRIVACY_CATEGORY:列内のデータのプライバシーカテゴリを識別するために使用されるタグ。

ユーザー定義のタグをシステム定義の分類タグにマッピングすることができます。たとえば、タグマップを設定すると、システムタグ SNOWFLAKE.CORE.SEMANTIC_CATEGORY = 'NAME'``が列に適用されるたびに、ユーザー定義タグ ``tag_db.sch.pii = 'Highly confidential' も適用されます。

分類プロファイルについて

トラストセンターウェブインターフェイスを使用して分類設定を指定すると、その設定は 分類プロファイル として保存されます。この分類プロファイルは、後で編集して、データの分類方法を制御する設定を変更できます。ウェブインターフェイスでは、分類プロファイルは、プロファイルの設定で分類されるデータベースも制御します。

また :doc:` SQL コマンド </user-guide/classify-auto>` を使用して分類プロファイルの作成および変更もできます。SQL を使用している場合、分類プロファイルをデータベースに関連付けて分類プロセスを開始することは、別のステップです。

機密データの保護

Snowflakeは、機密データを追跡して保護するために必要なガバナンスツールを提供します。

  • 分類プロセスを構成することで、Snowflakeは自動的にシステムおよびユーザー定義の タグ を機密として分類したデータに割り当てます。その後、タグを追跡することで、データエステート内のデータを追跡できます。

  • :doc:` マスキングポリシー </user-guide/security-column-ddm-intro>` を機密データを含む列に割り当てて、クエリ時にデータを選択的にマスクできます。

  • タグ付けとマスキングポリシーを組み合わせて、機密として分類されたデータを自動的にマスクすることができます。:doc:` タグベースのマスキング </user-guide/tag-based-masking-policies>` を使用してマスキングポリシーをユーザー定義タグに関連付ける場合、Snowflakeが分類プロセスの一部としてタグを適用すると、データが自動的にマスキングされます。新しいデータがデータベースに追加されると、タグベースのマスキングポリシーが機密データを含む列に自動的に割り当てられます。

どのデータベースが分類されているかを特定する

:ref:` 分類プロファイル <label-classify_classification_profiles>` に関連付けられているデータベースを一覧表示することで、どのデータを機密データの分類が監視するのかを判断できます。データベースが分類プロファイルに関連付けられている場合、そのデータベース内のすべてのテーブルとビューは、プロファイルで定義された基準に従って自動的に分類されます。

分類されているデータベースを決定するには

  1. |sf-web-interface-link|必要な権限を持つユーザーとして :ref:` にサインイン <label-classify_trust_center_access_control>` します。

  2. ナビゲーションメニューで Governance & security » Trust Center を選択します。

  3. Data Security タブを選択します。

  4. Dashboard タブを選択します。

  5. Databases monitored by classification タイルを探します。分類されているデータベースをリストするには、 Monitored または Partially monitored を選択します。

注釈

誰かがデータベースレベルでプロファイルを設定するのではなく、 SQL を使用してデータベース内のスキーマに分類プロファイルを直接設定した場合、データベースは部分的に監視されます。

コストの考慮事項

機密データの自動分類では、 :ref:` サーバーレスのコンピューティングリソース <label-serverless_credit_usage>` を使用してデータベース内のテーブルを分類するため、クレジットが消費されます。この消費の価格については、 Snowflakeサービス利用テーブル のテーブル5を参照してください。

注釈

ビューを分類すると、テーブルを分類するよりもコストが高くなる可能性があります。追加コストは、ビューを作成したクエリの複雑さによって異なります。マテリアライズドビューには、これらの追加コストは発生しません。デフォルトでは、ビューは分類から除外されます。

Snowsight でコストを表示する

機密データ分類のコストを調査するには

  1. Snowsight にサインインします。

  2. コストと使用状況のデータへのアクセス権 を持つロールに切り替えます。

  3. ナビゲーションメニューで Admin » Cost management を選択します。

  4. 使用状況データを表示するために使用するウェアハウスを選択します。Snowflakeは、この目的のために XS ウェアハウスを使用することをお勧めします。

  5. Consumption を選択します。

  6. Usage Type ドロップダウンから、 Compute を選択します。

  7. Service Type ドロップダウンから、 Sensitive Data Classification を選択します。

SQL を使用してコストをクエリする

ACCOUNT_USAGE および ORGANIZATION_USAGE スキーマのビューをクエリすることで、機密データの自動分類に費やされた量を確認できます。クレジット消費を監視するには、以下のビューをクエリします。

METERING_HISTORY ビュー(ACCOUNT_USAGE)

SERVICE_TYPE 列の SENSITIVE_DATA_CLASSIFICATION に注目し、自動分類の時間当たりのコストを取得できます。例:

SELECT
  service_type,
  start_time,
  end_time,
  entity_id,
  name,
  credits_used_compute,
  credits_used_cloud_services,
  credits_used,
  budget_id
  FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_HISTORY
  WHERE service_type = 'SENSITIVE_DATA_CLASSIFICATION';
Copy
METERING_DAILY_HISTORY ビュー(ACCOUNT_USAGE と ORGANIZATION_USAGE)

SERVICE_TYPE 列の SENSITIVE_DATA_CLASSIFICATION に注目し、自動分類の日次コストを取得できます。例:

SELECT
  service_type,
  usage_date,
  credits_used_compute,
  credits_used_cloud_services,
  credits_used
  FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_DAILY_HISTORY
  WHERE service_type = 'SENSITIVE_DATA_CLASSIFICATION';
Copy
USAGE_IN_CURRENCY_DAILY (ORGANIZATION_USAGE)

SERVICE_TYPE 列の SENSITIVE_DATA_CLASSIFICATION に注目し、自動分類の日次コストを取得できます。クレジットではなく、通貨でコストを決定するには、このビューを使用します。

サポートされているオブジェクト

Snowflakeは、Snowflakeテーブルおよびビューのすべての型に格納されているデータの分類をサポートしています。

Snowflakeは、コンシューマー側からの 共有テーブル および共有スキーマの分類をサポートしていないことに注意してください。テーブルがプロバイダーによって作成され、プロバイダーの送信共有に置かれた場合、分類はプロバイダー側から呼び出された場合にのみ機能します。

サポートされているデータ型

サポートされているすべての データ型 のテーブルとビューの列を分類できます。ただし、次のデータ型は 除きます

  • ARRAY

  • BINARY

  • DECFLOAT

  • GEOGRAPHY

  • OBJECT

  • VARIANT (列のデータ型が :doc:` キャスト </sql-reference/functions/cast>` から NUMBER または STRING データ型である場合を除く)

  • VECTOR

注釈

  • 列に格納されている長いテキストのような非構造化データはサポートされていません。

  • JSON 、 XML またはその他の半構造化データはサポートされていません。

制限と考慮事項

  • リーダーアカウントに分類プロファイルをセットすることはできません。

  • 分類プロファイルを1,000件以上のデータベースにセットすることはできません。

  • 分類プロファイルを10,000件以上のスキーマに 直接 セットすることはできません。

  • スキーマでは最大1億のテーブルを分類できます。

  • テーブルに次のような特性がある場合、自動的には分類できません。

    • 10,000列を超える。

    • 255文字を超えるの名前の列。

    • $ 文字を含む名前の列。