Azure Kubernetes サービス (AKS) でのコンテナー イメージの管理とセキュリティに関するベスト プラクティス

Azure Kubernetes Service (AKS) でアプリケーションを開発および実行するときは、コンテナーとコンテナー イメージのセキュリティが主要な優先事項となります。 古い基本イメージ、またはパッチ未適用のアプリケーション ランタイムを含むコンテナーは、セキュリティ上のリスクおよび攻撃ベクトルをもたらす恐れがあります。 スキャンおよび修復のツールを統合してコンテナー内のビルドおよびランタイムで実行すると、リスクを最小限に抑えられます。 脆弱性または古い基本イメージについて検知するのが早いほど、アプリケーションの安全性は高まります。

この記事において "コンテナー" とは、コンテナー レジストリに格納されているコンテナー イメージと、実行中のコンテナーの両方を意味します。

この記事では、AKS でコンテナーをセキュリティで保護する方法について説明します。 学習内容は次のとおりです。

  • イメージの脆弱性をスキャンして修復する。
  • 基本イメージの更新時にコンテナー イメージを自動的にトリガーおよび再デプロイする。

イメージおよびランタイムをセキュリティで保護する

ベスト プラクティスのガイダンス

  • コンテナー イメージをスキャンして脆弱性を探す。
  • 検証済みのイメージのみをデプロイする。
  • 基本イメージとアプリケーション ランタイムを定期的に更新する。
  • AKS クラスターでワークロードを再デプロイする。

コンテナーベースのワークロードを採用する場合は、独自のアプリケーションをビルドするのに使用するイメージとランタイムのセキュリティを検証する必要があります。 デプロイにセキュリティの脆弱性が生じるのを回避するために、次のベスト プラクティスを使用できます。

  • TwistlockAqua などのツールを使用してコンテナー イメージをスキャンするプロセスをご利用のデプロイ ワークフローに含める。
  • 検証済みのイメージのみをデプロイできるようにする。

Scan and remediate container images, validate, and deploy

たとえば、継続的統合と継続的デプロイ (CI/CD) パイプラインを使用して、イメージのスキャン、検証、およびデプロイを自動化することができます。 Azure Container Registry には、これらの脆弱性スキャン機能が含まれます。

基本イメージの更新時に新しいイメージを自動的にビルドする

ベスト プラクティスのガイダンス

アプリケーション イメージに基本イメージを使用する際には、基本イメージの更新時にオートメーションを使用して新しいイメージをビルドします。 通常、更新された基本イメージにはセキュリティ修正プログラムが含まれているので、すべてのダウンストリーム アプリケーション コンテナー イメージを更新します。

基本イメージが更新されるたびに、すべてのダウンストリーム コンテナー イメージも更新する必要があります。 このビルド プロセスを、Azure Pipelines や Jenkins などの検証およびデプロイのパイプラインに統合します。 これらのパイプラインにより、更新されたベース イメージで引き続きアプリケーションが確実に実行されます。 アプリケーション コンテナー イメージが検証されたら、セキュリティで保護された最新のイメージを実行するように AKS デプロイを更新できます。

また、Azure Container Registry タスクは、基本イメージの更新時にコンテナー イメージを自動的に更新できます。 この機能を使用すると、いくつかの基本イメージをビルドし、それらをバグおよびセキュリティ修正プログラムを適用して更新された状態に維持することができます。

基本イメージの更新の詳細については、「Automate image builds on base image update with Azure Container Registry Tasks」 (Azure Container Registry タスクを使用して基本イメージの更新時のコンテナー イメージ ビルドを自動化する) を参照してください。

次のステップ

この記事では、コンテナーをセキュリティで保護する方法について説明しました。 これらの領域のいくつかを実装する場合は、次の記事を参照してください。