---
type: how-to
title: Terraform または OpenTofu を使う
summary: 公式プロバイダーで Caputchin を infrastructure-as-code として管理します。Terraform でも OpenTofu でも同一に動きます。実例と、完全なレジストリリファレンスへのリンク付き。
---

公式の Caputchin プロバイダーは、あなたのアカウントを infrastructure-as-code として管理させます。チーム、サイトキー、セキュリティポリシー、メンバー、トークンを `.tf` ファイルで宣言し、ほかのリソースと同じように適用します。それは [automation](/docs/automation/management-api) の下のすべてと同じ管理 API を、Terraform リソースとして表したものです。

それは一度公開され、同じソースから **Terraform と OpenTofu の両方** で動きます。HCL は同一で、CLI バイナリ（`terraform` か `tofu`）とレジストリだけが違います。以下のどこでも、あなたが走らせるほうを使ってください。

## アクセストークンを発行する [#mint-an-access-token]

プロバイダーはトークンを `CAPUTCHIN_MANAGEMENT_TOKEN` 環境変数から読みます（ソースの外に留まるよう推奨）。どちらの種類のトークンも動きます（[API 認証](/docs/automation/management-api#mint-an-access-token) を参照）。アカウント全体のインフラのための [Personal Access Token](/docs/account-management/personal-access-token)、または設定が管理するチームにスコープづけされた [Troop Access Token](/docs/troops/tokens) です。

```bash
export CAPUTCHIN_MANAGEMENT_TOKEN=cpt_pat_...
```

鶏が先か卵が先かのケースがあります。プロバイダーはトークンを *発行* もできます（`caputchin_account_token` と `caputchin_troop_pat` リソース）が、そもそも認証するためにトークンを要します。最初の 1 つはダッシュボードで手で発行し、それから残りを Terraform に管理させてください。

## プロバイダーを設定する

```hcl
terraform {
  required_providers {
    caputchin = {
      source  = "caputchin/caputchin"
      version = "~> 0.1"
    }
  }
}

# Token from CAPUTCHIN_MANAGEMENT_TOKEN; endpoint defaults to https://api.caputchin.com.
provider "caputchin" {}
```

同じ `source = "caputchin/caputchin"` が Terraform Registry と OpenTofu Registry から解決されるので、ブロックはどちらのツールでも同じです。

## 実例：ゲートされたサイトキーを持つチーム

これはチーム、その中のサイトキーを作り、そのキーのゲームゲートをオンにします：

```hcl
resource "caputchin_troop" "shop" {
  name = "shop-team"
}

resource "caputchin_site_key" "shop_frontend" {
  name     = "shop-frontend"
  troop_id = caputchin_troop.shop.id
}

resource "caputchin_site_security_settings" "shop_frontend" {
  site_id      = caputchin_site_key.shop_frontend.id
  require_game = true
}

# The public key is an attribute; the secret is sensitive, in state only.
output "shop_site_key" {
  value = caputchin_site_key.shop_frontend.key
}
```

それから、どちらのツールでも：

```bash
terraform init && terraform apply
# or
tofu init && tofu apply
```

サイトキーの `secret` は機微な計算属性です。[バックエンドの検証](/docs/integration-guides/verify-on-your-backend) を設定するために、state から読んでください（`terraform output`）。すべての apply は、Apex では [監査ログ](/docs/audit-logs/overview) であなたのトークンに帰属するので、Terraform 経由の変更はダッシュボードの編集と同じくらい追跡できます。

## 管理できるもの

リソースはダッシュボードと同じ面をカバーします。チームとそのメンバーとトークン、サイトキー、セキュリティ設定、ホスト型認証、ゲームとホワイトラベルのカスタマイズ、そしてアカウントトークンです。データソースは、既存のチーム、サイト、アカウント情報、統計を設定に読み込ませます。

## 完全なリファレンス

すべてのリソースとデータソースを、そのすべての引数と属性とインポート構文とともに、プロバイダーのレジストリページに載せています。それはプロバイダーのソースから生成されるので、リリースされたバージョンを正確に追います：

- Terraform Registry: `registry.terraform.io/providers/caputchin/caputchin`
- OpenTofu Registry: `search.opentofu.org/provider/caputchin/caputchin`

各リソースが行う根底の操作については、[インタラクティブ API リファレンス](/docs/api-reference) を参照してください。

## あわせて読む

- [API から Caputchin を管理する](/docs/automation/management-api)：プロバイダーが乗る HTTP API。
- [MCP サーバーを使う](/docs/automation/mcp)：AI エージェントの面。
- [チーム](/docs/troops/overview) と [サイトキー](/docs/site-keys/overview)：あなたが管理しているリソース。
