Terraform 프로바이더

Terraform 프로바이더 (Terraform provider)

출처: 문서

공식 OpenAI Terraform provider를 사용하면 infrastructure as code로 OpenAI 조직 리소스를 관리할 수 있어요. 이 프로바이더는 Administration API를 사용해 프로젝트, 사용자, 그룹, 역할, 서비스 계정, 인증서, 비율 한도, 지출 알림 및 관련 프로젝트 설정을 관리해요.

이 가이드는 OpenAI 프로젝트를 생성해요. 프로젝트 접근, 서비스 계정, 운영 한도, 프로젝트 제어, 가져오기(import)에 대한 사용 사례 가이드로 계속 이어가세요.

시작하기 전에

다음이 필요해요:

  • Terraform 1.0 이상. import 예시에는 Terraform 1.5 이상이 필요해요.
  • Admin API key를 만들 권한이 있는 OpenAI 조직.

Administration API 엔드포인트는 Admin API 키가 필요하며, 이 키는 비-admin 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 이상을 허용해요. 업그레이드 전에 프로바이더 릴리스를 검토해요.

환경에 Admin 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 리소스 하나가 표시되어야 해요. 계획을 검토한 후에만 구성을 적용해요:

terraform apply

프롬프트가 표시되면 적용을 확인해요. Terraform이 프로젝트를 생성하고 project_id 출력으로 ID를 출력해요.

사용 사례 가이드 선택하기

가이드 사용 용도
Projects and access 프로젝트를 만들고 역할 기반·그룹 기반 접근을 구성해요.
Service accounts workload identity 또는 API 키 인증을 위한 서비스 계정을 생성해요.
Rate limits and spend 기존 비율 한도를 조정하고 지출 알림을 구성해요.
Model, tool, and data controls 모델 접근, 호스팅된 도구, 데이터 보존을 구성해요.
Import and reconciliation 기존 리소스를 도입하고 드리프트(drift)를 감지해요.

개별 인자와 import 형식에 대해서는 프로바이더 리소스 및 데이터 소스 참조를 사용해요.