TerraformのPrisma Cloud Providerを使ってみた

TerraformのPrisma Cloud Providerを使ってみた

Clock Icon2024.08.30

Prisma Cloud用のTerraform providerがありました。

https://registry.terraform.io/providers/PaloAltoNetworks/prismacloud/latest/docs

こちらを使うことでPrisma Cloudの設定をTerraformで管理できます。

使ってみたのでブログにします。

やってみた

Prisma Cloudアクセスキー作成する

TerraformからPrisma Cloudにアクセスするために、Prisma Cloudのアクセスキーが必要なため作成していきます。

Prisma Cloudのコンソール上で「設定」->「アクセス制御」->「追加」->「アクセスキー」の順に選択します。

Prisma_Cloud___設定___アクセス制御.png

名前をつけて、「保存」を選択します。「.csvファイルをダウンロード」を選択して、発行したアクセスキーをローカルにダウンロードします。

Prisma_Cloud___設定___アクセス制御.png

4XKfvXwAeU5V_png__1146×910_.png

Prisma Cloud Providerを使ってみる

以下のファイルを用意します。

.
├── .prismacloud_auth.json
└── main.tf

.prismacloud_auth.jsonはPrisma Cloudの認証情報やエンドポイント記載します。

.prismacloud_auth.json
{
    "url": "api.jp.prismacloud.io",
    "protocol": "https",
    "username": "<アクセスキー>",
    "password": "<シークレットキー>"
}

注意点としては、リージョンごとにAPIエンドポイント(ファイル中のurl)が異なることです。

管理コンソールのURLと対応するAPI URLは以下を参照してください。

https://pan.dev/prisma-cloud/api/cspm/api-urls/

私の環境では管理コンソールのURLがhttps://app.jp.prismacloud.ioだったため、API URLはhttps://api.jp.prismacloud.ioを設定しました。

続いてtfファイルを用意します。

Prisma Cloud Providerを使って、Prisma Cloudアカウントグループを作るという内容です。

main.tf
terraform {
  required_providers {
    prismacloud = {
      source  = "PaloAltoNetworks/prismacloud"
      version = "1.5.8"
    }
  }
}

provider "prismacloud" {
  json_config_file = ".prismacloud_auth.json"
}

resource "prismacloud_account_group" "example" {
  name        = "My new group"
  description = "Made by Terraform"
}

Terraformを実行して、実際にリソース作成ができるか試してみます。

terraform init
terraform plan

Plan結果は以下で、想定通りアカウントグループを作成しようとしています。

plan結果
Terraform used the selected providers to generate the following execution plan. Resource actions
are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # prismacloud_account_group.example will be created
  + resource "prismacloud_account_group" "example" {
      + account_ids      = (known after apply)
      + description      = "Made by Terraform"
      + group_id         = (known after apply)
      + id               = (known after apply)
      + last_modified_by = (known after apply)
      + last_modified_ts = (known after apply)
      + name             = "My new group"
    }

Plan: 1 to add, 0 to change, 0 to destroy.

───────────────────────────────────────────────────────────────────────────────────────────────────

Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take
exactly these actions if you run "terraform apply" now.

Applyして実際にリソース作成できたるか確認します。

terraform apply

コンソール上からもTerraformで作成したアカウントグループを確認できました。

Prisma_Cloud___設定___アカウントグループ.png

参考

https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u0000004MQyCAM&lang=ja

https://pan.dev/prisma-cloud/api/cspm/api-urls/

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.