Fabric Data Warehouse に動的データ マスクを実装する方法
適用対象:✅ Microsoft Fabric の SQL 分析エンドポイントおよびウェアハウス
動的データ マスキングは、組織がデータベース内の機密情報を保護するのに役立つ最先端のデータ保護テクノロジです。 特定の列に対してマスク ルールを定義し、許可されているユーザーのみ元のデータを確認し、他のユーザーにはデータを隠すようにすることができます。 動的データ マスキングは、ユーザーのアクセス権に基づいて、ユーザーに表示されるデータを動的に変更することで、セキュリティに追加のレイヤーが提供されます。
詳細については、「Fabric データ ウェアハウスでの動的データ マスキング」を参照してください。
前提条件
作業を開始する前に、次の準備ができていることを確認します。
- アクティブな容量または試用版の容量を持つ Microsoft Fabric ワークスペース。
- Warehouse。
- 動的データ マスキングは、SQL 分析エンドポイントで機能します。 この記事の後半で説明するとおり、
ALTER TABLE ... ALTER COLUMN
を使用して既存の列にマスクを追加できます。 - ここでは、Warehouse を使用します。
- 動的データ マスキングは、SQL 分析エンドポイントで機能します。 この記事の後半で説明するとおり、
- ワークスペースの管理者、メンバー、または共同作成者の権限、あるいは Warehouse に対する昇格された権限のあるユーザーが管理します。
- このチュートリアルでは、"管理者アカウント" を使用します。
- 管理するには、ワークスペースの管理者、メンバー、または共同作成者の権限、および Warehouse に対する昇格された権限のないユーザーでテストします。
- このチュートリアルでは、"テスト ユーザー" とします。
1.接続する
- Fabric ワークスペースを開き、動的データ マスキングを適用する Warehouse に移動します。
- ワークスペースの管理者/メンバー/共同作成者ロール、または Warehouse に対するコントロール権限のいずれかを使用して、Warehouse の昇格されたアクセス権のあるアカウントを使用してサインインします。
2.動的データ マスクの構成
管理者アカウントを使用して Fabric ポータルにサインインします。
Fabric ワークスペースで、ウェアハウスに移動します。
[新しい SQL クエリ] オプションを選択し、[空白] で [新しい SQL クエリ] を選択します。
SQL スクリプトで、
MASKED WITH FUNCTION
句を使用して動的データ マスキング ルールを定義します。 次に例を示します。CREATE TABLE dbo.EmployeeData ( EmployeeID INT ,FirstName VARCHAR(50) MASKED WITH (FUNCTION = 'partial(1,"-",2)') NULL ,LastName VARCHAR(50) MASKED WITH (FUNCTION = 'default()') NULL ,SSN CHAR(11) MASKED WITH (FUNCTION = 'partial(0,"XXX-XX-",4)') NULL ,email VARCHAR(256) NULL ); GO INSERT INTO dbo.EmployeeData VALUES (1, 'TestFirstName', 'TestLastName', '123-45-6789','email@youremail.com'); GO INSERT INTO dbo.EmployeeData VALUES (2, 'First_Name', 'Last_Name', '000-00-0000','email2@youremail2.com'); GO
FirstName
列には、-
が中心になる文字列の最初と最後の 2 文字のみ表示されます。LastName
列はXXXX
を示します。SSN
列には、XXX-XX-
の後に文字列の最後の 4 文字が表示されます。
[実行] ボタンを選択して、スクリプトを実行します。
スクリプトの実行を確認します。
スクリプトは、指定された動的データ マスキング ルールをテーブルの指定された列に適用します。
3.動的データ マスキングのテスト
動的データ マスキング ルールが適用されたら、ワークスペースの管理者、メンバー、または共同作成者の権限、あるいは Warehouse 高度な権限を持たないテスト ユーザーでテーブルにクエリを実行して、マスキングをテストできます。
- Azure Data Studio や SQL Server Management Studio などのツールに、テストユーザー (TestUser@contoso.com など) としてサインインします。
- テスト ユーザーとして、テーブルに対してクエリを実行します。 マスクされたデータは、定義したルールに従って表示されます。
SELECT * FROM dbo.EmployeeData;
- 管理者アカウントを使用して、テスト ユーザーから
UNMASK
アクセス許可を付与します。GRANT UNMASK ON dbo.EmployeeData TO [TestUser@contoso.com];
- テスト ユーザーとして、TestUser@contoso.com としてサインインしたユーザーがマスクされていないデータを表示できることを確認します。
SELECT * FROM dbo.EmployeeData;
- 管理者アカウントを使用して、テスト ユーザーから
UNMASK
アクセス許可を取り消します。REVOKE UNMASK ON dbo.EmployeeData TO [TestUser];
- テスト ユーザーがマスクされていないデータを表示できず、マスクされたデータのみ表示できることを確認します。
SELECT * FROM dbo.EmployeeData;
- 管理者アカウントでは、
UNMASK
アクセス許可をロールに付与したり、取り消したりできますGRANT UNMASK ON dbo.EmployeeData TO [TestRole]; REVOKE UNMASK ON dbo.EmployeeData TO [TestRole];
4.動的データ マスキング ルールを管理および変更する
既存の動的データ マスキング ルールを管理または変更するには、新しい SQL スクリプトを作成します。
MASKED WITH FUNCTION
句を使用して、既存の列にマスクを追加できます。ALTER TABLE dbo.EmployeeData ALTER COLUMN [email] ADD MASKED WITH (FUNCTION = 'email()'); GO
ALTER TABLE dbo.EmployeeData ALTER COLUMN [email] DROP MASKED;
5.クリーンアップ
- このテスト テーブルをクリーンアップするには:
DROP TABLE dbo.EmployeeData;