Esta página apresenta uma forma de executar o gateway de aplicativos Claude no Google Cloud. A configuração é um exemplo funcional para infraestrutura gerenciada pelo cliente em vez de uma implantação de produção suportada; use-a para ver como as peças se encaixam antes de adaptá-la ao seu próprio ambiente. Para os requisitos independentes de plataforma, consulte o guia de implantação.
oidc muda. Consulte Configuração do provedor de identidade para detalhes específicos por IdP.
O que você construirá
- Serviço Cloud Run ou GKE Deployment executando o contêiner do gateway
- Repositório Artifact Registry para a imagem do gateway
- Instância Cloud SQL para PostgreSQL, apenas IP privado, para o store do gateway
- Segredos Secret Manager para
gateway.yaml, a chave de assinatura JWT, o segredo do cliente OIDC e a URL do Postgres - Conta de serviço com
roles/aiplatform.user, anexada diretamente no Cloud Run ou vinculada via Workload Identity no GKE - Front end HTTPS que você fornece: um Application Load Balancer interno na frente do Cloud Run, para o qual este passo a passo configura o gateway, mas não o cria, ou um GKE Ingress interno de classe
gce-internalno GKE
Pré-requisitos
- Um projeto GCP com faturamento habilitado e permissão para criar os recursos acima
- A CLI
gcloud, autenticada comgcloud auth login, e Docker instalado localmente - Para o caminho GKE:
kubectle um cluster GKE no VPC criado no passo a passo abaixo - Acesso aos modelos Claude que você precisa no Model Garden, em uma região que os publica
- Um cliente de aplicação web OAuth 2.0 do Google Workspace com URI de redirecionamento
https://<gateway-host>/oauth/callback; consulte Configuração do provedor de identidade - Um nome de host TLS para o gateway, normalmente um nome DNS interno apontando para o balanceador de carga
Implantar o gateway
Os passos abaixo provisionam a implantação completa com comandosgcloud.
1
Habilitar APIs
Habilite as APIs de serviço que o passo a passo usa:As APIs que você precisa dependem do caminho de implantação:
computeeservicenetworking: necessárias para o caminho Cloud SQL com IP privadorun: apenas Cloud Runcontainer: apenas GKE
2
Criar a conta de serviço e conceder IAM
O gateway é executado como uma conta de serviço dedicada com permissão para chamar Agent Platform. Ele alcança Cloud SQL sobre o VPC com um usuário de senha, portanto nenhuma função IAM do Cloud SQL é necessária:Em seguida, habilite os modelos Claude para o projeto no Model Garden; os modelos são publicados em regiões específicas, portanto verifique cada cartão de modelo.
3
Construir e enviar a imagem para Artifact Registry
Construa a imagem de acordo com os requisitos de imagem de contêiner, usando o binário glibc
linux-x64, e envie-a:4
Provisionar Cloud SQL para PostgreSQL
Crie a instância em um VPC via Private Services Access para que ela não tenha IP público; isso também satisfaz projetos onde O runtime Cloud Run ou GKE deve estar neste VPC ou roteado para ele.
constraints/sql.restrictPublicIp é aplicado:5
Escrever gateway.yaml
O bloco
upstreams aponta para Agent Platform com auth: {}, portanto o gateway autentica via Application Default Credentials da conta de serviço do runtime. Consulte a referência de configuração para cada campo.Dois campos listen descrevem o que está na frente do gateway:public_url: a origemhttps://externa, obrigatória para qualquer bind que não seja loopback; consulte a referência delisten. O gateway constrói oredirect_urido IdP e seu documento de descoberta apenas a partir deste valor, nunca a partir de cabeçalhosX-Forwarded-*.trusted_proxies: os intervalos de origem do front-end. O gateway honraX-Forwarded-Forapenas quando o par TCP está nesta lista, depois percorre a cadeia passando hops confiáveis, portanto os rate limits de login por IP e eventos de auditoria registram IPs de desenvolvedores em vez do balanceador de carga.
trusted_proxies para corresponder ao seu front-end. Um GKE Ingress externo de classe gce não está listado: ele provisiona um endereço de regra de encaminhamento público, que a verificação rede privada do /login rejeita.O exemplo abaixo usa os valores do balanceador de carga interno na frente do Cloud Run.
gateway.yaml
Os id_tokens do Google não carregam nenhuma reivindicação
groups. Para usar políticas baseadas em grupos em managed.policies com Google Workspace como IdP, configure oidc.google_groups, que procura os grupos de cada usuário através da API Admin SDK Directory usando uma conta de serviço com delegação em todo o domínio. Sem isso, corresponda em email_domain em vez disso.6
Armazenar segredos no Secret Manager
Crie quatro segredos e conceda
roles/secretmanager.secretAccessor à conta de serviço claude-gateway:Como os segredos chegam ao contêiner difere por caminho:
- No GKE eles são montados como arquivos via o driver CSI do Secret Manager, e
gateway.yamlreferencia${file:/secrets/...}. - No Cloud Run, que não pode montar múltiplos segredos em um diretório,
gateway.yamlé montado como arquivo e os outros três são injetados como variáveis de ambiente, portantogateway.yamlreferencia${GATEWAY_JWT_SECRET},${OIDC_CLIENT_SECRET}e${GATEWAY_POSTGRES_URL}em vez disso.
7
Implantar
- Cloud Run
- GKE
O comando abaixo implanta para produção atrás de um balanceador de carga interno.Egresso VPC direto, via
--network, --subnet e --vpc-egress=private-ranges-only, permite que o serviço alcance o IP privado do Cloud SQL diretamente. Cada instância mantém até store.max_connections conexões Postgres, cinco por padrão, portanto mantenha o número máximo de instâncias × store.max_connections abaixo do limite de conexões do seu nível do Cloud SQL; os ativos de referência limitam as instâncias a 8 para o nível db-g1-small por esse motivo. Egresso público para os endpoints do Agent Platform do Google Cloud e accounts.google.com vai diretamente para a internet em vez de através do VPC, portanto nenhum Cloud NAT é necessário.A verificação de IAM do invoker deve estar aberta ou desabilitada. O gateway executa seu próprio OIDC e seus clientes não carregam nenhum token GCP, portanto a verificação de invoker do Cloud Run tem que admitir solicitações não autenticadas. A autenticação OIDC do gateway autentica a solicitação uma vez que ela alcança o contêiner, com allowed_email_domains controlando quais domínios podem fazer login.Dois sinalizadores admitem solicitações não autenticadas:--no-invoker-iam-check: desabilita a verificação sem nenhuma vinculaçãoallUserspara gerenciar, e funciona sob Domain Restricted Sharing--allow-unauthenticated: concede aoallUsersa funçãorun.invoker; use-o se sua organização não permitir--no-invoker-iam-check
--ingress é uma camada separada e independente da verificação de invoker; mantenha-a definida para limitar o serviço à sua rede corporativa.Por padrão, a URL *.run.app do Cloud Run resolve para um endereço público, que a verificação rede privada do /login rejeita. Duas topologias fornecem aos desenvolvedores um nome de host resolvível privadamente, e o Cloud Run não provisiona nenhuma para você:- Internal Application Load Balancer, a topologia que o
gateway.yamldesta página assume: provisione um Internal Application Load Balancer na frente do serviço com um nome DNS interno e certificado, e definalisten.public_urlpara esse nome de host. A configuração de ingressointernaljá admite tráfego de Internal Application Load Balancers;internal-and-cloud-load-balancingadmite adicionalmente External Application Load Balancers, cujos endereços públicos a verificação de rede privada do/loginrejeita, portanto nenhuma topologia desta página precisa dela. - Ingresso somente interno sem balanceador de carga: mantenha o comando de implantação como está e deixe
listen.public_urlcomo a URL*.run.app, o padrão nos ativos de referência abaixo. Para*.run.appresolver privadamente, sua equipe de rede deve já operar um endpoint Private Service Connect para APIs do Google, uma zona privada Cloud DNS resolvendo*.run.apppara ele, e roteamento no local para esse endpoint.
<public_url>/oauth/callback antes do primeiro login. Reimplante após alterar public_url, porque o gateway constrói sua origem pública apenas a partir dessa configuração e ignora X-Forwarded-Host e X-Forwarded-Proto. X-Forwarded-For é honrado para IPs de cliente apenas quando listen.trusted_proxies está definido.8
Enviar a URL do gateway para máquinas de desenvolvedores
O gateway agora está em execução, mas os desenvolvedores não podem alcançá-lo a partir de
/login até que a URL do gateway esteja em suas máquinas. Implante o trecho completo de configurações gerenciadas, com forceLoginMethod, forceLoginGatewayUrl e a adesão parentSettingsBehavior: "merge", em cada dispositivo via MDM. Não há opção de gateway no seletor de login para um desenvolvedor selecionar manualmente.Referência Terraform
Os ativos de implantação de referência automatizam o caminho Cloud Run nesta página; os ativos de configuração e imagem se aplicam a ambos os caminhos:setup.sh: um provisionadorgcloudidempotente que percorre o caminho completo do Cloud Run, desde a habilitação de APIs até a primeira implantaçãoterraform/: a mesma implantação como infraestrutura como código, para uma implantação greenfield: uma aplicação direcionada para criar o repositório Artifact Registry, depois construir e enviar a imagem, depois uma aplicação completagateway.yaml.examplee umDockerfilepara a imagem de runtime distroless
internal, correspondendo ao comando de deploy desta página; essa configuração funciona com ou sem um Application Load Balancer interno na frente do serviço, e os artefatos também não criam o balanceador de carga. Os artefatos também definem por padrão a camada de invoker como uma concessão allUsers run.invoker em vez de --no-invoker-iam-check, o inverso do passo a passo desta página; ambos funcionam, e a escolha depende das restrições de política da sua organização.
Os ativos são fornecidos como exemplos funcionais, não como um artefato de produção suportado; revise e adapte-os ao seu ambiente.
Troubleshooting
Para erros de inicialização e login do gateway, consulte a tabela de troubleshooting independente de plataforma. As entradas abaixo são específicas do Google Cloud.Próximos passos
- Referência de configuração: cada opção
gateway.yaml, incluindomanaged.policiesetelemetry - Implantação e operações: configuração de IdP, verificações de saúde, rotação de segredo JWT, upgrades e o modelo de segurança
- Visão geral do gateway de aplicativos Claude: quickstart e conectando desenvolvedores