すべてのプロダクト
Search
ドキュメントセンター

DataWorks:MaxCompute の下層データマスキング

最終更新日:Jun 22, 2026

ユーザーが MaxCompute プロジェクト内の機密データをクエリする権限を持っているが、完全な値を表示すべきでない場合、結果に動的データマスキングを適用できます。このトピックでは、この機能を有効にする方法と例を示します。

背景情報

MaxCompute は、ネイティブでは動的データマスキングをサポートしていません。代わりに、DataWorks のデータセキュリティガードが提供するデータマスキング機能を使用します。MaxCompute プロジェクトで動的データマスキングを有効にするには、まずデータセキュリティガードをアクティベートする必要があります。

MaxCompute の新しい下層データマスキング機能は、次のように動作します。

  • データセキュリティガードで設定されると、マスキングルールは、JDBC 接続ローカルクライアント (odpscmd) 接続など、任意の MaxCompute エントリポイントからの機密データに対するクエリに自動的に適用されます。

  • この機能が対応するルールとともに有効化されると、機密データに対するクエリは [MaxCompute の下層データマスキング] ルールの対象となります。

この機能は、電話番号、ID カード番号、銀行カード番号、ナンバープレート番号、IP アドレスなどの機密情報を効果的に保護します。動的データマスキングはクエリ結果のみをマスクし、基盤となる保存されたデータを変更することはありません。

制限事項

  • この機能は DataWorks Professional Edition 以上でのみ利用可能で、Basic Edition ではサポートされていません。Basic Edition を使用している場合は、アップグレードする必要があります。詳細については、「DataWorks のアップグレード」をご参照ください。

  • MaxCompute の下層データマスキングは、China (Beijing)、China (Shanghai)、China (Hangzhou)、China (Chengdu)、China (Shenzhen)、China North 2 Ali Gov 1、China East 2 Finance、China (Hong Kong)、Singapore、Germany (Frankfurt)、Malaysia (Kuala Lumpur)、US (Silicon Valley)、および Indonesia (Jakarta) のリージョンでのみサポートされています。

  • [MaxCompute の下層データマスキング] が有効で、そのルールが設定されている場合、それらのルールが適用されます。それ以外の場合は、設定された [上位層マスキングシナリオ] のルールが使用されます。

  • この機能は、MaxCompute テーブルのプライマリキーフィールドをマスクできません。

  • この機能は、24 時間以上経過したデータを含む MaxCompute プロジェクトでのみ利用可能です。

前提条件

  1. MaxCompute プロジェクトとマスクするデータを準備します。手順については、MaxCompute プロジェクトの作成」および「データのインポート」をご参照ください。

  2. データセキュリティガードサービスをアクティベートします。手順については、データセキュリティガードへ移動」をご参照ください。

    [サービス契約] ページで、[上記の規約を読み、同意します] を選択し、[今すぐアクティベート] をクリックします。

データマスキングの有効化

  1. マスキングシナリオを選択します。

    1. データセキュリティガードへ移動」します。

    2. 左側メニューで、[ルール設定] > [データマスキング] を選択して [データマスキング] ページに移動します。

    3. マスキングシナリオ」セクションで、[基礎マスキングシナリオ] > [MaxCompute_New の基礎データマスキング]を選択します。

    説明

    DataWorks コンソールでマスキング効果を表示したい場合は、[DataStudio/Data Map にマスキングを表示] をオンにします。データマスキングシナリオの作成に関する詳細については、「データマスキングシナリオの作成」をご参照ください。

  2. データマスキングルールを作成します。

  3. (任意) 許可リストを設定します

    特定のユーザーをマスキングルールから除外するには、許可リストに追加します。

    1. [データマスキング] ページで、 [許可リスト] タブをクリックします。

    2. 右上隅にある [+ 許可リストの作成] をクリックします。

    3. [許可リストの作成] ダイアログボックスで、 [機密データタイプ][ユーザーグループ]、および [有効期間] を選択します。

      説明

      有効期間を設定すると、許可リスト上のユーザーは指定された期間内でのみ元のデータを表示できます。この期間外でクエリが実行されると、データはマスクされます。

  4. プロジェクトを設定します。

    1. [MaxCompute_New の下層データマスキング] をクリックして、互換性のあるすべての MaxCompute プロジェクトを表示します。

    2. 対象のプロジェクトを見つけ、[ステータス] スイッチをオンにして、そのマスキングルールを有効にします。

      説明

      [MaxCompute の下層データマスキング] が有効で、そのルールが設定されている場合、それらのルールが適用されます。それ以外の場合は、設定された [上位層マスキングシナリオ] のルールが使用されます。

マスキング結果の検証

この例では、odpscmd クライアントを使用して SQL ステートメントを実行し、マスキング効果を検証する方法を示します。

  1. クエリ文を実行します。

    説明

    MaxCompute の下層データマスキングは、セッションレベルでのみサポートされています。

    次のスクリプトはクエリの例です。

    select * from table;
  2. マスキング結果を表示します。

    AdnocSink1: 113  (min: 113, max: 113, avg: 113) MaxInstance: 0
           GlobalInit: 3116  (min: 3116, max: 3116, avg: 3116)    MaxInstance: 0
               Limit1: 0  (min: 0, max: 0, avg: 0)    MaxInstance: 0
             Project1: 766  (min: 766, max: 766, avg: 766)    MaxInstance: 0
          TableScan1: 0  (min: 0, max: 0, avg: 0) MaxInstance: 0
    +------------+-------------+----------------------+-------+
    | name       | phone_no    | gmt_order            | amt   |
    +------------+-------------+----------------------+-------+
    | simon      | **10***3127 | 2015-10-03 01:12:31  | 18.6  |
    | trudy      | **33***5599 | 2015-10-03 01:12:31  | 6.58  |
    | jinhang    | **30***0850 | 2015-10-03 01:12:31  | 73.34 |
    | jiangfang  | **15***2356 | 2015-10-03 01:12:31  | 30.62 |
    | lyan       | **66***0573 | 2015-10-03 01:12:31  | 4.92  |
    | lijing     | **30***3828 | 2015-10-03 01:12:31  | 56.74 |
    | frank.lizg | **58***9679 | 2015-10-03 01:12:31  | 21.09 |
    | maggie     | **60***6880 | 2015-10-03 01:12:31  | 31.17 |
    | daniel     | **63***5620 | 2015-10-03 01:12:31  | 42.42 |
    | carvin     | **60***4886 | 2015-10-03 01:12:31  | 80.75 |
    +------------+-------------+----------------------+-------+
    A total of 10 records fetched by instance tunnel. Max record number: 10000
    dsg_fin_demo>