ポイントを速習!「Azureの基礎(AZ900)」をみんなで学ぶ 第12回
Azureのセキュリティを実現している「多層防御」や「共同責任」を知る
Azureのセキュリティで知っておきたいこと、対策の基礎【前編】
2021年01月20日 08時00分更新
本連載「ポイントを速習!『Azureの基礎(AZ900)』をみんなで学ぶ」では、FIXERの若手エンジニアたちがマイクロソフトの「Azureの基礎(AZ900)」公式ラーニングパスに沿いつつ、Azureを使ううえで覚えておくべき基礎的かつ重要なポイントだけ※をわかりやすくまとめます。実際に手を動かして学ぶハンズオンのコーナーもありますので、皆さんもぜひ一緒に学んでいきましょう。
(※ 本連載はAZ900試験の受験対策を目的としたものではなく、出題範囲すべてを網羅するものではありません)
はじめに
連載「ポイントを速習!『Azureの基礎(AZ900)』をみんなで学ぶ」の第12回目では、Microsoft Azureで扱うコンピュータシステムのセキュリティを保護するアプローチについて説明していきます。
まず前編記事では、Azureのセキュリティ対策を行ううえで知っておく必要がある「複数のレベルの保護を行う多層防御の考え方」や「セキュリティ対策で提供される各サービス」、「Azureでセキュリティに取り組む上で理解すべき共有責任とその管理範囲」の概要を紹介します。また次回の後編記事ではハンズオンを行い、多層防御を構成するセキュリティ対策をいくつか実際に試してみましょう。
多層防御とは
多層防御とは、情報への不正なアクセスを防ぐために、異なる防御手法を用いる複数の層(レイヤー)を用意するセキュリティの考え方です。サイバー攻撃によってある層の防御が破られてしまっても、別の手段を用いた次の防御層が用意されており、それが何重にもなっていることで被害の発生を防ぎます(攻撃の進行を遅らせます)。たとえるならば、建物のドアが破られても書類庫に入るにはまた別の鍵が必要で、なおかつ重要書類は金庫に入っていて安全、といったイメージです。
具体的に、Azureにおける多層防御の例を見てみましょう。Azureではユーザーが保存するデータを「最終的に守るべきもの」と考え、これを中心として同心円状に防御層を構成しています。これにより、たとえば攻撃者にネットワーク境界(No.5の層)を突破されてしまっても、別の手段で防御する次の層以降(No.1~4の層)がすべて突破できなければ、ターゲットであるデータは盗み出せないわけです。
なお上の表にある「CIA」とは、情報セキュリティの3要素「Confidentiality(機密性)」「Integrity(完全性)」「Availability(可用性)」の頭文字をつなげたものです。上の表では、各層が主にどの要素を実現するのかを示しています(実際には1つだけでなく複数要素を同時に実現します)。
●C:Confidentiality(機密性):情報が盗み見られないこと。データそのものや通信路の暗号化、明示的に許可されたユーザーにのみアクセス権限を与える、といった手法で実現します。
●I:Integrity(完全性):情報が保存中や転送中に改竄されないこと(改竄されていないと保証できること)。電子署名などの手法があります。
●A:Availabilty(可用性):正当なユーザーが、必要なときにいつでも情報にアクセスできること。DDoS攻撃からの保護、インフラの冗長化(可用性セット/可用性ゾーン)などの手法があります。
多層防御を実現する各種サービス
上に挙げた表にあるとおり、多層防御の各層ではさまざまなセキュリティ関連サービスが用意されています。以下ではそれぞれの層における代表的なセキュリティサービス、機能を紹介します。
●1:データ層
・Azure Key Vault:アプリケーションやサービスでデータの暗号化に使う暗号鍵を、まとめて管理できるサービスです。
・Azure Disk Encryption:OS内蔵の暗号化機能(Windows BitLocker、Linux DM-Crypt)を使用して、システムディスクとデータディスクのボリューム全体を保護します。
・Azure Storage Service Encryption(SSE):Azureのストレージサービス(Azure Blob Storage、Azureファイル共有など)に保存されるデータはすべて、このAzure SSEによってAES 256ビット方式で暗号化されます。データは保存時に自動で暗号化され、読み出し時には自動で復号される透過的な仕組みです。
●2:アプリケーション層
・Azure App Service:第2回の記事でも紹介したApp Serviceでは、設定時にTLS(暗号化通信)の利用を推奨するなどして、ユーザー自身でアプリケーションを防御しやすい仕組みになっています。
ただし「共有責任」の考え方(後述)から、最終的にはユーザー側の責任において各種セキュリティ設定を利用しなければなりません。たとえばバックエンドリソースにおいても常に暗号化通信を利用すること、アクセス許可するIPアドレスは最小限にすることなど、セキュリティのベストプラクティスを理解し、遵守することが大切です。
●3:コンピュート層
・Azure Confidential Computing:企業の財務データや医療機関の患者データなど、特に高度な保護が必要な機密データを計算処理するための、隔離されたコンピュートリソースを提供するものです。ハードウェアベースのTEE(Trusted Execution Environment)を用いてプロセッサやメモリを他のワークロードから隔離し、計算処理中のデータを厳格に保護します。
●4:ネットワーク層
・Azureネットワークセキュリティグループ(NSG):NSGは、Azure内の仮想ネットワークにおいてトラフィックのフィルタリング機能を提供します。あらかじめ設定された規則(トラフィックのソース(送信元)/宛先、プロトコル、ポート範囲など)に基づいて、通信を許可/拒否します。なお、主要なAzureリソースのトラフィックを許可/拒否する規則もあらかじめプリセットされていますので、「どのプロトコルのどのポートを開ける(許可する)べきか」といったことを迷うことなく、簡単に設定できます。
・Azureサービスエンドポイント:インターネットからのアクセスを禁止し、仮想ネットワーク(VNet)内の特定のサブネットからのアクセスのみを許可する仕組みです(詳しくは第9回記事を参照)。このトラフィックはインターネットを経由せず、すべてAzureのバックボーンネットワーク経由となるため安全です。
●5:ネットワーク境界
・Azure Bastion:Azureポータルを介して直接、仮想マシン(Azure VM)へのセキュアなアクセス手段(RDP、SSH)を提供するサービスです。ローカルPCの接続用クライアントからアクセスする場合はネットワーク境界でポートを開放する必要がありますが、Bastionではその必要がなく、不正アクセスのリスクを回避できます。ちなみに、Bastionとは「城壁、砦、要塞」という意味の英単語です。
・Azure DDoS Protection:リソースに対するインターネットトラフィックの流量を監視し、あらかじめ設定されたしきい値を超えた場合は、送信元のIPアドレスやパケットの形式を学習してアラートや軽減処理を自動で行うサービスです。
・Azure Front Door:機能がわかりにくい名称ですが、Webアプリケーションの高可用性を実現するために、レイヤー7でのグローバルフェイルオーバー/ルーティングや負荷分散、Webアプリケーションファイアウォール、DDoS防御といった機能を包括的に提供するサービスです。
●6:IDとアクセス
・Azure Active Directory(Azure AD):クラウドベースのID/アクセス管理プラットフォームサービスであり、マイクロソフトのMicrosoft 365やAzureリソース、さらにサードパーティのアプリケーションなどへのサインインやアクセスを一元管理します。シングルサインオンや多要素認証などの機能も提供します。
●7:物理セキュリティ
・データセンターの物理的セキュリティ:Azureのサービスを提供するデータセンターにおいても、物理的なセキュリティが階層化され、多層防御となっています。
まず、データセンターへの入館には事前申請をして承認を受ける必要があります。その際、入館目的が業務上妥当性のあるものかどうかがチェックされます。またアクセスが許可されるのは、最小限の人数/最小限のエリア/最小限の期間に制限されます。
データセンターの建物は高いフェンスで囲われており、周囲はセキュリティカメラで監視されています。入館者は必ず特定のアクセスポイントを通過して、セキュリティチェックを受けなければなりません。
建物内部では生体認証による2段階認証が行われ、認証済みIDを持つ入館者は承認されたエリアに、承認された時間帯のみ立ち入ることができます。データの無断持ち出しを防ぐため、各階には承認されたデバイスしか持ち込むことができず、入場/退出時には全身の金属検査も行われます。
境界防御から「ゼロトラスト」モデルへ
ちなみに、最近よく言われるようになった「ゼロトラスト」セキュリティモデルでも、階層型で守る多層防御の考え方がとられています。
従来のデータセンターでは、外部からの侵入口となりうる部分のセキュリティ対策(つまり物理セキュリティやネットワーク境界セキュリティ)だけを重視し、そこで防御するという考え方が一般的でした。これを「境界防御」と呼びますが、ビルやファイアウォールといった境界の内側にいる者はすべて“信頼できる存在”とみなし、データやシステムへのアクセス権限を無条件に与えます。そのため「なりすまし」などでいったん内側に侵入されてしまえば、あとは不正行為(攻撃)がやり放題になってしまい、被害は簡単に拡大します。
そこで「ゼロトラスト=何も/誰も信用しない」という新たなアプローチがとられるようになりました。たとえば「信頼しているローカルIPアドレスからのアクセスでも別途、別手段で認証を行う」「ユーザーが正当なID/パスワードを持っていてもデバイス証明書を確認し、さらに操作履歴を監視する」「外部からアクセスできないストレージであっても、データは暗号化で保護する」など、複数の防御手法を積み重ねてリソースを保護することが必要になっています。
この連載の記事
-
第13回
TECH
Azureのセキュリティで知っておきたいこと、対策の基礎【後編】 -
第11回
TECH
Azureの利用コストを管理、予測して支出を最適化する -
第10回
TECH
Azureの基本的なネットワークサービスを理解する【後編】 -
第9回
TECH
Azureの基本的なネットワークサービスを理解する【前編】 -
第8回
TECH
Azureのストレージサービスを理解し「SQL Database」に触れてみる -
第7回
TECH
「Azure VM」などAzureの幅広いコンピューティングサービスを知る -
第6回
TECH
Azureの主な管理ツールを知り、リソースを管理する【後編】 -
第5回
TECH
Azureの主な管理ツールを知り、リソースを管理する【前編】 -
第4回
TECH
Azureのインフラ構成とサービス可用性を高める仕組み -
第3回
TECH
Azureの代表的なサービスを知る/使ってみる【後編】 - この連載の一覧へ