Autenticação Baseada em IAM do Serviço Generative AI

Você pode acessar o ponto final compatível com OpenAI usando os dois métodos de autenticação a seguir:

Use chaves de API para teste e desenvolvimento antecipado. Usar autenticação baseada em IAM para cargas de trabalho de produção e ambientes gerenciados pela OCI. Este tópico mostra como configurar a autenticação do OCI IAM.

Autenticação do OCI IAM

A API de Respostas do OCI suporta totalmente a autenticação do OCI IAM. Esta seção mostra como usar a autenticação baseada no IAM em vez de chaves de API.

Quando Usar Autenticação do IAM

Considere o uso da autenticação IAM quando:

mc

  • Executando aplicativos em serviços do OCI (por exemplo, Functions ou OKE)
  • Evitando credenciais de longa duração, como chaves de API
  • Impondo controle de acesso refinado por meio de políticas do IAM

Instalar a Biblioteca de Autenticação do OCI IAM

Instale a biblioteca oci-genai-auth, que fornece utilitários auxiliares para integrar a autenticação do OCI IAM com o OpenAI SDK:

pip install oci-genai-auth

Esta biblioteca inclui os seguintes ajudantes de autenticação:

  • OciSessionAuth (para desenvolvimento local)
  • OciUserPrincipalAuth
  • OciInstancePrincipalAuth
  • OciResourcePrincipalAuth (para ambientes gerenciados pelo OCI)

Recursos

Configurar o cliente OpenAI

Ao usar a autenticação do IAM, inicialize o cliente OpenAI com um cliente HTTP personalizado e um handler de autenticação. O valor api_key é "not used" nesse caso.

Exemplo: Desenvolvimento Local (OciSessionAuth)

Use essa abordagem ao executar o código localmente (por exemplo, em um laptop usando um perfil da CLI do OCI):

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)

Exemplo: Ambientes Gerenciados do OCI (OciResourcePrincipalAuth)

Use essa abordagem ao executar em serviços do OCI, como OCI Functions ou OCI Container Engine for Kubernetes (OKE):

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()),
)

O uso da autenticação do OCI IAM permite que o aplicativo acesse com segurança o OCI Generative AI sem gerenciar chaves de API, ao mesmo tempo em que se alinha às práticas padrão de segurança do OCI.