Microsoft Defender for Containersの推奨事項とアラート

また、Microsoft Defender for Containers のクラスタ保護機能で検知できる項目として、推奨事項とアラートの2つがあります。推奨事項は、クラスタの設定に対して AKS の推奨事項に反している項目がある場合に、推奨を表示します。アラートは、悪意のあるアクティビティや通常のアクティビティと違う挙動を検知した結果を警告します。それぞれ、推奨事項とアラートは以下のドキュメントで公開されています。

セキュリティの推奨事項 - リファレンス ガイド | コンテナーの推奨事項 ※ACR に対する推奨事項も含まれます。

セキュリティ アラート - リファレンス ガイド | コンテナーのアラート - Kubernetes クラスター

推奨事項

では、ポイントとなる推奨事項を見てみましょう。以下は、Microsoft Defender for Containers の推奨事項の画面です。[状態] が [完了] となっている項目は対処済みの項目、[未割り当て] となっている項目は対処が必要な項目です。それぞれの項目をクリックすると詳細が表示されます。

Kubernetes API サーバーは制限付きアクセスで構成する必要がある

この推奨事項は、API サーバーへのアクセス元を制限していないことから検出される項目です。API サーバーへのアクセスは、Kubernetes の認証によってアクセス制御されていますが、これは逆に認証情報が流出した場合、ネットワーク的にどこからでもアクセスできてしまう(クラスタに対する kubectl コマンドの実行がどこからでも実行できてしまう)ことを意味します。

AKS の機能として、接続元のIPアドレスの指定やプライベート クラスターの設定ができるため、この推奨事項が検出された場合はアクセス制御を行うことを検討してください。以下は、接続元の IP アドレスを制限する方法です。

Azure Kubernetes Service (AKS) で許可された IP アドレス範囲を使用して API サーバーへのアクセスをセキュリティで保護する

コンテナーの CPU とメモリの制限を強制する必要がある

この推奨事項は、コンテナに Limits や Requests による CPU・メモリの制限が設定されていないことで検出される項目です。以下の画面ショットのように対象の Pod の一覧が確認できます。

アプリケーションの予期しない動作や攻撃によってその影響がクラスタ全体へ及ばないようにするためにも、Limits や Requests は設定することを検討してください。

Azure Kubernetes Service (AKS) でリソースを管理するアプリケーション開発者のベスト プラクティス | ポッドのリソースの要求と制限を定義する

Kubernetes サービスの診断ログを有効にする必要がある

この推奨事項は、AKS の診断設定が行われていないことから検出される項目です。診断設定でエクスポートの設定を行うと主にコントロールプレーンのコンポーネントから出力されるログを Log Analytics やストレージ アカウントに出力することができます。インシデントの発生やトラブルシューティングで活用するためにも、これらの診断設定を行うことを検討してください。

ただし、コンポーネントによっては大量のログを出力するものがあり、それらのログをすべてLog Analyticsに出力すると膨大な課金が発生することがあります。そのようなログは取得しないもしくはストレージ アカウントへの出力も検討する必要があります。以下のドキュメントに推奨の設定方法の記述があります。

Azure Monitor のコンテナー正常性機能を使用して Azure Kubernetes Service (AKS) を監視する | リソース ログを収集する

コンテナー レジストリ イメージでは脆弱性の検出結果が解決されている必要がある

この推奨事項は、ACR のレジストリ上に存在するイメージで脆弱性があることによって検出される項目です。コンテナイメージに内包されているライブラリやアプリケーションに脆弱性がある場合にその内容や重要度がリストアップされます。