Azure で仮想マシンをセキュリティで保護し、ポリシーを使用する

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット

実行するアプリケーションの仮想マシン (VM) は、常に安全な状態に保つ必要があります。 VM の安全を確保する手段としては、Azure のサービスや機能を通じて、VM へのアクセスやデータのストレージにセキュリティを確保する方法が挙げられます。 この記事では、VM とアプリケーションのセキュリティを維持するうえで役に立つ情報を提供します。

マルウェア対策

最近のクラウド環境に対する脅威は変化が激しく、コンプライアンスとセキュリティの要件を満たすために効果的な保護を維持しなければならないという圧力はますます大きくなっています。 Azure に対する Microsoft マルウェア対策は、ウイルス、スパイウェアなどの悪意のあるソフトウェアの特定や駆除に役立つリアルタイムの保護機能です。 悪意のあることまたは望ましくないことが確認されているソフトウェアが VM 上で実行されようとしていたり、自らインストールを試みたりした場合に、その事実を把握できるようにアラートを構成することができます。 Linux または Windows Server 2008 を実行している VM ではサポートされていません。

Microsoft Defender for Cloud

Microsoft Defender for Cloud は、VM に対する脅威の防御、検出、対応に役立ちます。 Microsoft Defender for Cloud を導入すると、ご利用のすべての Azure サブスクリプションにセキュリティ監視とポリシー管理が組み込まれ、このツール以外では気付かないような脅威を検出できます。このツールはまた、幅広いセキュリティ ソリューション エコシステムと連動します。

Defender for Cloud の Just-In-Time アクセスは、VM のデプロイ全体に適用できます。これによって Azure VM へのインバウンド トラフィックをロックダウンし、VM への接続が必要な場合は簡単にアクセスできるようにしつつ、攻撃にさらされる状況を減らすことができます。 Just-In-Time が有効になっているとき、ユーザーが VM へのアクセスを要求すると、ユーザーに与えられている VM のアクセス許可が Defender for Cloud によって確認されます。 ユーザーに適切なアクセス許可が与えられている場合は要求が承認され、選択したポートへのインバウンド トラフィックを制限時間内だけで許可するように、Defender for Cloud によってネットワーク セキュリティ グループ (NSG) が自動的に構成されます。 指定された時間が経過すると、Defender for Cloud により NSG が以前の状態に復元されます。

暗号化

マネージド ディスクには、2つの暗号化方式が用意されています。 ひとつは、Azure Disk Encryption と呼ばれる OS レベルでの暗号化、そしてもうひとつは、サーバー側で暗号化を行うプラットフォーム レベルでの暗号化です。

サーバー側暗号化

Azure マネージド ディスクは、データをクラウドに永続化するときに、既定で自動的にデータを暗号化します。 サーバー側の暗号化によってデータが保護され、組織のセキュリティおよびコンプライアンス コミットメントを満たすのに役立ちます。 Azure マネージド ディスク内のデータは、利用できる最も強力なブロック暗号の 1 つである 256 ビット AES 暗号化を使って透過的に暗号化され、FIPS 140-2 に準拠しています。

暗号化はマネージド ディスクのパフォーマンスに影響しません。 暗号化に追加コストはかかりません。

プラットフォーム マネージド キーを利用してお使いのマネージド ディスクを暗号化することも、お使いの独自のキーを使用して暗号化を管理することもできます。 独自のキーを使用して暗号化を管理する場合は、マネージド ディスク内のすべてのデータの暗号化と暗号化解除に使用するカスタマー マネージド キーを指定できます。

サーバー側の暗号化の詳細については、Windows または Linux の記事を参照してください。

Azure Disk Encryption

仮想マシン (Windows VM および Linux VM) のセキュリティとコンプライアンスを強化するために、Azure の仮想ディスクを暗号化できます。 Windows VM の仮想ディスクは、BitLocker を使って保存時に暗号化されます。 Linux VM の仮想ディスクは、dm-crypt を使って暗号化します。

