SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

AWS FargateをPrisma Cloudで保護する方法とは?

ゼロトラスト
2022.05.18

はじめに

こんにちは、SB C&Sの鈴木です。

Prisma Cloudには、CWPPという「仮想マシン、コンテナ、サーバーレスを保護する機能」がありますが、この機能でAWS Fargate(以下、Fargate)も保護することが可能となっています。

こちらの記事にも記載しました通り、「Fargateを保護する製品はあるか?」というご質問をいただく機会が増えてきておりますので、本記事ではFargateを保護することが可能なPrisma CloudのCWPP機能の説明とFargateを保護するまでの設定手順を説明していきます。

※Fargateについてはこちらの記事をご覧ください。

目次

  1. Prima Cloudのサーバレス環境保護について
  2. Prisma CloudでFargateを保護する仕組みとは?
  3. Fargate保護の設定手順

Prima Cloudのサーバレス環境保護について

Prisma CloudのCWPPの機能では、Kubernetes、Docker、AWS Lambda、Fargateなど様々なコンテナ、サーバーレス環境を保護することができます。

これらの環境を保護する際、Defenderと呼ばれるエージェントを保護対象の環境にデプロイすることでリアルタイムな監視や脆弱性のスキャンが可能となります。

タイトルにもある通り、今回の記事ではFargateの保護について触れていくのですが、Fargateを保護した際は以下のようなセキュリティを実装することができます。

  • ランタイム防御
  • 脆弱性検出および保護
  • コンプラアンスに準拠しているかをチェック
  • WAASによるOWASP Top 10やボット、DoS攻撃に対応
  • 主要なイベントをロギング、可視化する

これらの機能は⼀時的な利用やオートスケールにも対応しています。

Prisma Cloudのコンソール画面から、下記のように情報を可視化することができます。

1、コンテナイメージの脆弱性スキャン

Fargateのタスクに含まれる脆弱性をスキャンし、その状況をコンソール画面から確認することが可能。

fargate prisma_監視画面1.png

2、コンプライアンススキャン

定義済みルールセットを用いて、コンテナイメージのコンプライアンス対応状況を確認することが可能。

fargate prisma_監視画面2.png
3、ランタイム防御

コンテナが定義された通りの動作をしているか監視し、ポリシー違反となる動作を検出した場合に通知、自動対処を行う。

fargate prisma_監視画面3.png

4、フォレンジック

プロセスやネットワークの詳細な観測結果が自動的に収集され、確認することが可能。

fargate prisma_監視画面4.png

Prisma CloudでFargateを保護する仕組みとは?

Prisma CloudでFatgateを保護したい場合には、「App-Embedded Defenders for Fargate」というDefenderをデプロイします。

「App-Embedded Defenders for Fargate」は、Fargate専用のDefenderとなっており、保護対象のクラスターにデプロイすることで、Prisma Cloudコンソールとの通信や、対象コンテナを保護する機能です。

いわゆるサイドカーコンテナとして、クラスタ上で動作しFargateタスクを監視する役割を担います。

fargate prisma_prisma構成.png

 ※上記画像の「TW」は、Palo Alto Networks社が買収したTwistlockの略となっています。Twistlockとはコンテナセキュリティを提供する機能およびメーカー名です。Palo Alto社が買収した後、コンテナセキュリティ機能がPrisma Cloudに統合されたのですが、Twistlockが提供していたDefender名に「TW」が使われていて、現在もその名称が残っています。

Fargate保護の設定手順

それではここからは、こちらの記事で作成した「ECSとFargateを組み合わせた環境」にDefenderのインストールをしていく手順を解説していきます。Prisma Cloudのコンソール画面とAWSのコンソール画面を行き来しながら設定しますのでご注意ください。

1.Prisma Cloudのコンソール画面にログインし、「Compute > Manage > Defenders」を選択します。

fargate prisma_設定手順_追加1.png

2.画面上部のタブで「Deploy > Defenders」を選択し、「Single Defender」をクリックします。

fargate prisma_設定手順5.png

3.「③Choose the Defender type」にて、「Container Defender - App-Embedded」を選択し、「④Deploy App-Embedded Defender」配下の「Deployment type」にて「Fargate task」を選択します。

fargate prisma_設定手順6.png

4.AWSのコンソール画面に移り、Amazon ECSの画面を表示し「タスク定義」メニューを選択して、 保護したいタスク定義をクリックします。

fargate prisma_設定手順7.png

 

5.遷移した画⾯で再度、保護したいタスク定義をクリックします。
fargate prisma_設定手順8.png

 

