Microsoft Azure SQL Database: 高度なクラウド データ セキュリティを実現する Always Encrypted 機能を追加

このポストは、10 月 14 日に投稿された Microsoft Azure SQL Database provides unparalleled data security in the cloud with Always Encrypted の翻訳です。

 

高い可用性セキュリティコンプライアンスパフォーマンスを誇る Azure では、現在 150 万以上のミッション クリティカルなデータベースが運用されています。データ セキュリティは、小規模のスタートアップ企業から大企業までのあらゆる企業に不可欠なものであり、その重要性はどんどん増しています。特に、新規アプリケーションと既存アプリケーションの両方をクラウドで運用することを想定している企業では、それが顕著です。

こうしたビジネス変革とクラウドへの移行を進めるお客様をサポートするのが、SQL Server のセキュリティ基盤上に構築された Azure SQL Database です。今回この Azure SQL Database に以下のセキュリティ機能が追加されました。

  • Always Encrypted ( パブリックプレビュー ): 今月末までに提供が開始されます。Always Encrypted (英語) は Azure SQL Database の暗号化キーを放棄することなく機密データを保護できる機能で、通信中のデータやメモリ内のデータ、ディスク内のデータ、クエリ処理中のデータを常に暗号化された状態に保てます。
  • Transparent Data Encryption ( 一般提供 ): 今月末までに提供が開始されます。Transparent Data Encryption (英語) は、データベースおよびそれに関連付けられているバックアップ、トランザクション ログ ファイルを格納中に暗号化し、コンプライアンス要件を満たします。この機能を使用するのにお客様のアプリケーションに変更を加える必要はありません。
  • Azure SQL Database Azure Active Directory (Azure AD) 認証をサポート ( パブリックプレビュー ): 既に提供が開始されています。Azure AD 認証は SQL 認証に替わる機能で、Azure SQL Database をはじめとするあらゆる Azure サービスに 1 つの ID で接続できるようになるため、パスワード管理をシンプルになります。
  • 行レベルセキュリティ ( 一般提供 ): 既に提供が開始されています。行レベル セキュリティでは、ユーザー ID、ロールのメンバーシップ、クエリの実行コンテキストなどに基づいて行ごとにデータへのアクセスを管理します。
  • 動的データマスク ( 一般提供 ): 今月末までに提供が開始されます。動的データ マスクでは、データベースの列に対するマスキング パターンを定義し、機密データの表示を制限することができます。
  • Threat Detection ( パブリックプレビュー ): 今月末までに提供が開始されます。Threat Detection は Azure SQL Database Auditing を補完する機能で、データベースや論理サーバー レベルで不審なデータベース活動を監視し、アラートを生成します。

SQL Server のセキュリティ基盤上に構築

マイクロソフトは、世界レベルのデータ セキュリティ/プライバシー保護機能をオンプレミスとクラウドの両方の環境向けに提供しています。米国標準技術研究所によると、SQL Server は過去 6 年間で Oracle や IBM DB2、MySQL などの大手データベース エンジンの中で最も脆弱性の数が少なかったとされています。この事実とセキュリティへの継続的な投資により、SQL Server は現在最も安全なリレーショナル データベースとなっています。

SQL Server の基盤上に構築し、Azure の物理的で運用性の高いセキュリティと組み合わせることにより、Azure SQL Database は ISO/IEC 27001、Fed RAMP/FISMA、SOC、PCI DSS といった最も厳格な各種規制に準拠します。

データの安全性を確保

オンプレミスの SQL Server や Azure SQL Database に格納されているお客様のデータの安全性を確保し、最高レベルの保護を提供して規制に準拠するために、複数の階層でデータ保護を行います。これにより、格納中、移動中、使用中のデータが暗号化されると同時に、データベースやアプリケーションで認証されているユーザーのみに認証が限定されます。また、ユーザーがアクセスできるデータ範囲を制限することもできます。さらに、継続的に活動を監視、監査して潜在的な脅威を検出したり、違反があった場合には重要なイベントの記録を提供することができます。これらの高度なセキュリティ機能では、「迅速に実装可能であること」と「開発者の生産性やユーザーの操作性を損なうことなくセキュリティ リスクを緩和できること」のバランスがとれています。また、保護階層は、「データ保護」、「アクセス制御」、「活動の監視」の 3 つの分野に分けられます。

今回発表した機能はこの 3 つの階層すべてを提供するもので、マネージド型の DaaS (サービスとしてのデータベース) である Azure SQL Database でより簡単にデータの安全を確保することができます。

データ保護

Always Encrypted (英語) のリリースをもって、マイクロソフトは保管中、転送中、使用中のデータを常に盗難から保護する機能を初めて組み込みで提供できることになりました。Always Encrypted を利用することで、クレジット カード番号などの機密データは NIST の AES 256 暗号化技術で暗号化され、暗号化キーは信頼性が保証された環境 (Azure Key Vault など) で保持され、処理は SQL Database 内部で暗号化データ (暗号化テキスト) に対して実行されるようになります。機密データはクエリの処理中でも暗号化されたままの状態であるため、クラウド データベースのオペレーターやその他の高いアクセス許可を持っているユーザーでも、認証を受けていない場合は暗号化キーにアクセスすることはできません。Azure SQL Database では唯一、データの所有者 (およびデータの閲覧が許可されている人) と管理者 (ただし、データへのアクセス許可を持たない) を分離することができます。

