Pular para o conteúdo principal

Visão Geral

Este guia configura o AWS Secrets Manager como provedor de segredos usando Workload Identity Federation: a CrewAI Platform emite tokens OIDC de curta duração, os troca por credenciais AWS via STS e lê seus segredos — sem que uma chave de acesso AWS 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 e não se importa com a propagação de rotação, veja o guia mais simples AWS — chaves estáticas / AssumeRole.

Como funciona em runtime

  1. O worker do deployment solicita um JWT OIDC fresco à CrewAI Platform.
  2. O worker chama sts:AssumeRoleWithWebIdentity no role IAM que você configurou abaixo, apresentando o JWT.
  3. O AWS STS valida o JWT contra o issuer OIDC público da CrewAI Platform (então sua instalação da plataforma deve ser acessível a partir da AWS), depois retorna credenciais AWS de curta duração.
  4. O worker usa essas credenciais para chamar secretsmanager:GetSecretValue.
  5. O valor obtido é injetado como valor da variável de ambiente para aquele kickoff de automação.
Tokens OIDC subject são cacheados por ~1 hora para evitar reemissão a cada kickoff. Valores de segredos são buscados frescos a cada kickoff independentemente do estado do cache OIDC, e é isso que torna este caminho consciente de rotaçã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.5 ou superior.
  • Uma conta AWS com permissão para criar provedores IAM OIDC, roles IAM e políticas IAM.
  • A região AWS onde seus segredos vivem (ou viverão), ex. us-east-1.
  • Uma organização na CrewAI Platform onde seu usuário tem as permissões workload_identity_configs: manage e secret_providers: manage. Veja Permissões (RBAC).
  • O UUID da sua organização CrewAI. Encontre-o na página de configurações da organização na CrewAI Platform — a trust policy no Passo 3 vincula o role IAM a esta organização específica.
  • Sua instalação da CrewAI Platform deve ser acessível a partir da AWS via HTTPS para que o AWS 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 (ou que a AWS tem alcance de rede até ele via VPC peering / equivalente).

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 em https://<your-platform-host>/.well-known/openid-configuration. O campo issuer nesse documento é a URL que a AWS registrará como provedor OIDC confiável. Abra a URL em um navegador (substituindo <your-platform-host> pelo seu hostname real, ex. app.crewai.com):
Você deverá ver um JSON contendo:
Anote o valor exato de issuer — você o usará no Passo 3.
Se a URL retornar 404 ou 503, contate o administrador da sua plataforma. O issuer OIDC requer uma chave de assinatura privada configurada no momento da instalação. Veja o guia de instalação da plataforma para as configurações OIDC_PRIVATE_KEY e OIDC_ISSUER.

Passo 2 — Registrar a CrewAI Platform como um IAM OIDC Identity Provider