6.「JSON」タブをクリックし、表示されたJSONソースを全て選択し、コピーします。

 fargate prisma_設定手順9.png

 

7.Prisma Cloudのコンソール画面に戻り、「Insert task definition」の欄に、コピーしたJSONソースをペーストし「Generate protected task」をクリックします。

fargate prisma_設定手順10.png

 

8.「Insert task definition」の右側のボックスに、アップデートされたタスク定義が表示されますので、右下の「Copy」をクリックします。

fargate prisma_設定手順11.png

 

9.AWSのコンソール画面に移り、Amazon ECSの画面のタスク定義 Revisionの画⾯にて、手順5で選択したRevisionにチェックを⼊れ、「新しいリビジョンの作成」をクリックします。

fargate prisma_設定手順12.png

 

10.画⾯を最下部までスクロールダウンし、「JSONによる設定」をクリックします。

fargate prisma_設定手順13.png

 

11.入力されている内容を削除し、Prisma cloudでコピーしたJSONソースをペースト。「保存」をクリックします。

fargate prisma_設定手順14.png


注意:保存時に下記のようなエラーが出る場合があります。ECS + Fargateのタスク定義では、特定のエントリーのみ記述可能なため、それ以外のエントリーがあれば削除する必要があります。

fargate prisma_設定手順15.png

以下手順1~3はエラー発生時の手順です。

1.JSONを生成するサイトなどを利用し、Prisma Cloudが⽣成したJSONソースを整形します。以下のように第1レベルのインデントのみを表⽰できるようにしてください。

fargate prisma_設定手順16.png

2.第1レベルのエントリーのうち、以下以外のエントリーは削除してください。

  • "containerDefinitions"
  • "cpu"
  • "executionRoleArn"
  • "family"
  • "inferenceAccelerators"
  • "ipcMode"
  • "memory"
  • "networkMode"
  • "pidMode"
  • "placementConstraints"
  • "proxyConfiguration"
  • "requiresCompatibilities"
  • "tags"
  • "taskRoleArn"
  • "volumes"

3.不要なエントリーを削除したJSONソースを、手順11の画面にペーストし、「保存」をクリックします。

エラー発生時の手順はここまでです。まだエラーが発生する場合には、再度エントリーの内容をご確認ください。


12.正常に保存できたことを確認し、スクロールダウンして、「作成」をクリックします。

fargate prisma_設定手順17.png

 

13.タスク定義の画⾯をスクロールダウンし、「コンテナの定義」の項⽬にて、「TwistlockDefender」が追加されたことを確認します。

fargate prisma_設定手順18.png

 
14.画⾯をスクロールアップし、「アクション > タスクの実⾏」を選択します。
fargate prisma_設定手順19.png

 

15.タスクの実行画面にて、以下の値を選択し「タスクの実行」をクリックします。

  • 起動タイプ:Fargate
  • オペレーティングシステムファミリー:Linux
  • クラスターVPC:任意
  • サブネット:任意

fargate prisma_設定手順20.png

fargate prisma_設定手順21.png

 

16.タスクが正常に実⾏されたことを確認します。

fargate prisma_設定手順22.png

 

17.Prisma Cloudのコンソール画面にて、「Compute > Manage > Defenders」を選択します。

fargate prisma_設定手順_追加1.png

 

18.画面上部のタブで「Manage > Defenders」を選択します。

fargate prisma_設定手順_追加2.png

 

19.Defenderが登録されており、「Connected for ~」と表示されていれば完了です。

fargate prisma_設定手順23.png

おわりに

いかがでしたでしょうか。
コンソール画面で簡単に作業を完結でき、手軽にFargateを保護することが可能になっています。

今後、Fargateのセキュリティをご検討されることがございましたら、お気軽にゼロトラストオンライン相談フォームまでお問い合わせくださいませ。

ゼロトラストオンライン相談フォーム
お問い合わせ先:SBCASGRP-cloudsec@g.softbank.co.jp

※引用元の記事
Securing AWS Fargate Tasks from Vulnerabilities and Web App Attacks
Prisma Cloud Document:App-Embedded Defender for Fargate

「ゼロトラスト」に関して

著者紹介

SB C&S株式会社
テクニカルマーケティングセンター
鈴木 孝崇

テクニカルサポート、サーバー運用保守、RPA開発、パブリッククラウドのプリセールスを経て、現在ゼロトラスト領域のソリューションSEとして活動中。
PMP、Prisma Certified Cloud Security Engineer、Google Professional Cloud Architectなど20個の資格を取得。
CSPM、CWPPのプロフェッショナルを目指して、日々奮闘しています。