動的データ マスクDynamic data masking

適用対象: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

Azure SQL Database、Azure SQL Managed Instance、および Azure Synapse Analytics は、動的データ マスキングをサポートしています。Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse Analytics support dynamic data masking. 動的データ マスクは、特権のないユーザーに対してデリケートなデータをマスクし、データの公開を制限します。Dynamic data masking limits sensitive data exposure by masking it to non-privileged users.

動的データ マスクでは、公開するデリケートなデータの量を指定することで、デリケートなデータに対する未承認のアクセスを防ぎ、アプリケーション レイヤーへの影響は最小限に抑えられます。Dynamic data masking helps prevent unauthorized access to sensitive data by enabling customers to designate how much of the sensitive data to reveal with minimal impact on the application layer. これはポリシー ベースのセキュリティ機能です。これにより、データベース内のデータはそのままで、指定されたデータベース フィールドに対するクエリの結果セットで機微なデータを非表示にすることができます。It’s a policy-based security feature that hides the sensitive data in the result set of a query over designated database fields, while the data in the database is not changed.

たとえば、コール センターのサービス担当者は、メール アドレスのいくつかの文字を確認することによって発信者を識別できます。ただし、完全なメール アドレスをサービス担当者に開示すべきではありません。For example, a service representative at a call center might identify a caller by confirming several characters of their email address, but the complete email address shouldn't be revealed to the service representative. クエリの結果セット内のすべての電子メール アドレスをマスクするマスク ルールを定義できます。A masking rule can be defined that masks all the email address in the result set of any query. 別の例として、開発者は、適切なデータ マスクを定義し、個人データを保護し、法令遵守規定に違反することなくトラブルシューティングの目的で運用環境に対して照会を行うことができます。As another example, an appropriate data mask can be defined to protect personal data, so that a developer can query production environments for troubleshooting purposes without violating compliance regulations.

動的データ マスキングの基礎Dynamic data masking basics

Azure portal で動的データ マスキング ポリシーを設定するには、SQL Database 構成ペインの [セキュリティ] の下にある [動的データ マスキング] ブレードを選択します。You set up a dynamic data masking policy in the Azure portal by selecting the Dynamic Data Masking blade under Security in your SQL Database configuration pane. この機能は、ポータルを使用して SQL Managed Instance に設定することはできません (PowerShell または REST API を使用してください)。This feature cannot be set using portal for SQL Managed Instance (use PowerShell or REST API). 詳細については、「 Dynamic Data Masking」を参照してください。For more information, see Dynamic Data Masking.

動的データ マスク ポリシーDynamic data masking policy

  • マスクから除外する SQL ユーザー - SQL クエリの結果でデータがマスクされない SQL ユーザーまたは Azure AD の ID のセット。SQL users excluded from masking - A set of SQL users or Azure AD identities that get unmasked data in the SQL query results. 管理者特権を持つユーザーは常にマスクから除外され、マスクのない元のデータを見ることができます。Users with administrator privileges are always excluded from masking, and see the original data without any mask.
  • マスク ルール - マスクされる指定のフィールドと使用されるマスク関数を定義するルールのセット。Masking rules - A set of rules that define the designated fields to be masked and the masking function that is used. データベースのスキーマ名、テーブル名、列名を使用し、指定のフィールドを定義できます。The designated fields can be defined using a database schema name, table name, and column name.
  • マスク関数 - さまざまなシナリオに対応してデータの公開を制御する方法のセット。Masking functions - A set of methods that control the exposure of data for different scenarios.
マスク関数Masking function マスク ロジックMasking logic
[Default]Default 指定のフィールドのデータ型に応じたフル マスクFull masking according to the data types of the designated fields

