生成AI IAMベースの認証
次の2つの認証方法を使用して、OpenAI互換エンドポイントにアクセスできます。
- OCI生成AI APIキー
- OCI IAMベースの認証
テストおよび早期開発にAPIキーを使用します。本番ワークロードおよびOCI管理環境には、IAMベースの認証を使用します。このトピックでは、OCI IAM認証を設定する方法について説明します。
OCI IAM認証
OCI Responses APIは、OCI IAM認証を完全にサポートしています。この項では、APIキーのかわりにIAMベースの認証を使用する方法について説明します。
IAM認証を使用する場合
次の場合は、IAM認証の使用を検討してください:
mc
- OCIサービスでのアプリケーションの実行(FunctionsやOKEなど)
- APIキーなどの長期間の資格証明の回避
- IAMポリシーによるファイングレイン・アクセス・コントロールの強制
OCI IAM認証ライブラリのインストール
OCI IAM認証をOpenAI SDKと統合するためのヘルパー・ユーティリティを提供するoci-genai-authライブラリをインストールします:
pip install oci-genai-authこのライブラリには、次の認証ヘルパーが含まれています。
OciSessionAuth(ローカル開発用)OciUserPrincipalAuthOciInstancePrincipalAuthOciResourcePrincipalAuth(OCI管理環境の場合)
リソース
OpenAIクライアントの構成
IAM認証を使用する場合は、カスタムHTTPクライアントおよび認証ハンドラを使用してOpenAIクライアントを初期化します。この場合、api_key値は"not used"です。
例: ローカル開発(OciSessionAuth)
このアプローチは、コードをローカルで実行する場合(たとえば、OCI CLIプロファイルを使用するラップトップの場合)に使用します。
from openai import OpenAI
from oci_openai import OciSessionAuth
import httpx
client = OpenAI(
base_url="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1", # update region if needed
api_key="not-used",
project="ocid1.generativeaiproject.oc1.us-chicago-1.xxxxxxxx", # project OCID created earlier
http_client=httpx.Client(auth=OciSessionAuth(profile_name="DEFAULT")) # update profile if needed
)
response = client.responses.create(
model="xai.grok-4-1-fast-reasoning",
input="Write a one-sentence explanation of what a database is."
)
print(response.output_text)例: OCI管理対象環境(OciResourcePrincipalAuth)
OCI FunctionsやOCI Container Engine for Kubernetes (OKE)などのOCIサービスで実行する場合は、このアプローチを使用します:
from openai import OpenAI
from oci_openai import OciResourcePrincipalAuth
import httpx
client = OpenAI(
base_url="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1", # update region if needed
api_key="not-used",
project="ocid1.generativeaiproject.oc1.us-chicago-1.xxxxxxxx", # project OCID created earlier
http_client=httpx.Client(auth=OciResourcePrincipalAuth()),
)OCI IAM認証を使用すると、アプリケーションはAPIキーを管理せずにOCI生成AIに安全にアクセスでき、標準のOCIセキュリティ・プラクティスに準拠できます。