fbpx

AWS Fargateコンテナをランタイムで保護する #aqua #コンテナ #セキュリティ #aws #fargate

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

New call-to-action
本ブログは「Aqua Security」社の技術ブログで2023年2月14日に公開された「 Protecting AWS Fargate Containers at Runtime 」の日本語翻訳です。

AWS Fargateコンテナをランタイムで保護する


AWS Fargate のような CaaS(Containers as a Service)は、DevOps チームが複雑なアプリケーションを大規模に構築、展開するための貴重なメカニズムであることはよく知られています。インフラ管理やセキュリティの必要性を排除することで、ユーザは AWS Fargate を使用して開発コストの削減も可能です。

しかし、責任共有モデルに基づいて、ユーザはアプリケーションのセキュリティに責任があるため、コンテナ上で実行されるコードとワークロードの安全性を確保する必要があります。このブログ記事では、AWS Fargate の利点、それがもたらすセキュリティ上の課題、そして Aqua Cloud Security Platform が AWS Fargate コンテナをそのライフサイクルを通してどのように保護できるかを説明します。

AWS Fargateとは?

AWS Fargate は、AWS クラウドのマネージドコンテナサービスである Elastic Kubernetes Service(EKS)Elastic Container Service(ECS) 上にコンテナをデプロイするための方法です。Fargate は、ホストインフラのセットアップと管理に必要な作業のほとんどを自動化し、サーバのプロビジョニングや管理せずにコンテナを実行できるようにします。フルマネージドサービスなので、すべての設定を代行してくれます。コスト効率の良い方法でコンテナを実行できるため、企業はクラウド上でコンテナを大規模に使用し、アプリケーション全体で高可用性を維持することが容易になります。AWS は Fargate を「サーバレス・コンピュート・エンジン」と呼んでおり、AWS クラウドでコンテナを展開する際にサーバを管理する必要がありません。

AWS Fargateは何を提供するのか?

Fargate は、多くのチームにとってコンテナをホストするためのインフラストラクチャを管理するという課題を解決します。最新のコンテナツールは、コンテナ化されたアプリケーションのデプロイと管理に関連する悩みの種のほとんどを解決しています。単なるコンテナプラットフォームは、ホストインフラのセットアップと、負荷の変動に応じたインフラのスケールアップ/スケールダウンを提供しません。Fargate では、基盤となるインフラストラクチャを気にすることなくコンテナをデプロイでき、EKS または ECS にコンテナイメージをロードするだけで、それらを可能にします。

AWS Fargate は、AWS クラウドでコンテナを実行するために必要な労力を最小限に抑えるための効果的な方法です。しかし、重要なトレードオフは、ホストインフラストラクチャとセキュリティに対するコントロールです。

DevOpsプロセスへのセキュリティの組み込み

ガートナー社は、2022年までにグローバル企業の 75% 以上がコンテナ化されたアプリケーションを本番稼動させると予測しています。AWS Fargate は、コンテナのデプロイとコンピュート/ストレージの管理を簡素化します。これにより、サーバや AWS EC2 インスタンスのクラスタを管理することなくコンテナを実行し、アプリケーションの設計と構築に集中できるという大きな利点が得られます。

これはつまり、スケーリングやパッチのインストールなどの重要なインフラの保守作業が、クラウドベンダー側によって行われることを意味します。ただし、コンテナのネットワーキングとセキュリティは、あくまでもユーザが管理するものです。アプリケーションロジック、コード、データを含むコードの安全な実行に対する最終的な責任は、依然として開発者にあります。AWS Fargate のような CaaS プラットフォームは、単にコンテナ環境を管理するために存在します。AWS はネットワークとセキュリティの機能を提供していますが、今日のような複雑なランタイム環境では、依然としてセキュリティの課題が残されています。

Fargateコンテナセキュリティの統合と自動化、および攻撃のブロック

コンテナ化された環境は、開発環境からクラウド環境まで、ライフサイクル全体にわたってセキュリティが確保されている必要があります。 強固なセキュリティ戦略は、悪意のある活動を防ぐのに役立ち、不正な活動を監視しながら、ポリシーとプロセスを統合・自動化するためのセーフガードを実装することから始まります。コンテナのセキュリティは、ビルドパイプラインやコンテナイメージの保護から、コンテナランタイムやアプリケーション層の保護まで、開発ライフサイクル全体でセキュリティを確保する必要があるという点で、従来のセキュリティに比べて複雑です。さらに、コンテナ化されたアプリケーションの構築とリリースに使用される継続的デリバリーライフサイクルの一部として、コンテナセキュリティは完全に自動化されて、ソフトウェア開発ライフサイクル(SDLC)の全段階に組み込まれる必要があります。