• 文字列データ型 (nchar、ntext、nvarchar) のフィールドのサイズが 4 文字未満の場合は、XXXX またはそれ未満の数の X を使用します。• Use XXXX or fewer Xs if the size of the field is less than 4 characters for string data types (nchar, ntext, nvarchar).
• 数値データ型 (bigint、bit、decimal、int、money、numeric、smallint、smallmoney、tinyint、float、real) の場合は、値 0 を使用します。• Use a zero value for numeric data types (bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint, float, real).
• 日付/時刻データ型 (date、datetime2、datetime、datetimeoffset、smalldatetime、time) の場合は、01-01-1900 を使用します。• Use 01-01-1900 for date/time data types (date, datetime2, datetime, datetimeoffset, smalldatetime, time).
• SQL バリアントの場合は、現在の型の既定値が使用されます。• For SQL variant, the default value of the current type is used.
• XML の場合は、ドキュメント <masked/> が使用されます。• For XML the document <masked/> is used.
• 特殊なデータ型 (タイムスタンプ テーブル、hierarchyid、GUID、binary、image、varbinary 空間型) の場合は、空の値を使用します。• Use an empty value for special data types (timestamp table, hierarchyid, GUID, binary, image, varbinary spatial types).
クレジット カードCredit card クレジット カードの形式でプレフィックスとして定数文字列を追加し、指定のフィールドの末尾 4 桁を公開するマスク方法Masking method, which exposes the last four digits of the designated fields and adds a constant string as a prefix in the form of a credit card.

XXXX-XXXX-XXXX-1234XXXX-XXXX-XXXX-1234
EmailEmail 電子メール アドレスの形式でプレフィックスとして定数文字列を使用して、最初の文字を公開し、ドメインを XXX.com に置き換えるマスク方法Masking method, which exposes the first letter and replaces the domain with XXX.com using a constant string prefix in the form of an email address.

aXX@XXXX.com
ランダムな数値Random number 選択した境界と実際のデータ型に応じて 乱数を生成するマスク方法Masking method, which generates a random number according to the selected boundaries and actual data types. 指定された境界が等しい場合、マスク関数は定数になります。If the designated boundaries are equal, then the masking function is a constant number.

乱数を生成するためのマスク方法を示すスクリーンショット。Screenshot that shows the masking method for generating a random number.
カスタム テキストCustom text 間にカスタム埋め込み文字列を追加し、最初と最後の文字を公開するマスク方法Masking method, which exposes the first and last characters and adds a custom padding string in the middle. 元の文字列が公開されたプレフィックスやサフィックスより短い場合、埋め込み文字列のみが使用されます。If the original string is shorter than the exposed prefix and suffix, only the padding string is used.
prefix[padding]suffixprefix[padding]suffix

ナビゲーション ウィンドウNavigation pane

DDM の推奨エンジンでは、データベースの特定のフィールドに「機密データの可能性あり」の注意が付けられます。この注意を参考にマスク候補を選択できます。The DDM recommendations engine, flags certain fields from your database as potentially sensitive fields, which may be good candidates for masking. ポータルの動的データ マスク ブレードには、データベースの推奨列が表示されます。In the Dynamic Data Masking blade in the portal, you will see the recommended columns for your database. 1 つまたは複数の列の [マスクの追加] をクリックし、 [保存] をクリックするだけでそれらのフィールドにマスクを適用できます。All you need to do is click Add Mask for one or more columns and then Save to apply a mask for these fields.

PowerShell コマンドレットを使用して、ご使用のデータベースの動的データ マスクを設定するSet up dynamic data masking for your database using PowerShell cmdlets

データ マスキングのポリシーData masking policies

データ マスキングのルールData masking rules

REST API を使用してデータベース用の動的データ マスクを設定するSet up dynamic data masking for your database using the REST API

REST API を使用して、データ マスク ポリシーおよびルールをプログラムで管理できます。You can use the REST API to programmatically manage data masking policy and rules. 公開された REST API では、次の操作がサポートされます。The published REST API supports the following operations:

データ マスキングのポリシーData masking policies

  • 作成または更新:データベース データ マスク ポリシーを作成または更新します。Create Or Update: Creates or updates a database data masking policy.
  • 取得:データベース データ マスク ポリシーを取得します。Get: Gets a database data masking policy.

データ マスキングのルールData masking rules

アクセス許可Permissions

動的データ マスクを構成できるのは、Azure SQL Database 管理者、サーバー管理者、またはロールベースのアクセス制御 (RBAC) の SQL セキュリティ管理者の各ロールです。Dynamic data masking can be configured by the Azure SQL Database admin, server admin, or the role-based access control (RBAC) SQL Security Manager role.

次のステップNext steps

動的なデータ マスキングDynamic Data Masking