Share via


Dynamic Data Masking を使用して Azure SQL Database に保存されている機密データの流出を防止

このポストは、2 月 25 日に投稿された Limit the exposure of sensitive data in Azure SQL Database using Dynamic Data Masking の翻訳です。

今週、SQL Database (V12) (英語) の新しいバージョンで Dynamic Data Masking (英語) のプレビュー版がリリースされました。Dynamic Data Masking はポリシーに基づくセキュリティ機能で、権限を持たないユーザーが特定のデータベース フィールドに対してクエリを実行した場合、返されるデータにマスキングを行います。これにより、データベース上のデータを変更することなく、クレジット カード番号などのデータの開示が制限されます。SQL Database では AuditingRow-Level Security (英語) などを導入してセキュリティ機能を拡充していますが、今回導入される Dynamic Data Masking は機密データの保護を支援し、さらに業界のコンプライアンス ポリシーの遵守も可能にします。

10bis で CTO を務める Tomer Fefer 氏は次のように述べています。「SQL Database の Dynamic Data Masking を使用すると、基盤となるデータベースの機密情報を危険にさらすことなく開発者に運用環境への一時的なアクセス許可を与えることができるため、トラブルシューティングの迅速化に非常に役立ちます。また、アプリケーションの GUI での機密データのマスキング処理も最小限で済ませることができます。この機能により、リアルタイムでの対応が可能になり、コストが削減されます。また、Azure 管理ポータルを使用すると、動的なデータ マスキング ポリシーを簡単に作成することができます。」

お客様が Azure SQL Database に顧客や PII のデータを保存している場合、アクセス許可を持たないアプリケーション ユーザーや、トラブルシューティングの際に運用環境で SQL クエリを実行する開発者に対して情報の開示を制限する必要がありますが、この機能を導入すると、こうした問題に対処できます。Dynamic Data Masking のポリシーの管理は、Azure 管理ポータル新しい Azure ポータル、または標準 API から行います。インターフェイスを通じて直観的に構成できるので、ほんの数分程度の作業で簡単に Dynamic Data Masking のポリシーを作成し、データベースで実行させることができます。

 

Dynamic Data Masking のシナリオ

Dynamic Data Masking では、機密データへのアクセスをリアルタイムに制限し、セキュリティ違反の発生を防止します。この機能ではデータベースに対するクエリの結果を出力するときに機密データをどのように表示するかを制御できるため、リアルタイムでデータにアクセスする必要がある場合に適しています。Dynamic Data Masking によるセキュリティ違反防止に最適なシナリオとして、以下が挙げられます。

  • 顧客や従業員の記録へのアクセス: 業務の中には、顧客や従業員の詳細な情報にアクセスする必要があるものも多数あります。しかし、クエリ結果に含まれる給与関連の情報や社会保障番号の最後の 4 桁が読み取れないようにコンプライアンス ポリシーで定義すると、情報へのアクセスを防ぐことができます。
  • 運用環境のデータを使用した開発とテスト: 多くの企業では、開発段階のアプリケーションのテストで万全を期すために運用環境のデータのサンプルを使用したり、トラブルシューティングの際に開発者が運用環境のデータに対して SQL クエリを実行したりすることがあります。この両方のケースで、運用環境のデータ セットの機密データをリアルタイムで読み取れない形にして表示することができます。

Dynamic Data Masking のセットアップ

Dynamic Data Masking のポリシーの構成では、一連のマスキング ルールを指定します。サービスはこのルールをリアルタイムに適用して、データのマスキングを行います。各ルールの設定では、まず、どのデータベース フィールドにマスキングを適用するかを指定します (テーブルと列、またはエイリアスを使用)。次に、マスキング機能を選択して、どのようにマスキングするかを定義します (事前定義済みの設定を使用することも、カスタマイズすることも可能)。さらに、データベースのログイン アカウントのうち、データのマスキングを適用しない、アクセス許可を付与するアカウントを定義することもできます。

Dynamic Data Masking を構成する場合は、最新バージョンの SQL Database (V12) を使用する必要があります。構成作業は、Azure 管理ポータルで簡単な手順をいくつか実行するだけです。

  1. Azure ポータルで、適用対象のデータベースに移動します。
  2. [Auditing & Security] タブをクリックして [Dynamic Data Masking] タブを開くか (Azure ポータルの場合)、または Dynamic Data Masking パーツを起動 (新しい Azure ポータルの場合) します。
  3. Dynamic Data Masking を有効化すると、ポリシーの構成画面が表示されます。
  4. データベースのログイン アカウントのうちデータのマスキングを適用しないものを、カンマ区切りのリストで指定します。
  5. 特定のデータベース フィールドを指定し、マスキング機能を選択して、マスキング ルールを追加します。

 

新しい Azure ポータルで Dynamic Data Masking のポリシーを管理

Azure 管理ポータルで Dynamic Data Masking のポリシーを管理

Azure 管理ポータルで Dynamic Data Masking のルールを追加

Dynamic Data Masking のポリシーの構成が完了したら、データベースに接続している既存のクライアント アプリケーションを、Security Enabled Connection Strings (セキュリティ対応接続文字列) を使用するように更新する必要があります。これで、アプリケーションによるデータベース処理にマスキングが適用されるようになります。この接続文字列は従来の接続文字列に替わるもので、書式が多少異なります。

Dynamic Data Masking を使用すると、データベース内のデータを変更することなくクエリの出力によって機密データが流出することを制限できるため、Azure SQL Database に新たなセキュリティ レイヤーを追加することができます。

Channel 9 に Dynamic Data Masking の使用方法を紹介するビデオ ( 英語 ) をご用意していますので、どうぞご覧ください。

最新のサービス バージョンの SQL Database でデータベースを使用しているお客様は、ぜひ Dynamic Data Masking をお試しください。詳細については、入門ガイドのページ (英語) をお読みください。または、Azure 管理ポータル新しい Azure ポータルからさっそく構成を始めていただくこともできます。