• Mensajes
  • Agentes gestionados
  • Administración
Search...
⌘K
Organización
API de administraciónEspacios de trabajo
Autenticación
Descripción generalFederación de identidades de carga de trabajoReferencia de WIF
AWSGoogle CloudMicrosoft AzureGitHub ActionsKubernetesSPIFFEOkta
Monitoreo
API de uso y costosAPI de límites de velocidadAPI de análisis de Claude Code
Datos y cumplimiento
Residencia de datosAPI y retención de datos
API de cumplimiento
Descripción generalObtener accesoFeed de actividadChats, archivos y proyectosOrganizaciones, usuarios, roles y gruposDiseñar tu integraciónErroresPreguntas frecuentes
Log in
Google Cloud
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Administración/Proveedores de identidad

Usar WIF con Google Cloud

Federa cargas de trabajo de Google Cloud (Cloud Run, Cloud Functions, App Engine, GCE, GKE) con la API de Claude usando tokens de identidad firmados por Google en lugar de claves de API estáticas.

Cualquier entorno de cómputo de Google Cloud con acceso al servidor de metadatos de instancia (Cloud Run, Cloud Functions, App Engine, Compute Engine (GCE) y GKE con Workload Identity) puede solicitar un token de identidad firmado por Google para su cuenta de servicio asociada. El emisor del token es https://accounts.google.com, y Anthropic puede validarlo directamente mediante el descubrimiento OIDC estándar, sin necesidad de configuración adicional en Google Cloud.

Esta guía muestra cómo registrar el emisor de Google en Anthropic, vincular una cuenta de servicio de Google a una cuenta de servicio de Anthropic, y hacer que tu carga de trabajo intercambie su token de identidad por un token de acceso de corta duración para la API de Claude.

Requisitos previos

  • Familiaridad con los conceptos de WIF: cuentas de servicio, emisores de federación y reglas de federación.
  • Un proyecto de Google Cloud con una carga de trabajo ejecutándose en Cloud Run, Cloud Functions, App Engine, Compute Engine o GKE.
  • Una cuenta de servicio de Google administrada por el usuario asociada a esa carga de trabajo (no la cuenta de servicio predeterminada de Compute Engine).
  • Permiso para crear cuentas de servicio, emisores de federación y reglas de federación en Claude Console para tu organización de Anthropic.

Configurar Google Cloud

Google emite tokens de identidad automáticamente a cualquier carga de trabajo con una cuenta de servicio asociada. No hay nada que habilitar del lado de Google más allá de asociar la cuenta de servicio correcta, pero los pasos difieren ligeramente entre el cómputo estándar y GKE.

Configurar Anthropic

Sigue el tutorial de configuración para registrar un emisor de federación, crear una cuenta de servicio de Anthropic y crear una regla de federación en Claude Console. Usa estos valores específicos de Google Cloud.

Emisor de federación: Google publica su documento de descubrimiento OIDC públicamente, así que usa el modo de descubrimiento. Este único emisor cubre todas las superficies de Google Cloud (Cloud Run, GCE, Cloud Functions, App Engine y GKE con Workload Identity). Diferencia las cargas de trabajo con reglas, no con emisores.

{
  "name": "gcp",
  "issuer_url": "https://accounts.google.com",
  "jwks_source": "discovery"
}

Regla de federación: Haz coincidir tanto el claim sub como el claim email. email es la dirección legible de la cuenta de servicio; sub es el ID único numérico de la cuenta de servicio, que Google nunca reutiliza, por lo que fijarlo protege la regla si la cuenta de servicio se elimina y posteriormente se crea una nueva con el mismo email. Encuentra el ID único con gcloud iam service-accounts describe SA_EMAIL --format='value(uniqueId)'.

{
  "name": "gcp-inference-worker",
  "issuer_id": "fdis_...",
  "match": {
    "audience": "https://api.anthropic.com",
    "claims": {
      "sub": "104892101234567890123",
      "email": "[email protected]"
    }
  },
  "target": {
    "type": "service_account",
    "service_account_id": "svac_..."
  },
  "workspace_id": "wrkspc_...",
  "oauth_scope": "workspace:developer",
  "token_lifetime_seconds": 600
}

