Pular para o conteúdo

AWS Secrets Manager (Credenciais Estáticas)

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.

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étodoQuando usarTrade-offs
Chaves de acesso estáticasComeçar rápido, deployments single-accountConfiguração mais simples; chaves de acesso devem ser rotacionadas manualmente
AssumeRoleCross-account, hardening de produçãoCredenciais 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.

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.

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.

Chaves de acesso estáticas
  1. No console IAM, navegue até Users e clique no usuário que você criou no Passo 1.
  2. Na aba Permissions, clique em Add permissionsAttach policies directly.
  3. Procure por CrewAISecretsManagerRead, selecione-a e clique em Next.
  4. Clique em Add permissions.
AssumeRole

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:

  1. No console IAM, navegue até Roles e clique em Create role.
  2. 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).
  3. (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.
  4. Clique em Next.
  5. Anexe a política CrewAISecretsManagerRead.
  6. Clique em Next, nomeie o role como CrewAISecretsManagerRole e clique em Create role.

Permitir que o usuário IAM assuma o role:

  1. Abra o role que você acabou de criar e copie seu ARN.
  2. No console IAM, navegue até Users, clique no usuário do Passo 1 e na aba Permissions clique em Add permissionsCreate inline policy.
  3. 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"
}
]
}
  1. Nomeie a política como CrewAIAssumeSecretsRole e clique em Create policy.
Chaves de acesso estáticas
  1. No console IAM, abra o usuário do Passo 1.
  2. Clique na aba Security credentials.
  3. Em Access keys, clique em Create access key.
  4. Selecione Application running outside AWS (ou Other) como caso de uso. Clique em Next.
  5. (Opcional) Adicione uma tag de descrição. Clique em Create access key.
  6. 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.

AssumeRole

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.

  1. Crie uma access key para o usuário exatamente como descrito na aba Chaves de acesso estáticas acima.
  2. 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é SettingsSecret Provider Credentials e clique em Add Credential.

Chaves de acesso estáticas

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.

AssumeRole

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.

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.

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:

SintomaCausa provável
AccessDenied em secretsmanager:ListSecretsPolítica não anexada, ou usuário errado. Reconfira o Passo 3.
AccessDenied em kms:DecryptFalta a declaração KMSDecrypt, ou seus segredos usam uma chave KMS gerenciada pelo cliente não coberta por Resource: "*".
InvalidClientTokenId / SignatureDoesNotMatchAccess key ID ou secret access key errados. Reconfira os Passos 4 e 5.
RegionDisabledException / nenhum segredo encontradoA 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 vezCredenciais IAM às vezes levam um ou dois minutos para se propagar globalmente. Tente novamente.

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.