データの検出と分類

適用対象: Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics

データの検出と分類は、Azure SQL Database、Azure SQL Managed Instance、および Azure Synapse Analytics に組み込まれています。 これにより、データベース内の機密データの検出、分類、ラベル付け、およびレポート作成を行うための基本的な機能が提供されます。

最も機密性の高いデータには、ビジネス、財務、医療、個人情報などが含まれる場合があります。 次のような場合にインフラストラクチャとして使用できます。

  • データのプライバシーと規制コンプライアンスの要件への基準を満たすための支援。
  • さまざまなセキュリティ シナリオ (機密データに対するアクセスの監視 (監査) など)。
  • 機密性の高いデータを含むデータベースへのアクセスの制御と、セキュリティの強化。

注意

オンプレミスの SQL Server については、「SQL データの検出と分類」をご覧ください。

ヒント

Microsoft Purview 情報保護 ポリシーを使用したラベルベースのアクセス保護が、現在プレビュー段階です。 詳細については、「Microsoft Purview 情報保護 ポリシーを使用した機密データのアクセス制御の有効化 (パブリック プレビュー)」を参照してください。

データの検出と分類とは

現在、データの検出と分類は以下の機能をサポートしています。

  • 検出と推奨事項: 分類エンジンは、データベースをスキャンして、機密データが含まれる可能性のある列を識別します。 その後、Azure portal を使って、推奨される分類を確認して適用するための簡単な方法を提供します。

  • ラベル付け: SQL Server データベース エンジンに追加された新しいメタデータ属性を使用して、機密度の分類ラベルを列に永続的に適用できます。 このメタデータは、機密度に基づく監査のシナリオに利用できます。

  • クエリ結果セットの機密度: 監査のため、クエリ結果セットの機密度がリアルタイムで計算されます。

  • 可視性: データベースの分類状態は、Azure portal の詳細ダッシュボードで見ることができます。 また、コンプライアンスと監査の目的や他のニーズのために使用される Excel 形式のレポートをダウンロードできます。

機密性の高い列の検出、分類、ラベル付け

このセクションでは、次の手順について説明します。

  • データベース内の機密データを含む列の検出、分類、ラベル付け。
  • データベースの現在の分類状態の表示と、レポートのエクスポート。

分類には、次の 2 つのメタデータ属性が含まれます。

  • ラベル:列に格納されるデータの機密レベルを定義するために使用される、主な分類属性。
  • 情報の種類:列に格納されているデータの型に関するより詳細な情報を提供する属性。

Information Protection ポリシー

Azure SQL では、SQL Information Protection ポリシーと Microsoft Information Protection ポリシーの両方がデータ分類で提供され、要件に基づいてこれら 2 つのポリシーのいずれかを選択できます。

Information Protection ポリシーの種類のスクリーンショット。

SQL Information Protection ポリシー

データの検出と分類には、SQL 論理サーバーにネイティブな検出ロジックを備えた秘密度ラベルと情報の種類のビルトイン セットが付属しています。 既定のポリシー ファイルで使用できる保護ラベルを引き続き使用することも、この分類をカスタマイズすることもできます。 一連の分類コンストラクトとその優先度をお使いの環境に合わせて定義できます。

分類法を定義してカスタマイズする

Azure 組織全体の分類法の定義とカスタマイズは 1 か所で行われます。 この場所は、セキュリティ ポリシーの一環として、Microsoft Defender For Cloud にあります。 このタスクは、組織のルート管理グループの管理者権限を持つユーザーのみが実行できます。

ポリシー管理の一環として、カスタム ラベルを定義し、優先度を設定し、そのラベルを、選択した一連の情報の種類に関連付けることができます。 独自のカスタム情報の種類を追加し、文字列パターンで構成することもできます。 パターンは、データベース内のこの種類のデータを識別するための検出ロジックに追加されます。

詳細については、Microsoft Defender for Cloud 上での SQL 情報保護ポリシーのカスタマイズ (プレビュー) に関する記事を参照してください。

組織全体のポリシーを定義したら、カスタマイズしたポリシーを使用して個別のデータベースの分類を続行できます。

SQL Information Protection ポリシー モードでデータベースを分類する

注意