Obtener y usar el token

Dentro de tu carga de trabajo de Google Cloud, obtén el token de identidad del servidor de metadatos, intercámbialo en POST /v1/oauth/token y usa el token bearer devuelto para llamar a la API de Claude. Cada SDK de Anthropic gestiona el intercambio y el ciclo de renovación por ti cuando proporcionas un callable proveedor de tokens que devuelve un token de identidad nuevo del servidor de metadatos, como se muestra en los siguientes ejemplos.

import os
import anthropic
import google.auth.transport.requests
import google.oauth2.id_token
from anthropic import WorkloadIdentityCredentials

AUDIENCE = "https://api.anthropic.com"


def fetch_google_identity_token() -> str:
    request = google.auth.transport.requests.Request()
    return google.oauth2.id_token.fetch_id_token(request, AUDIENCE)


client = anthropic.Anthropic(
    credentials=WorkloadIdentityCredentials(
        identity_token_provider=fetch_google_identity_token,
        federation_rule_id=os.environ["ANTHROPIC_FEDERATION_RULE_ID"],
        organization_id=os.environ["ANTHROPIC_ORGANIZATION_ID"],
        service_account_id=os.environ["ANTHROPIC_SERVICE_ACCOUNT_ID"],
        workspace_id=os.environ.get("ANTHROPIC_WORKSPACE_ID"),
    ),
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello from Cloud Run"}],
)
print(message.content[0].text)

Los tokens de identidad de Google expiran después de aproximadamente una hora. Los SDK vuelven a invocar el proveedor de tokens y realizan el intercambio nuevamente de forma automática antes de la expiración. Para scripts de shell que se ejecutan durante más tiempo que el expires_in del token de acceso, renueva con un temporizador y repite el intercambio.

Verificar la configuración

Desde dentro de tu carga de trabajo, decodifica el token de identidad y confirma que los claims coinciden con tu regla:

cURL
curl -sS -H "Metadata-Flavor: Google" \
  "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=https://api.anthropic.com&format=full" \
  | jq -rR 'split(".")[1] | gsub("-";"+") | gsub("_";"/") | @base64d | fromjson'

Verifica que iss sea https://accounts.google.com, aud sea https://api.anthropic.com y email coincida con el valor en tu regla de federación. Luego ejecuta el intercambio de la sección anterior. Un intercambio exitoso devuelve un access_token que comienza con sk-ant-oat01- y un valor expires_in en segundos. Ante un 400 invalid_grant, consulta Solucionar problemas de un intercambio fallido; la causa más común del lado de Google Cloud es que falte el claim email (solicita el token con format=full para que se incluya).

Limitar el alcance de tu regla

El claim sub de Google es el ID único numérico opaco de la cuenta de servicio y no tiene un prefijo estable. Un subject_prefix con un * al final coincide con cuentas de servicio arbitrarias en todos los proyectos de Google Cloud, y cualquiera de ellas podría obtener un token federado de Anthropic.

Restringe el bloque match de la regla al alcance más estrecho que se ajuste a tu caso de uso:

  • Coincidir sub exactamente: Establece el ID único numérico completo en claims.sub y nunca uses subject_prefix para tokens de Google.
  • Fijar el claim email: Agrega claims.email junto a sub para que tanto el ID estable como la dirección legible deban coincidir.
  • Fijar el audience: Establece audience al valor exacto que solicitas del servidor de metadatos para que se rechacen los tokens emitidos para otros consumidores.
  • Fijar el proyecto en GKE: Para tokens con format=full, agrega una condition como claims.google.compute_engine.project_id == "my-project" para restringir la regla a los nodos de un solo proyecto.

Próximos pasos

  • Lee la página de Workload Identity Federation para conocer el modelo completo de recursos y la precedencia de credenciales del SDK.
  • Agrega una regla de federación separada por entorno (producción, staging) para que puedas revocar una sin afectar a las demás.

Was this page helpful?

  • Requisitos previos
  • Configurar Google Cloud
  • Configurar Anthropic
  • Obtener y usar el token
  • Verificar la configuración
  • Limitar el alcance de tu regla
  • Próximos pasos