公式の OpenAI Terraform プロバイダーを使うと、Infrastructure as Code で OpenAI 組織のリソースを管理できます。このプロバイダーは管理 API を使って、プロジェクト、ユーザー、グループ、ロール、サービスアカウント、証明書、レート制限、利用額アラート、および関連するプロジェクト設定を管理します。
このガイドでは、OpenAI プロジェクトを作成します。プロジェクトへのアクセス、サービスアカウント、運用上の制限、プロジェクトの制御設定、インポートについては、用途別ガイドに進んでください。
前提条件
以下を用意してください。
管理 API のエンドポイントには管理 API キーが必要です。このキーは、管理 API 以外の OpenAI API エンドポイントでは使用できません。キーは環境変数またはシークレットマネージャーに保存してください。Terraform の設定に書き込んだり、バージョン管理システムにコミットしたりしないでください。
プロバイダーの設定
新しいディレクトリを作成し、次の内容の main.tf ファイルを追加します。
terraform {
required_version = ">= 1.0"
required_providers {
openai = {
source = "openai/openai"
version = ">= 1.0.0"
}
}
}
provider "openai" {}
resource "openai_project" "example" {
name = "terraform-managed"
}
output "project_id" {
value = openai_project.example.project_id
}
このバージョン制約では、プロバイダーのバージョン 1.0.0 以降を使用できます。アップグレードする前に、プロバイダーのリリース情報を確認してください。
管理 API キーを環境変数に設定します。
export OPENAI_ADMIN_KEY="<your-admin-api-key>"
プロバイダーはデフォルトで OPENAI_ADMIN_KEY を読み取ります。OPENAI_ORG_ID と OPENAI_PROJECT_ID を設定すると、API リクエストに OpenAI-Organization ヘッダーと OpenAI-Project ヘッダーを含めることもできます。これらの任意の環境変数を設定しない場合、OpenAI は API キーから組織とプロジェクトを特定します。Terraform の設定で管理する組織やプロジェクトを明示したい場合は、該当する環境変数を設定してください。使用できる引数の一覧は、プロバイダー設定のリファレンスを参照してください。
初期化と設定の適用
作業ディレクトリを初期化してから、設定ファイルを整形し、内容を検証します。
terraform init
terraform fmt
terraform validate
Terraform はプロバイダーをダウンロードし、.terraform.lock.hcl を作成します。以降の実行でも同じバージョンのプロバイダーが選択されるように、ロックファイルをバージョン管理システムにコミットしてください。terraform init -upgrade を実行すると、バージョン制約を満たす最新のプロバイダーが選択されます。
Terraform が適用する変更内容を確認します。
terraform plan
実行計画には、追加対象として openai_project リソースが 1 つ表示されるはずです。必ず実行計画を確認してから、設定を適用してください。
terraform apply
確認を求められたら、設定の適用を承認します。Terraform がプロジェクトを作成し、project_id の出力値としてプロジェクト ID を表示します。
用途別ガイド
| ガイド | 用途 |
|---|---|
| プロジェクトとアクセス管理 | プロジェクトを作成し、ロールやグループに基づくアクセス制御を設定します。 |
| サービスアカウント | ワークロード ID または API キーを使った認証用のサービスアカウントを作成します。 |
| レート制限と利用額 | 既存のレート制限と Terraform の設定を照合して差分を解消し、利用額アラートを設定します。 |
| モデル、ツール、データの制御 | モデルへのアクセス、ホスト型ツール、データ保持を設定します。 |
| インポートと差分の解消 | 既存のリソースを Terraform の管理下に置き、設定のドリフトを検出します。 |
個々の引数やインポート形式については、プロバイダーのリソースとデータソースのリファレンスを参照してください。