「Azure SQL Database」を中心に据え、データを多層的に保護する手法を検討する
あらゆる観点から考える「データセキュリティ」のベストプラクティス
2021年08月30日 08時00分更新
脅威の予兆を見逃さない
Azure上にデータを保管する場合、たとえネットワーク通信やデータを保護したとしても、完全な閉域環境を構築できるオンプレミスと比較すると、さまざまな攻撃にさらされる危険性が高くなることは否定できない。Azureには、そうした攻撃の兆候を検出して未然に防止するためのさまざまなサービスが用意されている。それらを事前に把握し、十分に活用できるように習熟しておくことが必要だ。
●脅威検出 ― Azure Defender for SQL
Azure SQL Database向けの脅威検出機能のパッケージとして「Azure Defender for SQL」が存在しており、次に示す2つのサービスによって構成されている。静的な情報をもとに脅威検出を行う脆弱性評価と、動的な操作の監視によるAdvanced Threat Protectionは、相互に補完し合いセキュリティを高めることを目的とした、Azureならではのサービス群と言える。
-脆弱性評価
Azure SQL Databaseのセキュリティに関する設定状況を可視化し、問題点の把握や課題解決のための手段を提供する。Azure SQL Databaseには、関連するさまざまなベストプラクティスが蓄積されているナレッジベースが存在する(ベストプラクティスの数は、全世界にデプロイされたAzure SQL Databaseの情報をもとにして日々追加され続けている)。
脆弱性評価では、対象となるAzure SQL Databaseの各種情報を収集して、蓄積されたベストプラクティスとの差異を定期的に分析する。例えば、適切ではない環境設定、アクセス許可の過剰な付与、あるいは機密データの不十分な保護などを、差分の確認によって明確にすることができる。
分析結果は重要度別に分類されて、さらには個別の報告事項の対処方法とともにレポートとして表示される。利用者はレポートの情報を元に優先順位を決定することができ、それらをひとつずつ対処することによってAzure SQL Databaseに対する脅威のリスクを低減することができる。
Azure SQL Databaseに関する脅威を防ぐための知見の集積ともいえる、ナレッジベースに基づいた脆弱性評価は、Azureを利用する大きなメリットのひとつである。
-Advanced Threat Protection
データベースの悪用が疑われる操作の検出を動的に行い、もしも何らかの疑いがある場合は利用者に通知を行う。次のような操作がAzure SQL Databaseに対して試行されると、「Advanced Threat Protection」によって自動的に検出され、電子メールで通知を受け取ることができる。また、Azure全体のセキュリティ管理の中核をなしているAzure Security Centerと統合されていて、Azure Portalからも通知の履歴などを確認することができる。
なお、2021年8月時点で検出対象となっている操作はこちらのとおりだ。
・SQLインジェクションの可能性があるアクセス
・従来とは異なるデータセンターからのアクセス
・60日以上使用されていないアカウントからのアクセス
・疑わしいアクティビティに関連するIPアドレスからのアクセス
●監査証跡の保持 ― SQL監査
Azure SQL Database に対して実行されたさまざまな操作を記録するための機能として「SQL監査」が用意されている。SQL監査によって記録した情報は、例えば、実行されたクエリ群を分析することによって、特定のテーブルへのアクセスパターンの把握が可能になる。また、機密データに対するアクセスの有無を証明するための監査証跡としての利用も可能である。
SQL監査はAzure Portalから有効化することができ、監査ログの保存先として「Azure Blob Storage」「Log Analytics」「Event Hubs」が選択できる。Azure Blob Storageを保存先として選択した場合は、監査ログをローカルファイルとしてダウンロードすることによって、オンプレミスのSQL Serverと同様に「SQL Server Management Studio」を使用して分析することができる。Azure Blob Storage上の監査ログを直接確認することも可能だが、多くの場合ログファイルの読み取り操作に非常に時間がかかってしまうため、あまりお勧めできない。
Azure SQL DatabaseのSQL監査は、デフォルトでは下記のイベントグループを収集するように設定されている。基本的な情報の収集には充分と言えるが、より詳細な監査情報を必要とする際にはオンプレミスのSQL Serverと同等のイベント選択が可能になっている。残念ながら2021年8月時点では、Azure PortalからのGUIを使用した設定はサポートされておらず、「Azure PowerShell」、REST API、「Azure CLI」を使って設定する必要がある。
・BATCH_COMPLETED_GROUP
・SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP
・FAILED_DATABASE_AUTHENTICATION_GROUP
Azure SQL DatabaseのSQL監査にはいくつか注意が必要な点があるので、そちらを理解したうえで利用を検討してほしい。まず、Azure SQL Database自体のパフォーマンス劣化を防止するため、非常に負荷の高い状況ではイベントが記録されない場合がある。また、Azure Active Directory認証を使用している場合には、ログインの失敗に関してログが書き込まれない。その際にはAzure Active Directory Portalで事象を確認する必要がある。そのほかにもいくつか制限事項があるため、事前に確認しておくことをお勧めする。
★脅威の予兆を見逃さないためのベストプラクティス
●Azure SQL Database向けのAzure Defender for SQLやAzure全般をカバーするAzure Security Centerなど、Azureにはセキュリティを強固にするためのさまざまなサービスが用意されているので、それらの機能を把握し十分に活用することが重要
●SQL監査を適切に利用してデータアクセスの監査証跡を確保
法令に基づくデータ運用/管理を実現
保管されたデータを正当に運用、管理するためにはデータ操作に関わる統制が欠かせない。Azureには法令順守/コンプライアンスをサポートするための機能が存在する。保持しているデータやデータに対する操作に求められる統制基準を正しく理解して、適切な措置を講じておくことが求められる。
●コンプライアンスの順守 ― Azure Policy
「Azure Policy」を利用することによって、データに関わる箇所のみならず、Azure全般に対する組織の標準となる操作をポリシーとして定義することができる。これは不適切な設定内容によってセキュリティリスクを放置してしまうことを防ぎ、あらかじめ高度なセキュリティ設定が強制されたサービスのみがデプロイされることを可能にする。
Azure Policy にはあらかじめさまざまなポリシーが事前定義されており、基本的にはそれらを組み合わせて使用する。
参考: Azure SQL Database 用の事前定義ポリシー例(すべての定義はこちら)
-Azure SQL Databaseにはバージョン1.2以降のTLSが必要
-Azure SQL Databaseのパブリック ネットワーク アクセスを無効にする必要がある
-監査を有効にするようにSQL Serverを構成する
また、Azure Policyではいくつかのセキュリティ基準(ISO27001:2013、SP800-171など)への準拠をサポートするために、それぞれの基準で求められる対応と、Azure Policy が提供する定義済みポリシーのマッピング情報をサンプルとして公開している。システムが必要とする国際標準への準拠に対する対応を、白紙の状態から準備する場合と比較すると、これらのサンプルの利用によって大幅な省力化が可能になるため、ぜひ活用したいところだ。
★法令に基づくデータ運用・管理を実現するためのベストプラクティス
●提供されているサンプルを基にして効率的にコンプライアンスを実現可能
今回はAzure SQL Databaseをサンプルとして、Azure 上にデータを配置する際のセキュリティに関するベストプラクティスを紹介した。それぞれのサービス間で機能的な差異は存在するが、他のAzure上のデータプラットフォームサービス(Azure Synapse Analytics、Azure Cosmos DB、Azure Database for MySQL、Azure Database for PostgreSQLなど)を利用したとしても、基本的な考慮点は同じと考えてよい。これからデータをAzure への移行を予定している場合、あるいはすでに移行済みであっても、十分な対策を講じることをお勧めしたい。
この連載の記事
-
第6回
TECH
Azureの利用コストを最適化するためのベストプラクティス -
第5回
TECH
Azureにおける「IDとアクセス管理」のベストプラクティス -
第3回
TECH
“ポストクラウド時代”の効率的なインフラ管理方法とは -
第2回
TECH
「失敗あるある」から考える、Azure移行のベストプラクティス -
第1回
TECH
Azureで実現する高可用性の“勘どころ”と構築のポイント - この連載の一覧へ