本連載では、コンテナ/Kubernetesを活用した業務システムを開発・運用するエンジニアに向けて、Kubernetesセキュリティの基礎知識、「Microsoft Azure」を使ったクラウドでのKubernetesセキュリティ対策のポイントを紹介しています。前回に引き続き今回も、Kubernetesの監視と監査について説明します。

Microsoft Defender for Containers の活用

第10回の監視のポイントでも説明した通り、API のやりとりを追跡し不審な動きを検知することは Kubernetes の監視や監査において重要な方法です。しかし、大量のログから不審な動きを検知し、さらにその環境を自前で構築・運用することは難しいのが現実です。Microsoft Defender for Containers を利用すると、不審な挙動をしているコンテナや脆弱性のあるイメージを検知することができます。

また、Azure の提供しているコンテナレジストリサービスの Azure Container Registry(ACR) に対してイメージのスキャンを行い、イメージの脆弱性を評価する機能もあります。Azure Kubernetes Service(AKS) を利用する際は、機能的な監視だけでなく、Microsoft Defender for Containers を利用しセキュリティ監視することをお勧めします。

Microsoft Defender for Containers の基本と展開方法

Microsoft Defender for Containers は、Microsoft Defender for Cloud の機能の一つです。Microsoft Defender for Containers を有効にするためには、Microsoft Defender for Cloud を利用していることが前提です。

Microsoft Defender for Containers は、サブスクリプション単位で有効化を行います。機能を有効にするとサブスクリプション配下のすべての AKS クラスタや、ACR に対して有効になります。従って、特定の環境では有効にしたくない場合等では、別のサブスクリプションに AKS や ACR を展開します。

Microsoft Defender for Containers を有効化する方法は以下のドキュメントを参照してください。

Microsoft Defender for Containers の有効化 ※Defender プロファイルは 2022/7/17 現在プレビューの機能です。

Microsoft Defender for Containersには、大きく2つの機能があります。1つはクラスタの保護、もう1つはコンテナレジストリに対する脆弱性評価です。以前は、それぞれ別の機能として存在していましたが、現在は Microsoft Defender for Containers として1つの機能に集約されました。

Microsoft Defender for Containersは、コントロールプレーンから収集されたイベントとワーカーノードに展開された Pod から収集されたイベント、コンテナ レジストリの情報を収集し、それぞれを評価して脆弱性を検知できます。

補足:Microsoft Defender for Containers のアンチマルウェア機能

Kubernetes の実行環境のセキュリティを検討する際、アンチマルウェア機能の実装を検討されるケースがあります。いわゆる定義ファイルと展開されているファイルのパターンマッチングを行い、マルウェアかどうかを判別する機能です。2022年7月17日時点では、Microsoft Defender for Containers にアンチマルウェア機能はないため、このような機能が必要な場合はサードパーティーの機能を利用する必要があります。