HCP TerraformのRun Tasksを使ってPrisma Cloudと統合して、IaCスキャンを実行してみた

HCP TerraformのRun Tasksを使ってPrisma Cloudと統合して、IaCスキャンを実行してみた

Clock Icon2024.09.09

HCP TerraformのRun Tasksを使って、Prisma CloudでTerraformコードをスキャンしてみます。

Run Tasksとは

Run Tasksを使うと、HCP Terraoformの実行ライフサイクル内でサードパーティのツールと統合することができます。

例えば、Plan時に自動的にPrisma Cloud IaCのコードスキャンを行えたりします。

https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings/run-tasks
https://dev.classmethod.jp/articles/snyk-saas-integration-terraform-cloud-overwiew/

Run Tasksによる統合が可能なサードパーティのツールはTerraform Registryで確認できます。

https://registry.terraform.io/browse/run-tasks

Prisma Cloud IaCセキュリティ

Prisma Cloudでは、OSSの静的コード分析ツールのCheckovを使ったコードスキャンが可能です。

tfsecやtrivyのように、Terraformコードの設定ミスをチェックすることができます。

Prisma Cloud上でCheckovのスキャン結果を確認することができます。

https://www.paloaltonetworks.jp/prisma/cloud/infrastructure-as-code-security

やってみた

手順は以下です。スクショを交えて解説します。

https://docs.prismacloud.io/en/enterprise-edition/content-collections/application-security/get-started/connect-code-and-build-providers/ci-cd-runs/add-terraform-run-tasks

HCP Terraform トークンの作成

HCP Terraform側の作業です。

コンソールにアクセスして、Organizationsを選択します。

「Settings」 -> 「API tokens」 を選択します。

Prisma Cloudプロバイダー接続で利用可能なトークンの種類は、「User Tokens」または「Team Tokens」です。

今回は組織での利用を想定して、「Team Tokens」を使います。

「Team Tokens」 -> 「Create team token」を選択します。

任意のTeamを選択して、トークンを発行します。トークンは次の手順で使うため、控えておいてください。

API_Tokens___classmethod-sandbox___HCP_Terraform.png

デフォルトの権限では、権限がたりないため権限を編集します。

「Permission」の「Only admins can manage」を選択します。

API_Tokens___classmethod-sandbox___HCP_Terraform.png

WorkspaceとRun Tasksの管理権限が必要なため、以下を選択します。

  • Manage All workspaces
  • Manage run tasks

Team___sato-masaki___classmethod-sandbox___HCP_Terraform.png

「Update team organizations access」を選択して、設定を反映させます。

これでトークンの準備は完了です。

Prisma Cloudプロバイダー接続設定

次は、Prisma Cloud側の作業です。

コンソールにアクセスして、「設定」->「プロバイダーに接続する」->「コードとビルドのプロバイダー」の順に選択します。

Prisma_Cloud___設定___プロバイダ.png

今回はHCP Terraform(旧名称: Terraform Cloud)のRun Tasksを使うので、Terraform Cloud(Run Tasks)を選びます。

Prisma_Cloud___設定___プロバイダ.png

先ほど作成したトークンを入力します。

Prisma_Cloud___設定___プロバイダ.png

対象のOrganizationsを選択します。

Prisma_Cloud___設定___プロバイダ.png

対象のWorkspacesと実行するタイミングを設定します。Planの前か後を選択できます。

Prisma_Cloud___設定___プロバイダ.png

進んでいくと、以下のようにPrisma Cloud上でリポジトリが表示されます。これで準備完了です。

Prisma_Cloud___設定___プロバイダ.png

HCP Terraformでスキャンを試してみる

登録したWorkspaceでRunを行いました。

以下のようにスキャンが実行され、ルールに違反している設定を検知できました。

run-uHwrRYfPzysz6Pni___Runs___demo-2-vcs___classmethod-sandbox___HCP_Terraform.png

run-uHwrRYfPzysz6Pni___Runs___demo-2-vcs___classmethod-sandbox___HCP_Terraform.png

「View more details」のリンクからPrisma Cloud上で確認することもできます。

Prisma_Cloud___Projects.png

おわりに

HCP TerraformのRun Tasksを使った、Prisma Cloudとの統合についてでした。

簡単な設定でワークフロー上にIaCコードスキャンを組み込むことができました。

HCP Terraformのポリシー機能を使った統合もできるようなので、今後試していきたいと思います。

https://docs.prismacloud.io/en/enterprise-edition/content-collections/application-security/get-started/connect-code-and-build-providers/ci-cd-runs/add-terraform-cloud-sentinel

以上、AWS事業本部の佐藤(@chari7311)でした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.