AWS Secrets Manager (Credenciais Estáticas)
Visão Geral
Seção intitulada “Visão Geral”Este guia o orienta na configuração do AWS Secrets Manager como provedor de segredos para sua organização na CrewAI Platform, usando credenciais estáticas (chaves de acesso, opcionalmente com AssumeRole). Ao final, a CrewAI Platform poderá ler segredos armazenados na sua conta AWS e injetá-los como valores de variáveis de ambiente em runtime.
Pré-requisitos
Seção intitulada “Pré-requisitos”Escolha um Método de Autenticação
Seção intitulada “Escolha um Método de Autenticação”A CrewAI Platform suporta duas formas para que a plataforma se autentique no AWS Secrets Manager. Escolha uma antes de começar — os passos abaixo diferem dependendo do que você escolher.
| Método | Quando usar | Trade-offs |
|---|---|---|
| Chaves de acesso estáticas | Começar rápido, deployments single-account | Configuração mais simples; chaves de acesso devem ser rotacionadas manualmente |
| AssumeRole | Cross-account, hardening de produção | Credenciais de curta duração; suporta External ID; requer papel IAM extra |
O restante deste guia usa abas nos Passos 3–5 para que você possa seguir o caminho que corresponde à sua escolha.
Passo 1 — Criar um Usuário IAM
Seção intitulada “Passo 1 — Criar um Usuário IAM”Abra o console IAM, navegue até Users, depois clique em Create user.
- Nome sugerido:
crewai-secrets-reader. - Deixe Provide user access to the AWS Management Console desmarcado — este principal é usado programaticamente pela CrewAI Platform, não por humanos.
- Clique em Next.
Na página Set permissions, deixe a seleção padrão. Você anexará a política no Passo 3.
Clique em Next, revise e clique em Create user.
Para detalhes completos, veja a documentação da AWS: Create an IAM user in your AWS account.
Passo 2 — Criar a Política IAM
Seção intitulada “Passo 2 — Criar a Política IAM”A CrewAI Platform precisa de acesso somente leitura ao AWS Secrets Manager e permissão para descriptografar segredos via KMS. Crie uma política gerenciada pelo cliente com o seguinte JSON.
No console IAM, navegue até Policies, depois clique em Create policy.
Escolha a aba JSON e substitua o conteúdo por:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerRead", "Effect": "Allow", "Action": [ "secretsmanager:ListSecrets", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "*" }, { "Sid": "KMSDecrypt", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt" ], "Resource": "*" } ]}Clique em Next, então na página Review and create:
- Policy name:
CrewAISecretsManagerRead - Description (optional):
Read-only access to AWS Secrets Manager for CrewAI Platform
Clique em Create policy.
Passo 3 — Anexar a Política
Seção intitulada “Passo 3 — Anexar a Política”- No console IAM, navegue até Users e clique no usuário que você criou no Passo 1.
- Na aba Permissions, clique em Add permissions → Attach policies directly.
- Procure por
CrewAISecretsManagerRead, selecione-a e clique em Next. - Clique em Add permissions.
Com AssumeRole, a política é anexada a um role IAM separado (não diretamente ao usuário). O usuário do Passo 1 só precisa de permissão para chamar sts:AssumeRole nesse role.
Criar o role:
- No console IAM, navegue até Roles e clique em Create role.
- Trusted entity type: AWS account. Escolha This account (ou Another AWS account para setups cross-account, depois informe o ID da conta AWS que hospeda o usuário IAM do Passo 1).
- (Recomendado) Marque Require external ID e digite um valor que você mesmo gera — este é um segredo compartilhado que você colará na CrewAI Platform no Passo 5.
- Clique em Next.
- Anexe a política
CrewAISecretsManagerRead. - Clique em Next, nomeie o role como
CrewAISecretsManagerRolee clique em Create role.
Permitir que o usuário IAM assuma o role:
- Abra o role que você acabou de criar e copie seu ARN.
- No console IAM, navegue até Users, clique no usuário do Passo 1 e na aba Permissions clique em Add permissions → Create inline policy.
- Na aba JSON, cole o seguinte (substitua
ROLE_ARN_FROM_ABOVE):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "ROLE_ARN_FROM_ABOVE" } ]}- Nomeie a política como
CrewAIAssumeSecretsRolee clique em Create policy.
Passo 4 — Obter Credenciais
Seção intitulada “Passo 4 — Obter Credenciais”- No console IAM, abra o usuário do Passo 1.
- Clique na aba Security credentials.
- Em Access keys, clique em Create access key.
- Selecione Application running outside AWS (ou Other) como caso de uso. Clique em Next.
- (Opcional) Adicione uma tag de descrição. Clique em Create access key.
- Clique em Show para revelar a secret access key, então copie tanto o Access key ID quanto a Secret access key, ou clique em Download .csv file.
Para detalhes completos, veja a documentação da AWS: Manage access keys for IAM users.
Mesmo com AssumeRole, a CrewAI Platform ainda precisa de uma chave de acesso para o usuário IAM — ela usa essas chaves como identidade chamadora para realizar a chamada sts:AssumeRole.
- Crie uma access key para o usuário exatamente como descrito na aba Chaves de acesso estáticas acima.
- Abra o role que você criou no Passo 3 e copie:
- O Role ARN (do resumo do role).
- O External ID que você configurou (se houver) — você definiu isso no Passo 3, então certifique-se de tê-lo à mão.
Passo 5 — Adicionar a Credencial na CrewAI Platform
Seção intitulada “Passo 5 — Adicionar a Credencial na CrewAI Platform”Na CrewAI Platform, navegue até Settings → Secret Provider Credentials e clique em Add Credential.
Preencha o formulário:
- Name: Um nome descritivo, ex.
aws-prod. - Provider:
AWS Secrets Manager. - Region: A região AWS onde seus segredos vivem, ex.
us-east-1. Deve corresponder à região dos segredos que você quer ler. - Access Key ID: O valor do Passo 4.
- Secret Access Key: O valor do Passo 4.
- (Opcional) Marque Set as default credential for this provider. A credencial padrão é usada por variáveis de ambiente que referenciam segredos AWS sem especificar uma credencial explicitamente.
Deixe Role ARN e External ID em branco.
Clique em Create.
Preencha o formulário:
- Name: Um nome descritivo, ex.
aws-prod-assumerole. - Provider:
AWS Secrets Manager. - Region: A região AWS onde seus segredos vivem.
- Access Key ID: A access key do usuário IAM do Passo 4 (usada para chamar o STS).
- Secret Access Key: A secret access key do usuário IAM do Passo 4.
- Role ARN: O Role ARN que você copiou no Passo 4.
- External ID: O External ID que você definiu na trust policy do role (omita se não houver).
- (Opcional) Marque Set as default credential for this provider.
Clique em Create.
Passo 6 — Criar Pelo Menos Um Segredo na AWS
Seção intitulada “Passo 6 — Criar Pelo Menos Um Segredo na AWS”Se você ainda não tem segredos no AWS Secrets Manager, crie um agora para que possa verificar a conexão no Passo 7.
No console do AWS Secrets Manager, clique em Store a new secret.
- Secret type: Escolha Other type of secret.
- Key/value pairs — ou:
- Informe um ou mais pares chave/valor (recomendado para segredos estruturados), ou
- Use a aba Plaintext para um único valor de string.
- Encryption key: Use
aws/secretsmanager(a chave gerenciada pela AWS) a menos que você tenha um requisito específico de chave KMS.
Clique em Next, então informe:
- Secret name: Um nome único, ex.
crewai/openai-api-key. - Description (optional): Uma nota curta sobre o propósito do segredo.
Clique em Next pelos passos de rotação e revisão, depois clique em Store.
Para detalhes completos, veja a documentação da AWS: Create an AWS Secrets Manager secret.
Passo 7 — Testar a Conexão
Seção intitulada “Passo 7 — Testar a Conexão”De volta à CrewAI Platform, na página Secret Provider Credentials, encontre a credencial que você acabou de criar e clique em Test Connection.
Um toast de sucesso confirma que a CrewAI Platform consegue se autenticar na AWS e ler segredos da sua conta.
Se o teste falhar, verifique as causas mais comuns:
| Sintoma | Causa provável |
|---|---|
AccessDenied em secretsmanager:ListSecrets | Política não anexada, ou usuário errado. Reconfira o Passo 3. |
AccessDenied em kms:Decrypt | Falta a declaração KMSDecrypt, ou seus segredos usam uma chave KMS gerenciada pelo cliente não coberta por Resource: "*". |
InvalidClientTokenId / SignatureDoesNotMatch | Access key ID ou secret access key errados. Reconfira os Passos 4 e 5. |
RegionDisabledException / nenhum segredo encontrado | A Region da credencial não corresponde a onde seus segredos realmente vivem. |
AccessDenied em sts:AssumeRole (apenas AssumeRole) | Política inline sts:AssumeRole ausente no usuário IAM, ou a trust policy do role não permite este principal, ou o External ID não corresponde. |
| Teste passa imediatamente após criar o usuário IAM, mas falha da próxima vez | Credenciais IAM às vezes levam um ou dois minutos para se propagar globalmente. Tente novamente. |
Próximos Passos
Seção intitulada “Próximos Passos”Agora que a AWS está conectada, vá para Usando o Secrets Manager para:
- Conceder aos membros da organização as permissões corretas para usar (ou gerenciar) o Secrets Manager.
- Referenciar seus segredos AWS a partir de variáveis de ambiente da CrewAI Platform.
Se você quiser segredos conscientes de rotação que se propagam sem novo deploy, mude para AWS Workload Identity (Federação OIDC) — mesmo cofre de segredos, sem credenciais estáticas, segredos buscados por kickoff.