次の例では Azure SQL Database を使用しますが、データの検出と分類を構成する適切な製品を選択する必要があります。

  1. Azure ポータルにアクセスします。

  2. [Azure SQL Database] ペインの [セキュリティ] 見出しの下の [データの検出と分類] に移動します。 [概要] タブには、データベースの現在の分類状態の概要が表示されます。 この概要には、分類済みのすべての列の詳細なリストが含まれ、これをフィルター処理して、特定のスキーマの部分、情報の種類、ラベルのみを表示することもできます。 まだどの列も分類していない場合は、手順 4. に進みます

    概要

  3. Excel 形式でレポートをダウンロードするには、ペイン上部のメニューの [エクスポート] を選択します。

  4. データの分類を開始するには、[データの検出と分類] ページの [分類] タブを選択します。

    分類エンジンによって、機密データが含まれる可能性のある列についてデータベースがスキャンされ、推奨される列の分類のリストが提供されます。

  5. 分類の推奨事項を表示して適用します。

    • 推奨される列の分類のリストを表示するには、ペインの下部にある推奨事項パネルを選択します。

    • 特定の列の推奨事項を受け入れるには、関連する行の左側の列のチェック ボックスをオンにします。 推奨事項テーブル ヘッダーの左端のチェック ボックスをオンにして、すべての推奨事項を受け入れ済みとしてマークすることもできます。

    • 選択した推奨事項を適用するには、 [選択した推奨事項を受け入れます] を選択します。

    分類に関する推奨事項

注意

自動データ検出を実行し、機密性の高い列の推奨事項を提供するレコメンデーション エンジンは、Microsoft Purview Information Protection ポリシー モードが使用されている場合は無効になります。

  1. 代わりに、列を手動で分類することもできます。さらに、推奨事項ベースの分類について、次の操作を実行することもできます。

    1. ペインの上部のメニューで [分類の追加] を選択します。

    2. 表示されたコンテキスト ウィンドウで、分類するスキーマ、テーブル、列と、情報の種類および機密ラベルを選択します。

    3. コンテキスト ウィンドウの下部にある [分類の追加] をクリックします。

    分類を手動で追加する

  2. 分類を完了し、新しい分類メタデータでデータベース列に永続的にラベル (タグ) を付けるには、 [分類] ページで [保存] を選択します。

Microsoft Purview Information Protection ポリシー

注意

Microsoft Information Protection (MIP) は、Microsoft Purview 情報保護としてブランド変更されました。 このドキュメントでは、"MIP" と "Microsoft Purview 情報保護" の両方を同じように使用しますが、同じ概念を参照してください。

Microsoft Purview Information Protection ラベルは、ユーザーがさまざまな Microsoft アプリケーション間で機密データを一様に分類するためのシンプルで統一された方法を提供します。 MIP の秘密度ラベルは、Microsoft Purview コンプライアンス ポータルで作成および管理します。 Microsoft Purview コンプライアンス ポータルで MIP の秘密度ラベルを作成して公開する方法については、「秘密度ラベルを作成して発行する」に関する記事を参照してください。

Microsoft Purview 情報保護 ポリシーに切り替える前提条件

  • Azure SQL Database で情報保護ポリシーを設定または変更すると、テナントの下にあるすべてのデータベースに対応する情報保護ポリシーが設定されます。 情報保護ポリシーを SQL Information Protection ポリシーから MIP ポリシーに変更するには、ユーザーまたはペルソナにテナント全体のセキュリティ 管理アクセス許可が必要です。その逆も同様です。
  • テナント全体のセキュリティ管理者アクセス許可を持つユーザーまたはペルソナは、テナントのルート管理グループ レベルでポリシーを適用できます。 詳細については、「テナント全体のアクセス許可を自分に付与する」を参照してください。 テナント レベルのセキュリティ 管理アクセス許可に対するAzure portal要求のスクリーンショット。
  • テナントにはアクティブな Microsoft 365 サブスクリプションがあり、現在のユーザーに対して発行されたラベルがあります。 詳細については、「機密ラベルとそのポリシーを作成して構成する」を参照してください。