Transparent Data Encryption (TDE、英語) では、データベースおよびそれに関連付けられているバックアップ、格納中のトランザクション ログを暗号化することで、データ保護とお客様のコンプライアンス要件への準拠を支援します。なお、この機能を使用するにあたって、アプリケーションに変更を加える必要はありません。SQL Database TDE は SQL Server の TDE テクノロジを基盤としており、データベース暗号化キーと呼ばれる業界標準の AES-256 対称キーを使用してデータベース全体のストレージを暗号化します。SQL Database では、サービスを管理している証明書でこのデータベース暗号化キーを保護します。SQL Database の任意の場所において、データベースのコピー、地理レプリケーション、データベースの復元に使用されるキーの管理はこのサービスによって行われます。また、このサービスは Azure ポータルからわずか 2 回のクリック操作でお客様のデータベースに適用できます。

金融、銀行、医療などの業界では、支払い情報のデータに対してクレジット業界データ セキュリティ基準 (PCI DSS) v3.1 のような厳格なエンドツーエンドのセキュリティ保護が求められるなど、厳しい規制要件が課せられています。SQL Database では最も厳格なトランスポート層セキュリティ (TLS) がサポートされていて、SQL Database との間での送受信双方の通信ですべてのデータが保護されます。TLS、TDE、Always Encrypted がサポートされた包括的な暗号化ソリューションを活用することで、この厳格な PCI DSS の要件に準拠することができます。

アクセス制御

Azure SQL Database では、SQL 認証と共に Azure Active Directory (Azure AD) 認証がサポートされました。これにより、1 つの ID で SQL Database に接続できるようになるため、企業が所有している複数のデータベース サーバーの間で複数のユーザー ID を使用する必要がなくなります。また、Office 365 をはじめマイクロソフトが提供するクラウド サービスの数は刻々と増えていますが、この機能によって各クラウド サービスへのシングル サインオンが可能になります。Azure AD のプリンシパルに基づくデータベース ユーザーについては、Azure 管理ポータルまたは PowerShell から REST API を使用して管理することができます。

セキュリティでは、ユーザーにデータベースやアプリケーションへのアクセスを許可することだけでなく、ユーザーの数が増えるにつれて、各ユーザーに許可されるデータ アクセスをアプリケーションが制御できるようにすることも重要です。行レベル セキュリティ (RLS) では、ユーザー ID、ロールのメンバーシップ、クエリの実行コンテキストなどに基づいて、ユーザーに対して行ごとに読み込みと書き込みのアクセスを制限します。RLS では、アクセス ロジックをデータベース自体に集約してアプリケーション コードをシンプルにすると同時に、意図しないデータ漏えいのリスクを減少させます。また、動的データ マスクでは機密データの表示を制限し、権限を持たないユーザーに情報が表示されないようにします。この機能では、指定されたデータベース フィールドでクエリの結果セット内の機密データを非表示にします。このため、基盤となるデータベース操作に影響が及ぶことはなく、アプリケーション層への影響を最小限に抑えつつ、機密データの公開範囲を指定することができます。

活動の監視

SQL Database に追加された新しい Threat Detection 機能では、データベースに対する潜在的なセキュリティ脅威の存在を示す異常なデータベース活動を検出できます。Threat Detection は Azure ポータルと統合されており、不審なイベントに関する情報をサブスクリプション管理者に直接通知することができます。Threat Detection は現在 Azure SQL Database Auditing の補完機能であり、データベース イベントを記録し、監査したイベントを Azure ストレージ アカウントの監査ログに書き込みます。Auditing は、規制遵守の維持、データベース活動の把握、およびビジネス上の懸念事項やセキュリティ違反の可能性を示す不一致や例外に関する情報の取得を支援します。Auditing と Threat Detection はいずれも、Azure の付加価値となる監査やリスク対応のための機能としてマイクロソフトが生み出した代表的な機能です。

安全なプラットフォーム

これらの機能はマイクロソフトのクラウド ファーストの原則に従い、先行してクラウド環境向けに Azure SQL Database で提供されており、今後は SQL Server 2016 でも提供を予定しています。マイクロソフトは、あらゆる保護階層において Azure SQL Database と SQL Server の両方でデータとアプリケーションに対し最新の保護を簡単に適用できるプラットフォームを提供します。Azure SQL Database は、高可用性 (99.99% の SLA)、パフォーマンスの予測可能性、企業レベルのセキュリティを備えており、クラウドで提供される唯一の包括的な PaaS (サービスとしてのプラットフォーム) データベースです。SQL Database はエンドツーエンドのデータ プラットフォームの一部であり、アクセス可能なすべてのデータの価値をより簡単に、最大限に活用できるようにすることを目指して設計されています。今回の発表もそうですが、マイクロソフトは既存の資産を活用するかたちで機能強化を進めています。そうすることで、お客様は既に馴染みのあるツールや言語、フレームワークを引き続き利用して、オンプレミスとクラウドの両方で信頼性を確保しつつ、あらゆる種類やサイズのデータを、あらゆる規模で簡単に取得、変換、分析できるようになります。

Azure SQL Database のセキュリティ機能の利用を開始する

マイクロソフトは PASS Summit 2015 (英語) に出展しますので、ぜひブースにお立ち寄りいただき、今回ご紹介した包括的なセキュリティ機能の詳細についてお尋ねいただければ幸いです。

Ranga