Documentation Index
Fetch the complete documentation index at: https://docs.crewai.com/llms.txt
Use this file to discover all available pages before exploring further.
Visão Geral
Este guia configura o Google Cloud Secret Manager como provedor de segredos usando Workload Identity Federation: a CrewAI Platform emite tokens OIDC de curta duração, os troca por credenciais Google Cloud via Security Token Service e lê seus segredos — sem que uma chave de service account de longa duração seja armazenada em lugar algum.Por que este caminho: os segredos são resolvidos no momento de execução da automação, então valores rotacionados se propagam para o próximo kickoff sem novo deploy. Se você só precisa de credenciais estáticas, veja o guia mais simples GCP — chave de service account.
Como funciona em runtime
- O worker do deployment solicita um JWT OIDC fresco à CrewAI Platform.
- O worker troca o JWT por uma credencial Google federada via Security Token Service, referenciando o Workload Identity Pool Provider que você configurou abaixo.
- O worker chama
secretmanager.googleapis.com:accessSecretVersionpara ler o segredo, usando a credencial federada diretamente (o principal federado detémroles/secretmanager.secretAccessor— veja Passo 4). - O valor obtido é injetado como valor da variável de ambiente para aquele kickoff de automação.
Pré-requisitos
Antes de começar, certifique-se de que você tem:
-
A imagem do pod de automação deve incluir o runtime da CrewAI versão
1.14.5ou superior. -
Um projeto Google Cloud com as APIs Secret Manager, Security Token Service e IAM Credentials habilitadas. Habilite-as via console ou:
- Permissão no projeto para criar Workload Identity Pools, papéis IAM, service accounts e (se necessário) segredos.
-
Uma organização na CrewAI Platform onde seu usuário tem as permissões
workload_identity_configs: manageesecret_providers: manage. Veja Permissões (RBAC). - Sua instalação da CrewAI Platform deve ser acessível a partir do Google Cloud via HTTPS para que o GCP STS possa buscar o documento de discovery OIDC e o JWKS durante a validação do token. Confirme com o administrador da sua plataforma que o host é acessível pela internet.
Passo 1 — Encontre a URL do Issuer OIDC da Sua CrewAI Platform
Sua instalação da CrewAI Platform publica um documento de discovery OpenID Connect emhttps://<your-platform-host>/.well-known/openid-configuration. O campo issuer ali é a URL que o Google registrará como provedor OIDC confiável.
Abra a URL em um navegador:
issuer — você o usará no Passo 3.
Passo 2 — Criar um Workload Identity Pool
Um Workload Identity Pool é um container do lado Google Cloud para identidades externas confiáveis. Você registrará a CrewAI Platform como um provedor dentro desse pool.Passo 3 — Adicionar a CrewAI Platform como um Provedor OIDC no Pool
--attribute-mapping diz ao Google como mapear claims do JWT para atributos do Google:
google.subjecté o identificador do principal — mapeamos para a claimsubdo JWT, que a CrewAI Platform define comoorganization:<uuid>.attribute.organizationé um atributo customizado — mapeamos para a claimorganization_iddo JWT para que você possa referenciá-la em vínculos IAM mais tarde.
--attribute-condition é uma verificação de defesa em profundidade que rejeita tokens sem uma claim organization_id.
Obtenha o nome do recurso do provedor (você precisará dele para a audience e vínculos IAM):
//iam.googleapis.com/<this-resource-name> ao emitir tokens.
Passo 4 — Conceder Acesso ao Secret Manager ao Principal Federado
Vincule ambos os papéis do Secret Manager no escopo do projeto ao principal federado — um papel habilita o autocomplete de Secret Name no formulário de env-var, o outro permite ler valores de segredos no kickoff da automação. Ambos são necessários para que o recurso funcione de ponta a ponta.<PROJECT_NUMBER> pelo número numérico do projeto (gcloud projects describe <YOUR_PROJECT_ID> --format='value(projectNumber)') e <YOUR_CREWAI_ORG_UUID> pelo UUID da organização CrewAI Platform que deve ter permissão para ler seus segredos. Você pode encontrar o UUID da org na UI da plataforma na página de configurações da organização, ou via API. Isso escopa a federação a uma organização CrewAI específica — apenas tokens emitidos para as automações dessa org são aceitos.
Ou via console Google Cloud:
- Abra IAM & Admin → IAM do seu projeto.
- Clique em GRANT ACCESS.
- New principals: cole a string completa
principalSet://...attribute.organization/<YOUR_CREWAI_ORG_UUID>. - Atribua o papel Secret Manager Viewer (
roles/secretmanager.viewer). - Clique em SAVE.
- Clique em GRANT ACCESS novamente e repita com o papel Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor).
Passo 5 — Criar Pelo Menos Um Segredo no GCP
Se você ainda não tem um segredo para testar, crie um via CLIgcloud:
- Abra Secret Manager no seu projeto GCP.
- Clique em + CREATE SECRET.
- Name:
crewai-test-keyword. Secret value: cole seu valor. - Clique em CREATE SECRET.
Passo 6 — Adicionar uma Configuração de Workload Identity na CrewAI Platform
Na CrewAI Platform, navegue até Settings → Workload Identity e clique em Add Workload Identity Config. Preencha o formulário:- Name: Um nome descritivo, ex.
gcp-prod. - Cloud Provider:
GCP. - Workload Identity Provider: o nome do recurso do provedor do Passo 3, ex.
projects/<PROJECT_NUMBER>/locations/global/workloadIdentityPools/crewai-pool/providers/crewai-provider. - (Opcional) Alterne Default Configuration se você quiser que esta seja a config WI padrão selecionada ao criar uma credencial de segredo baseada em GCP.
Passo 7 — Adicionar uma Credencial de Provedor de Segredos Vinculada à Config WI
Navegue até Settings → Secret Provider Credentials e clique em Add Credential. Preencha o formulário:- Name: Um nome descritivo, ex.
gcp-prod-wi. - Provider:
Google Cloud Secret Manager. - Authentication Method:
Workload Identity. - Workload Identity Configuration: selecione a config que você criou no Passo 6.
- Project ID: o ID do seu projeto GCP (o mesmo projeto dono dos segredos).
- (Opcional) Marque Set as default credential for this provider.
Passo 8 — Testar a Conexão
Depois de salvar a credencial, clique em Test Connection. Para credenciais workload-identity isso verifica o handshake OIDC: a CrewAI Platform emite um JWT e o troca via Security Token Service por um token de acesso Google federado. Um resultado verde significa que o vínculo de federação está saudável. Um Test Connection bem-sucedido prova que o Workload Identity Pool, provedor OIDC, mapeamento de atributos e condição de atributo estão todos conectados corretamente. Ele não prova que o IAM do Secret Manager está correto —secretmanager.secrets.list e secretmanager.versions.access são exercitados separadamente quando o autocomplete de Secret Name carrega ou quando uma variável de ambiente é resolvida no kickoff. Veja Solução de Problemas para modos de falha de handshake.
Passo 9 — Referenciar o Segredo em uma Variável de Ambiente
Referencie o segredo em uma automação, exatamente como você faria para qualquer outra env var apoiada pelo Secrets Manager. Veja Usando o Secrets Manager para os campos do formulário e o comportamento.Passo 10 — Verificar a Rotação
Após o deployment estar rodando, rotacione o segredo no GCP adicionando uma nova versão (o Secret Manager sempre lê a versão habilitada mais recente por padrão):"rotated value" — sem novo deploy, sem reinício de worker, sem espera de TTL.
Para confirmar nos logs do worker, procure por:
accessSecretVersion fresca contra o GCP.
Solução de Problemas
| Sintoma | Causa provável |
|---|---|
| Test Connection falha com erro de handshake | A troca de tokens STS foi rejeitada. Verifique se o Workload Identity Pool existe, se o issuer do provedor OIDC corresponde ao valor issuer da plataforma e se a condição de atributo aceita as claims do JWT. Confirme que a URL de discovery OIDC da plataforma é acessível a partir do GCP pela internet pública. |
Could not refresh access token: invalid_target | A claim de audience não corresponde à audience esperada do Workload Identity Provider. A CrewAI Platform define a audience automaticamente; se você a customizou, certifique-se de que corresponde a //iam.googleapis.com/<provider-resource-name>. |
Failed to fetch JWKS from issuer | O GCP STS não consegue acessar o host da sua CrewAI Platform. Confirme que o host é acessível pela internet e que /.well-known/openid-configuration retorna 200. |
Attribute condition rejected token | A condição de atributo do provedor OIDC (Passo 3) requer organization_id. A CrewAI Platform sempre define essa claim, então isso geralmente significa um pool/provedor mal configurado. Reconfira a condição de atributo do provedor. |
Autocomplete de Secret Name mostra PERMISSION_DENIED: secretmanager.secrets.list | O principal federado está sem roles/secretmanager.viewer no escopo de projeto. A permissão secretmanager.secrets.list é escopada apenas por projeto e não pode ser concedida por segredo. Veja o Passo 4. |
| Kickoff falha ao resolver um segredo mesmo que o Test Connection passe | O vínculo WI está saudável, mas secretmanager.versions.access está ausente no segredo que falha. Audite roles/secretmanager.secretAccessor (escopado por projeto, ou por segredo se você escopou dessa forma no Passo 4). |
| Valor rotacionado não é pego no próximo kickoff | Confirme que a env var na automação está referenciando uma credencial baseada em Workload Identity (não uma credencial de chaves estáticas). O caminho estático incorpora valores à imagem do deploy. |
Links de Referência
- GCP: Workload Identity Federation overview
- GCP: Configure Workload Identity Federation with OIDC
- GCP: Secret Manager IAM roles
Próximos Passos
- Use segredos em variáveis de ambiente e gerencie permissões
- Para multi-cloud, veja também AWS Workload Identity (Federação OIDC) e Azure Workload Identity Federation.