Microsoft Purview Information Protection ポリシー モードでデータベースを分類する

  1. Azure ポータルにアクセスします。

  2. Azure SQL Database のデータベースに接続します。

  3. データベース ウィンドウの [セキュリティ] ヘッダーで、[データの検出と分類] に移動します。

  4. [Microsoft Information Protection policy] (Microsoft Information Protection ポリシー) を選択するには、[概要] タブを選択し、[構成] を選択します。

  5. [Information Protection ポリシー] オプションの [Microsoft Information Protection policy] (Microsoft Information Protection ポリシー) を選択し、[保存] を選択します。

    Azure SQL Database で Microsoft Information Protection ポリシーを選択するスクリーンショット。

  6. [分類] タブに移動するか、[分類の追加] を選択すると、[秘密度ラベル] ドロップダウンに Microsoft 365 秘密度ラベルが表示されます。

    秘密度ラベルのドロップダウンのスクリーンショット。

    [分類] タブの [秘密度ラベル] のスクリーンショット。

  • 情報の種類は、MIP ポリシー モードでは [n/a] で、自動データ検出検出と提案は無効のままとなります。

  • 列が現在アクティブなポリシーとは異なる Information Protection ポリシーを使用して分類されている場合、既に分類されている列に対して警告アイコンが表示されることがあります。 たとえば、前述の SQL Information Protection ポリシーを使用して列がラベルで分類され、現在は Microsoft Information Protection ポリシー モードの場合です。 その特定の列に対して警告アイコンが表示されます。 この警告アイコンは問題を示すものではありませんが、情報のみを目的として使用されます。

    分類された列に対する Information Protection ポリシーが異なる警告のスクリーンショット。

Microsoft Purview 情報保護 ポリシーを使用した機密データのアクセス制御の有効化 (パブリック プレビュー)

Azure SQL データベースでは、Microsoft Purview 情報保護 (MIP) 秘密度ラベルを使用してラベル付けされた機密データを含む列に対して、Microsoft Purview 情報保護 アクセス ポリシーを使用して、アクセス制御を実施する機能がサポートされています。

Purview のアクセス ポリシーを使用すると、組織はデータ ソース全体で機密データを保護できます。 エンタープライズ セキュリティ/コンプライアンス管理者などのペルソナは、データベース内の機密データに対してアクセス制御アクションを構成して適用し、特定の秘密度ラベルに対して承認されていないユーザーが機密データにアクセスできないようにすることができます。 Purview アクセス ポリシーは、Azure SQL データベースの列レベルの細分性で適用されるため、データベース テーブル内の非機密データ列へのアクセスをブロックすることなく機密データを保護します。

Purview アクセス ポリシーを構成して適用するには、ユーザーが有効な Microsoft 365 ライセンスを持っている必要があります。また、MIP 秘密度ラベルが Purview によって機密データを含むデータベース列に割り当てることができるように、データベースを Purview Data Map に登録してスキャンする必要があります。 秘密度ラベルが割り当てられると、ユーザーは Purview アクセス ポリシーを構成して、特定の秘密度ラベルを持つデータベース列に対して拒否アクションを適用し、それらの列の機密データへのアクセスを、許可されたユーザーまたはユーザーのグループのみに制限できます。

Purview for Azure SQL Database でアクセス ポリシーを構成して有効にする

Azure SQL データベースの Purview アクセス ポリシーを構成して使用するには、次の手順の一覧に従います。

  1. Microsoft 365 と Purview に必要なライセンスの前提条件があることを確認します。
  2. ユーザーのロールとアクセス許可を設定します
  3. Purview の秘密度ラベルを作成するかAzure SQL データベースに拡張します。 また、組織内の必要なユーザーに秘密度ラベルを公開してください。
  4. Azure SQL データベースを登録 して スキャン し、秘密度ラベルを自動的に適用します。
  5. Azure SQL データベースの Purview でアクセス制御ポリシーを作成して構成します

アクセス ポリシーが構成され、Purview で発行されると、承認されていないユーザーが T-SQL クエリを実行して、ポリシーをスコープとする秘密度ラベルを持つ SQL データベース内の列にアクセスしようとすると、失敗します。 同じクエリに機密性の高い列が含まれていない場合、クエリは成功します。

制限事項