AWS のインフラとサービスに深く統合されたこのような保護機能は、ソフトウェアサプライチェーンセキュリティ、脆弱性管理、クラウドセキュリティポスチャ管理(CSPM)Kubernetes セキュリティポスチャ管理(KSPM)クラウドワークロード保護プラットフォーム(CWPP)などをカバーする、Aqua の総合クラウドネイティブアプリケーション保護プラットフォーム(CNAPP)の一部として提供しています。

Aqua は、以下のような主要機能を使用して Fargate コンテナを保護することができます。

DevSecOpsの自動化

  • DevOps パイプラインの早い段階でシフトレフトを実践し、ソースコード管理(SCM)、継続的インテグレーション/継続的デリバリー(CI/CD)ツール、イメージ登録と統合することで、サプライチェーンセキュリティを向上し、以下のような問題をスキャンして検出可能です。
    • 脆弱性
    • マルウェア
    • 設定の誤り
    • 機密データ
    • 悪意のある行動 - 動的脅威解析の使用

ポリシーとプロセスの自動化

  • Custom Assurance Policy やセキュリティゲートを実装し、非準拠のイメージがビルドされるのを防止します。
  • Dynamic Thread Analysis により、サンドボックス環境にてレジストリまたは本番環境へプッシュする前に、ビルドしたイメージの動的解析を実行します。
  • 以下の Custom Runtime Policy を実装します。
    • 非準拠および未登録の(不正な)イメージがデプロイされるのを防止します。
    • コンプライアンスのために、ネットワークの名のセグメンテーションを適用し、被害範囲を最小化します。
    • Drift Prevention を使用してコンテナの不変性を確保し、すべてのコンテナプロセスを停止することなく、不正な活動やゼロデイ攻撃をブロックします。
  • エージェントレスのアプローチでは提供されないリアルタイムの可視性と保護を確保し、監査と施行を確実なものにします。

コンプライアンス規制の自動化

  • ファイル整合性監視と変更内容の完全な監査証跡を取得します。
  • PCI-DSS、HIPAA、EU GDPR、NIST フレームワークに対応したポリシーをすぐに利用可能です。CIS のような業界標準のベンチマークレポートが組み込まれています。コンテナに対する高度なフォレンジックを提供し、インシデント対応を支援します。
  • スキャン結果、ポリシー変更、修復アクション、シークレットローテーション、ランタイムイベント、ユーザログインの履歴を取得します。

Fargateのために作られたセキュリティ


実行時に CaaS 環境を保護するためには、ホスト OS へのアクセスやプロセスを監視するだけのエージェントレスのクラウドワークロード保護アプローチは有効ではありません。

これら独特なデプロイ方法とセキュリティの要件に対処するため、Aqua は Fargate 上の ECS と EKS の両方をサポートし、Graviton2 プロセッサ上の Fargate をサポートする Fargate 専用に作られた技術を提供します。

Aqua は、Fargate コンテナのためのランタイムセキュリティを提供できます。

  • サイドカーアーキテクチャ - Aqua MicroEnforcer は、保護対象のアプリケーションコンテナに接続されるサイドカーコンテナとしてデプロイも可能です。各イメージには、イメージに関連付けられたイメージプロファイルを記述した json ファイルを含めることもできます。イメージに基づくコンテナがデプロイされると、MicroEnforcer はイメージプロファイルで指定されたコントロールに従ってセキュリティ保護を適用します。
  • サイドカーアーキテクチャ - Aqua MicroEnforcer は、保護対象のアプリケーションコンテナに接続されるサイドカーコンテナとしてデプロイも可能です。サイドカーは、該当するアプリケーションコンテナへ適用されるランタイムセキュリティポリシーに関連する情報を Aqua Server から受信します。
  • Mutating Admission Controller を使用したオートインジェクション(EKS on Fargate のみ)を提供します。Aqua PodEnforcer のオートインジェクションは、Aqua Kube Enforcer の Mutating Admission Controller コンポーネントと統合されており、定義された Assurance Policy に基づいて、Pod のマニフェストを変更します。

Aqua は、CaaS 環境で実行中のコンテナを保護でき、コンテナがどこにデプロイされていても、開発から実行までのライフサイクル全体を通してコンテナを保護します。Aqua のランタイム保護と Fargate コンテナセキュリティの詳細については、AWS コンテナスペシャリストの Steven Follis 氏と共同開催したウェビナー「Securing Container Workloads on AWS Fargate: A How To Session.」をご覧ください。

New call-to-action
 

New call-to-action

新規CTA