Abra o console IAM → Identity providers e clique em Add provider.
  • Provider type: OpenID Connect.
  • Provider URL: o valor de issuer do Passo 1 (ex. https://app.crewai.com).
  • Audience: sts.amazonaws.com
Clique em Add provider. Ou via CLI:
Copie o OpenIDConnectProviderArn da saída (ou o ARN do provedor no console). Você o usará no Passo 3.
A AWS não valida de fato o thumbprint para chamadas STS WebIdentity — ela sempre re-busca o JWKS no momento da validação — mas a API requer que o campo esteja presente.

Passo 3 — Criar o Role IAM

Salve como trust-policy.json, substituindo <YOUR_ACCOUNT_ID>, <your-platform-host> (o host do issuer sem https:// ou http://, ex. app.crewai.com) e <YOUR_CREWAI_ORG_UUID> (dos Pré-requisitos):
Crie o role:
Copie o Role Arn da saída — esse é seu aws_role_arn. Você o colará na CrewAI Platform no Passo 6.
As duas condições escopam a confiança com precisão: aud restringe a assunção a tokens com a audience do AWS STS, e sub escopa a federação a uma organização CrewAI específica — apenas tokens emitidos para as automações dessa org são aceitos. A CrewAI Platform sempre define ambas as claims nos tokens de workload identity da AWS.

Passo 4 — Criar e anexar a política IAM para acesso ao Secrets Manager + KMS

Salve como secrets-policy.json, substituindo os placeholders pelo ID da sua conta, região, prefixo do nome do segredo e o(s) ARN(s) da chave KMS que criptografa(m) esses segredos:
SecretsManagerListForUI alimenta o autocomplete de Secret Name no formulário de Environment Variables e o botão Test Connection na credencial. secretsmanager:ListSecrets só aceita Resource: "*" — é escopado por conta na camada IAM. Anexe a política ao role usando a CLI (política inline, mais simples) ou a UI do console; para ambientes que reutilizam as mesmas permissões em vários roles, use a aba Managed policy para uma política nomeada e reutilizável.
Isso anexa a política inline ao role. Políticas inline são vinculadas ao role e não podem ser reutilizadas em outros roles.

Passo 5 — Criar Pelo Menos Um Segredo na AWS

Se você ainda não tem um segredo para testar, crie um agora:
Ou pelo console do AWS Secrets ManagerStore a new secret.

Passo 6 — Adicionar uma Configuração de Workload Identity na CrewAI Platform

Na CrewAI Platform, navegue até SettingsWorkload Identity e clique em Add Workload Identity Config. Preencha o formulário:
  • Name: Um nome descritivo, ex. aws-prod.
  • Cloud Provider: AWS.
  • AWS Role ARN: o Role Arn do Passo 3.
  • AWS Region: a região onde seus segredos vivem, ex. us-east-1.
  • (Opcional) Marque Set as default for AWS se você quiser que esta config WI seja a padrão selecionada ao criar uma credencial de segredo baseada em AWS.
Clique em Create.

Passo 7 — Adicionar uma Credencial de Provedor de Segredos Vinculada à Config WI

Navegue até SettingsSecret Provider Credentials e clique em Add Credential. Preencha o formulário:
  • Name: Um nome descritivo, ex. aws-prod-wi.
  • Provider: AWS Secrets Manager.
  • Authentication Method: Workload Identity (em vez de chaves estáticas / AssumeRole).
  • Workload Identity Configuration: selecione a config que você criou no Passo 6 (ex. aws-prod).
  • (Opcional) Marque Set as default credential for this provider.
O formulário pedirá apenas a AWS Region sob Workload Identity — os campos de credencial estática (Access Key ID, Secret Access Key, Role ARN, External ID) estão intencionalmente ocultos porque não se aplicam a este caminho; o ARN do role vem da config WI vinculada. Clique em Create.

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, troca-o com o AWS STS via sts:AssumeRoleWithWebIdentity e confirma que as credenciais resultantes podem chamar sts:GetCallerIdentity contra o role assumido. Um resultado verde significa que o vínculo de federação está saudável. Um Test Connection bem-sucedido prova que a trust policy, o registro do provedor OIDC e a condição de audience estão todos conectados corretamente. Ele não prova que o IAM por segredo está correto — secretsmanager:GetSecretValue em um ARN de segredo específico é exercitado separadamente 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

Agora 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. A única diferença entre env vars apoiadas por WI e por chaves estáticas é quando o segredo é lido:
  • Apoiado por WI: o valor do segredo é lido de forma fresca a cada kickoff de automação.
  • Apoiado por chaves estáticas: o valor do segredo é lido no momento do deploy e incorporado à imagem do deployment.

Passo 10 — Verificar a Rotação

Após o deployment estar rodando, rotacione o segredo na AWS:
Dispare um novo kickoff de automação. O ambiente do kickoff verá "rotated value" — sem novo deploy, sem reinício de worker, sem esperar TTL. Para confirmar nos logs (se você tiver acesso ao worker), procure por:
Esta linha aparece para cada kickoff e indica uma chamada GetSecretValue fresca contra a AWS.

Solução de Problemas

Próximos Passos