データベースの geo レプリカまたはコピーを作成する場合、プライマリ データベース内の列に割り当てられた秘密度ラベルは自動的に新しいデータベースまたはセカンダリ データベースに送信されず、Purview アクセス制御ポリシーは、新しいデータベースまたはセカンダリ データベースには自動的に適用されません。 新しいデータベースまたはセカンダリ データベースでアクセス制御を有効にするには、Purview で個別に登録してスキャンします。 次に、新しいデータベースまたはセカンダリ データベースも含むようにアクセス ポリシーを構成します。

機密データへのアクセスを監査する

分類の重要な点は、機密データへのアクセスを監視できることです。 Azure SQL Auditing は拡張され、data_sensitivity_information という新しいフィールドが監査ログに追加されました。 このフィールドには、クエリーによって返されたデータの機密度の分類 (ラベル) が記録されます。 次に例を示します。

監査ログ

これらは、実際に感度情報を使用して監査できるアクティビティです。

  • ALTER TABLE ... DROP COLUMN
  • BULK INSERT
  • SELECT
  • DELETE
  • INSERT
  • MERGE
  • UPDATE
  • UPDATETEXT
  • WRITETEXT
  • DROP TABLE
  • BACKUP
  • DBCC CloneDatabase
  • SELECT INTO
  • INSERT INTO EXEC
  • TRUNCATE TABLE
  • DBCC SHOW_STATISTICS
  • sys.dm_db_stats_histogram

sys.fn_get_audit_file を使用して、Azure Storage アカウントに格納されている監査ファイルから情報を返します。

アクセス許可

次の組み込みロールでは、データベースのデータ分類を読み取ることができます。

  • 所有者
  • Reader
  • Contributor
  • SQL Security Manager
  • User Access Administrator

データベースのデータ分類を読み取るには、次の操作を行う必要があります。

  • Microsoft.Sql/servers/databases/currentSensitivityLabels/*
  • Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*
  • Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*

次の組み込みロールでは、データベースのデータ分類を変更できます。

  • 所有者
  • Contributor
  • SQL Security Manager

データベースのデータ分類を変更するには、次の操作を行う必要があります。

  • Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*

ロールベースのアクセス許可の詳細については、Azure RBAC に関する記事を参照してください。

注意

このセクションの Azure SQL の組み込みロールは、専用の SQL プール (旧称 SQL DW) に適用されますが、Azure Synapse ワークスペース内の専用の SQL プールと他の SQL リソースには使用できません。 Azure Synapse ワークスペース内の SQL リソースについては、データ分類に使用できるアクションを使って、ラベル付けに必要なカスタムの Azure ロールを作成します。 Microsoft.Synapse/workspaces/sqlPools プロバイダーの操作について詳しくは、「Microsoft.Synapse」をご覧ください。

分類の管理

分類の管理には、T-SQL、REST API、または PowerShell を使用できます。

T-SQL の使用

T-SQL を使って、列の分類を追加または削除したり、データベース全体のすべての分類を取得したりできます。

注意

T-SQL を使ってラベルを管理するときに、列に追加するラベルが組織の情報保護ポリシー (ポータルの推奨事項に表示されるラベルのセット) に存在することの検証は行われません。 そのため、この検証はユーザーが行う必要があります。

T-SQL を使用した分類の詳細については、次のリファレンスを参照してください。

PowerShell コマンドレットの使用

PowerShell を使用して、Azure SQL Database と Azure SQL Managed Instance の分類および推奨事項を管理します。

Azure SQL Database 用の PowerShell コマンドレット

Azure SQL Managed Instance 用の PowerShell コマンドレット

REST API を使用する

REST API を使用して、分類および推奨事項をプログラムで管理できます。 公開された REST API では、次の操作がサポートされます。

SQL ドライバーを使用して分類メタデータを取得する

次の SQL ドライバーを使用して、分類メタデータを取得できます。

FAQ - 高度な分類機能

質問: SQL データの検出と分類は Microsoft Purview によって置き換えられるのですか? SQL データの検出と分類は間もなく廃止されるのですか? 回答: SQL データの検出と分類は引き続きサポートされます。高度な分類機能とデータ ガバナンスを促進するための、機能をより豊富に備えた Microsoft Purview を導入することをお勧めします。 サービス、機能、API、または SKU の廃止が決定された場合は、移行または切り替えパスを含む事前通知がお客様に送信されます。 Microsoft ライフサイクル ポリシーの詳細については、こちらをご覧ください。

次のステップ