Prisma Cloudは、クラウド環境のセキュリティとコンプライアンスを一元管理するツールで、リアルタイムの脅威検出やリソースの監視が可能です。今回は、実際にGoogle Cloud環境(プロジェクト)をPrisma Cloudに接続してみました。
作業する前に
まずは接続する前に接続方法や前提条件の確認から行います。
接続パターン
Azure環境をPrisma Cloudに接続するには、以下の2つのパターンがあります。
1 | 組織 | GCP組織内のすべてのプロジェクトをPrisma Cloudに接続します。 |
2 | プロジェクト | 単一のプロジェクトのみを接続します。 |
接続方法
Prisma CloudにGoogle Cloud環境を接続するためには、Google Cloud環境側で必要なリソースを作成する必要があります。
以下の方法が利用できます。
1 | Terraform(推奨) | 自動的にPrisma Cloudアプリケーションをセットアップし、プロジェクトへのアクセスを許可します。 |
2 | カスタムロールJSON | 手動でカスタムロールを作成し、Prisma Cloudアプリケーションに必要な権限を付与します。 |
前提条件
サービスアカウントの権限
Prisma CloudがGCPアセットを監視するためには、サービスアカウントに特定の権限を与える必要があります。組織全体での監視を行う場合は、組織のIAMポリシーにロールを割り当てることが必要です。プロジェクト単位での監視も同様に、各プロジェクトのIAMポリシーにロールを設定します。
サービスアカウントに必要な権限は以下の通りです。
- Viewer:基本的な読み取り権限です。
- Prisma Cloud Viewer:クラウドストレージのメタデータを読み取り、IAMポリシーを更新するためのカスタムロールです。
- Compute Security Admin(オプション):自動修正を有効にする場合にのみ必要なロールです。
- Organization Role Viewer(オプション):組織全体のオンボーディングに必要です。単一プロジェクトの場合は不要です。
- Dataflow Admin(オプション):データフローログを圧縮する際場合に使用します。
- Folder Viewer(オプション):GCPフォルダのメタデータをオンボードし、特定のフォルダを選択し(フォルダを含めるか除外するか)、フォルダ階層に基づいてアカウントグループを自動的に作成する場合にのみ必要なオプションの権限です。
GCP APIのレート制限
Prisma CloudからのAPI呼び出しは、オンボーディングしたGCPプロジェクトのクォータを使用します。そのため、レート制限を超えないように注意が必要です。レート制限エラーを回避するためには以下を確認してください。
- 作成するサービスアカウントに serviceusage.services.use の権限を持たせる
- メタデータを取得する監視対象のプロジェクトで主要なGCPサービスAPI※を有効化する
※GCP サービス (appengine.googleapis.com、commender.googleapis.com、sqladmin.googleapis.com、apikeys.googleapis.com、iam.googleapis.com、cloudresourcemanager.googleapis.com、orgpolicy.googleapis.com、cloudasset.googleapis.com、accessapproval.googleapis.com is.com、 essentialcontacts.googleapis.com)
GCP APIの利用
Prisma Cloudは、さまざまなGCP APIからデータを取り込むことができます。オンボーディングをスムーズに行うためには、必要なAPIを事前に有効にしておくことが重要です。
オンボーディングでPrisma Cloudに用意されているTerraformテンプレートを使用する場合、必要なアクセス許可は自動的に有効になります。
手動でカスタムロールを作成してオンボーディングを行う場合、以下のページを参考に必要なAPIを有効化してください。
・GCP 組織とプロジェクトをオンボーディングするための前提条件(https://docs.prismacloud.io/jp/enterprise-edition/content-collections/connect/connect-cloud-accounts/onboard-gcp/prerequisites-to-onboard-gcp)
接続してみる
前提条件等の確認ができたのでここからは実際に接続してみます。
今回はTerraformを使ってGoogle CloudのプロジェクトをPrisma Cloudに接続します。
作業準備
Google Cloud環境(プロジェクト)とPrisma Cloudの接続作業には、以下の準備が必要です。
- プロジェクトIDおよびテナントIDの情報を用意してください。
- ネットワークの監視を行いたい場合はフローログの取得は必要となるため、フローログを保管しているストレージバケットの名前を控えておいてください。
- 接続するプロジェクトに対してPrisma Cloud用のサービスアカウントを追加するため、以下の権限を持っていることを確認してください。
・サービスアカウント管理者
・サービスアカウントキー管理者
・Project IAM 管理者
・Service Usage 管理者
・ロールの管理者 - Google CloudでCloudShellが使えることを確認してください。
Terraformスクリプトの取得
- Prisma Cloudにログインします。
- 「設定」から「プロバイダ」>「クラウドアカウント」を選択し、「プロバイダーに接続する」>「クラウドアカウント」をクリックします。
- クラウドプロバイダーで「Google Cloud Platform」を選択します。
- 「始めましょう」の画面が表示されたら、範囲で「プロジェクト」を選択します。
- 今回はCSPM機能だけ利用できればよいので、エージェントレスワークロードスキャンやサーバレス機能スキャン、エージェントベースのワークロード保護はチェックを外して次に進みます。
- 「アカウントの設定」画面が表示されたら、以下を入力します。
・プロジェクトID
・アカウント名 ※自由に指定できます
・「修復」機能は利用しないためチェックを外したままにします
・フローログを有効化したいため「フローログのストレージバケット名」にあらかじめ控えておいたストレージバケット名を入力します
・Dataflowを利用した圧縮ログ生成機能は今回は使用する想定がないためチェックを外したままにします - 上記を入力するとTerraformスクリプトがダウンロードできるようになるので、「Terraformスクリプトのダウンロード」をクリックします。
これでTerraformスクリプトのダウンロードは完了です。
Terraformスクリプトの実行
Terraformスクリプトがダウンロードできたので、次はGoogle Cloud環境上でTerraformスクリプトを実行します。
- Google Cloudプロジェクトに必要な権限(上記の「前提条件」を参照)を持ったユーザーでログインします。
今回はオーナー権限でログインしました。 - CloudShellのアイコンをクリックしてCLI画面を表示します。ここからはCloudShell上での作業になります。
- 任意のパスにディレクトリを作成して、先ほどダウンロードしたTerraformスクリプトををアップロードします。
- 作成したディレクトリに移動します。
- 以下のコマンドを実行します。
# terraform init
「Terraform has been successfully initialized!」と表示されればOK - 以下のコマンドを実行します。
# terraform apply - 以下のポップアップが表示されたら「承認」をクリックします。
- 実行するか確認されるので、「yes」と入力します。
- 「Apply complete!」と表示されたら実行完了です。
「Please download the file~」と表示されているjsonファイル名を控えておきます。
- 前項で名前を控えたファイルをダウンロードをダウンロードします。
Prisma Cloudに接続
Terraformスクリプトを実行して必要なリソースをGoogle Cloud環境に設定できたので、次はいよいよPrisma Cloudに接続します。
- Prisma Cloudにログインします。
- Terraformスクリプトの取得でプロジェクトID等を入力したところまで同じ設定をして進みます。
- 「アカウントの設定」画面で、「Terraformスクリプトのダウンロード」の下にある以下の画面で、Terraformスクリプト実行後にダウンロードしたファイルをアップロードします。
- 「アカウントグループ」の項目で任意のアカウントグループを指定します。
今回は事前に作成しておいたGoogle Cloud環境用のものを指定します。 - 「Next」をクリックして次の画面に進むと接続が始まります。
レビューステータスがすべて成功(緑色)になれば接続OKです!
「保存して閉じる」をクリックして完了します。
監視設定してみる
AzureサブスクリプションをPrisma Cloudに接続できたので、監視設定をしていきます。
アラートルールの設定
セキュリティ的によくないクラウド設定等を検知するため、アラートルールを設定していきます。
- Prisma Cloudコンソール画面上部にある「アラート」を選択します。
- 「アラートルールを表示」を選択し、「アラートルールの追加」をクリックします。
- アラートルール名を入力します。
- 「ターゲットを割り当て」の画面に進んだら、監視対象のアカウントグループを指定します。
今回は先ほど接続したAzureサブスクリプションで指定したアカウントグループを選択して次に進みます。 - 「ポリシーを割り当て」の画面に進んだら、監視するポリシーを選択します。
今回は一旦すべてのポリシーで監視してみるので「すべてのポリシーを選択」を有効にして、次に進みます。 - 「概要」画面に進んだら設定した内容を確認し、「保存」します。
これでアラートルールの設定ができました。
アラート検知
アラートルールを設定してしばらくすると、ポリシーに違反したリソースを検知してPrismaCloudコンソール上にアラートが表示されました。
アセット情報
アラートルールによる監視とは別で、Prisma Cloudに接続されたGoogle Cloudプロジェクトのアセット情報がPrisma Cloudコンソール上で確認できます。こちらは追加の設定等は不要で、Prisma Cloudと接続できれば表示されてきます。
Prisma Cloudコンソール画面上部にある「インベントリ」>「アセット」を選択すると確認できます。
検証したPrisma Cloud環境は、Google Cloud以外にもAWSやAzureも接続されています。
「GCP」をクリックすると各サービスごとに表示されます。さらに選択していくと、Google Cloud環境上に存在しているリソース情報の詳細を表示することができます。
まとめ
今回は、Prisma CloudにGoogle Cloudプロジェクト接続してアラート検知するところまで確認できました。
今後も、実用的な情報をお届けできればと思います。
また、当社では、複数クラウド環境の設定状況を自動でチェックし、設定ミスやコンプライアンス違反、異常行動などのリスクを診断するCSPMソリューションを販売しております。
ご興味のある方は是非、お気軽にお問い合わせください。