AWS FargateをPrisma Cloudで保護する方法とは?
はじめに
こんにちは、SB C&Sの鈴木です。
Prisma Cloudには、CWPPという「仮想マシン、コンテナ、サーバーレスを保護する機能」がありますが、この機能でAWS Fargate(以下、Fargate)も保護することが可能となっています。
こちらの記事にも記載しました通り、「Fargateを保護する製品はあるか?」というご質問をいただく機会が増えてきておりますので、本記事ではFargateを保護することが可能なPrisma CloudのCWPP機能の説明とFargateを保護するまでの設定手順を説明していきます。
目次
- Prima Cloudのサーバレス環境保護について
- Prisma CloudでFargateを保護する仕組みとは?
- Fargate保護の設定手順
Prima Cloudのサーバレス環境保護について
Prisma CloudのCWPPの機能では、Kubernetes、Docker、AWS Lambda、Fargateなど様々なコンテナ、サーバーレス環境を保護することができます。
これらの環境を保護する際、Defenderと呼ばれるエージェントを保護対象の環境にデプロイすることでリアルタイムな監視や脆弱性のスキャンが可能となります。
タイトルにもある通り、今回の記事ではFargateの保護について触れていくのですが、Fargateを保護した際は以下のようなセキュリティを実装することができます。
- ランタイム防御
- 脆弱性検出および保護
- コンプラアンスに準拠しているかをチェック
- WAASによるOWASP Top 10やボット、DoS攻撃に対応
- 主要なシステムエラーなどのイベントを可視化する
これらの機能は⼀時的な利用やオートスケールにも対応しています。
Prisma Cloudのコンソール画面から、下記のように情報を可視化することができます。
1.コンテナイメージの脆弱性スキャン
Fargateのタスクに含まれる脆弱性をスキャンし、その状況をコンソール画面から確認することが可能。
2.コンプライアンススキャン
定義済みルールセットを用いて、コンテナイメージのコンプライアンス対応状況を確認することが可能。
3.ランタイム防御
コンテナが定義された通りの動作をしているか監視し、ポリシー違反となる動作を検出した場合に通知、自動対処を行う。
4.フォレンジック
プロセスやネットワークの詳細な観測結果が自動的に収集され、確認することが可能。
Prisma CloudでFargateを保護する仕組みとは?
Prisma CloudでFargateを保護したい場合には、「App-Embedded Defenders for Fargate」というDefenderをデプロイします。
「App-Embedded Defenders for Fargate」は、Fargate専用のDefenderとなっており、保護対象のクラスターにデプロイすることで、Prisma Cloudコンソールとの通信や、対象コンテナを保護する機能です。
いわゆるサイドカーコンテナとして、クラスタ上で動作しFargateタスクを監視する役割を担います。
Fargate保護の設定手順
それではここからは、こちらの記事で作成した「ECSとFargateを組み合わせた環境」にDefenderのインストールをしていく手順を解説していきます。Prisma Cloudのコンソール画面とAWSのコンソール画面を行き来しながら設定しますのでご注意ください。
1.Prisma Cloudのコンソール画面にログインし、「Compute > Manage > Defenders」を選択します。
2.画面上部のタブで「Deploy > Defenders」を選択し、「Single Defender」をクリックします。
3.「③Choose the Defender type」にて、「Container Defender - App-Embedded」を選択し、「④Deploy App-Embedded Defender」配下の「Deployment type」にて「Fargate task」を選択します。
4.AWSのコンソール画面に移り、Amazon ECSの画面を表示し「タスク定義」メニューを選択して、 保護したいタスク定義をクリックします。
5.遷移した画⾯で再度、保護したいタスク定義をクリックします。
6.「JSON」タブをクリックし、表示されたJSONソースを全て選択し、コピーします。
7.Prisma Cloudのコンソール画面に戻り、「Insert task definition」の欄に、コピーしたJSONソースをペーストし「Generate protected task」をクリックします。
8.「Insert task definition」の右側のボックスに、アップデートされたタスク定義が表示されますので、右下の「Copy」をクリックします。
9.AWSのコンソール画面に移り、Amazon ECSの画面のタスク定義Revisionの画⾯にて、手順5で選択したRevisionにチェックを⼊れ、「新しいリビジョンの作成」をクリックします。
10.画⾯を最下部までスクロールダウンし、「JSONによる設定」をクリックします。
11.入力されている内容を削除し、Prisma cloudでコピーしたJSONソースをペースト。「保存」をクリックします。
注意:保存時に下記のようなエラーが出る場合があります。ECS + Fargateのタスク定義では、特定のエントリーのみ記述可能なため、それ以外のエントリーがあれば削除する必要があります。
以下手順1~3はエラー発生時の手順です。
1.JSONを生成するサイトなどを利用し、Prisma Cloudが⽣成したJSONソースを整形します。以下のように第1レベルのインデントのみを表⽰できるようにしてください。
2.第1レベルのエントリーのうち、以下以外のエントリーは削除してください。
- "containerDefinitions"
- "cpu"
- "executionRoleArn"
- "family"
- "inferenceAccelerators"
- "ipcMode"
- "memory"
- "networkMode"
- "pidMode"
- "placementConstraints"
- "proxyConfiguration"
- "requiresCompatibilities"
- "tags"
- "taskRoleArn"
- "volumes"
3.不要なエントリーを削除したJSONソースを、手順11の画面にペーストし、「保存」をクリックします。
エラー発生時の手順はここまでです。まだエラーが発生する場合には、再度エントリーの内容をご確認ください。
12.正常に保存できたことを確認し、スクロールダウンして、「作成」をクリックします。
13.タスク定義の画⾯をスクロールダウンし、「コンテナの定義」の項⽬にて、「TwistlockDefender」が追加されたことを確認します。
14.画⾯をスクロールアップし、「アクション > タスクの実⾏」を選択します。
15.タスクの実行画面にて、以下の値を選択し「タスクの実行」をクリックします。
- 起動タイプ:Fargate
- オペレーティングシステムファミリー:Linux
- クラスターVPC:任意
- サブネット:任意
16.タスクが正常に実⾏されたことを確認します。
17.Prisma Cloudのコンソール画面にて、「Compute > Manage > Defenders」を選択します。
18.画面上部のタブで「Manage > Defenders」を選択します。
19.Defenderが登録されており、「Connected for ~」と表示されていれば完了です。
おわりに
いかがでしたでしょうか。
コンソール画面で簡単に作業を完結でき、手軽に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
この記事の著者:鈴木孝崇
テクニカルサポート、サーバー運用保守、RPA開発、パブリッククラウドのプリセールスを経て、現在ゼロトラスト領域のソリューションSEとして活動中。
PMPやGoogle Professional Cloud Architectなど20個の資格を取得。
CSPM、CWPPのプロフェッショナルを目指して、日々奮闘しています。
DevOps Hubのアカウントをフォローして
更新情報を受け取る
-
Like on Facebook
-
Like on Feedly