公式の OpenAI Terraform プロバイダーを使うと、Infrastructure as Code で OpenAI 組織のリソースを管理できます。このプロバイダーは、管理 API を使用して、プロジェクト、ユーザー、グループ、ロール、サービスアカウント、証明書、レート制限、支出アラート、および関連するプロジェクト設定を管理します。
このガイドでは、OpenAI プロジェクトを作成します。プロジェクトへのアクセス、サービスアカウント、運用上の制限、プロジェクトの制御、インポートについては、続けて各ユースケースのガイドを参照してください。
事前準備
次のものが必要です。
管理 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 キーによる認証用のサービスアカウントを作成します。 |
| レート制限と支出 | 既存のレート制限との整合性を確保し、支出アラートを構成します。 |
| モデル、ツール、データの制御 | モデルへのアクセス、ホスト型ツール、データ保持を構成します。 |
| インポートと整合性の確保 | 既存のリソースを管理下に取り込み、ドリフトを検出します。 |
個々の引数やインポート形式については、プロバイダーのリソースとデータソースのリファレンスを参照してください。