Azure の仮想ディスクを暗号化するための料金はかかりません。 暗号化キーは、ソフトウェア保護を使って Azure Key Vault に格納されます。または、FIPS 140-2 レベル 2 標準に認定された Hardware Security Module (HSM) でキーをインポートまたは生成することもできます。 これらの暗号化キーは、VM に接続された仮想ディスクの暗号化/暗号化解除に使われます。 これらの暗号化キーの制御を維持し、その使用を監査することができます。 Azure Active Directory サービス プリンシパルは、VM の電源がオンまたはオフになったときにこれらの暗号化キーを発行するためのセキュリティで保護されたメカニズムを提供します。

Key Vault と SSH キー

シークレットと証明書は、リソースとしてモデル化して Key Vault で提供することができます。 Windows VM のキー コンテナーは Azure PowerShell で、Linux VM のキー コンテナーは Azure CLI で作成できます。 暗号化用のキーを作成することもできます。

キー コンテナー アクセス ポリシーでは、キー、シークレット、証明書へのアクセス許可を個別に付与します。 たとえば、ユーザーにキーのみのアクセス権を付与し、シークレットのアクセス権は付与しないようにすることができます。 ただし、キー、シークレット、または証明書へのアクセス権は、コンテナー レベルで付与されます。 つまり、キー コンテナー アクセス ポリシーでは、オブジェクト レベルのアクセス許可がサポートされません。

VM に接続するときは、公開キー暗号化を使用して、より安全な方法で VM にサインインできるようにする必要があります。 このプロセスでは、ユーザー名とパスワードを使用する代わりに、SSH (Secure Shell) コマンドを使用して公開キーと秘密キーを交換して、自分を認証します。 パスワードは、ブルートフォース攻撃に対して脆弱です。これは、特に Web サーバーなどのインターネットに接続された仮想マシンに当てはまります。 Secure Shell (SSH) キー ペアを使用すると、認証に SSH キーを使う Linux VM を作成でき、サインインするためのパスワードが不要になります。 Windows VM から SSH キーを使って Linux VM に接続することもできます。

Azure リソースのマネージド ID

クラウド アプリケーションの構築時における一般的な課題は、クラウド サービスへの認証用のコードで資格情報をどのように管理するかです。 資格情報を安全に保つことは重要な課題です。 資格情報は開発者のワークステーションに表示されないこと、またソース管理にチェックインされないことが理想です。 資格情報やシークレットなど、各種キーを安全に保管する手段としては Azure Key Vault がありますが、それらを取得するためには、コードから Key Vault に対して認証を行わなければなりません。

この問題を解決するのが、Azure Active Directory (Azure AD) の Azure リソースのマネージド ID 機能です。 Azure AD で自動的に管理される ID を Azure サービスに提供する機能となります。 この ID を使用すれば、コードに資格情報を追加しなくても、Azure AD の認証をサポートするさまざまなサービス (Key Vault を含む) に対して認証を行うことができます。 VM 上で実行されているコードは、VM 内からのみアクセス可能な次の 2 つのエンドポイントにトークンを要求できます。 このサービスの詳細については、Azure リソースのマネージド ID の概要ページを確認してください。

ポリシー

社内の Windows VMLinux VM には、Azure ポリシーを使って必要な動作を定義することができます。 ポリシーを使用すると、さまざまな習慣や規則を企業全体に適用できます。 望ましい行動を強制することによって、組織の成功に貢献しつつ、リスクを軽減することができます。

Azure ロールベースのアクセス制御

Azure ロールベースのアクセス制御 (Azure RBAC) を使用すると、チーム内の職務を分離し、VM 上のユーザーに自分の職務を実行するために必要な量のアクセスのみを付与できます。 すべてのユーザーに VM への無制限のアクセス許可を付与するのではなく、特定の操作のみを許可することができます。 VM のアクセス制御は、Azure Portal で構成できるほか、Azure CLI または Azure PowerShell を使って構成することもできます。

次のステップ

  • Microsoft Defender for Cloud を使用して Linux または Windows の仮想マシンのセキュリティを監視する手順を確認します。