Pular para o conteúdo principal

Usando o AWS Bedrock com o Cursor (BYOK)

AWS Bedrock BYOK in Cursor

O Bring Your Own Key (BYOK) permite apontar o Cursor para um provedor de modelos pelo qual você já paga, em vez do roteamento de modelos integrado do Cursor. O AWS Bedrock é uma das escolhas mais comuns porque hospeda o Anthropic Claude e outros modelos de fronteira por trás de uma conta AWS que você já controla. Este guia percorre o que é o BYOK, por que o Bedrock especificamente, como configurá-lo no Cursor, como funcionam a cobrança e o controle de custos, e como corrigir os erros que você provavelmente vai encontrar, incluindo o confuso "Invalid signature in thinking block is bound to a different conversation".

O Que É BYOK e Quando Usá-lo​

BYOK significa que você fornece suas próprias credenciais de provedor, e o provedor cobra você diretamente pelos tokens que você consome. No Cursor, o modelo ainda roda através da interface e dos recursos do Cursor, mas a requisição de inferência vai para a sua conta, em vez da conta do Cursor.

Você geralmente quer BYOK quando:

  • Você já tem gasto de nuvem comprometido. Se sua organização tem um compromisso AWS ou desconto empresarial, rotear o tráfego de modelos através do Bedrock usa esse gasto em vez de adicionar um novo item de linha.
  • A conformidade exige um limite específico. O Bedrock mantém os dados dentro da sua conta AWS e região, o que simplifica a residência de dados e a revisão de segurança.
  • A aquisição prefere um único fornecedor. Comprar através da AWS geralmente é mais fácil do que adicionar um fornecedor de IA separado a um contrato.

BYOK nem sempre é mais barato. O preço incluído e baseado em uso do Cursor pode superar o Bedrock para equipes pequenas, e você assume o gerenciamento de cotas por conta própria. Escolha BYOK para controle e conformidade, não apenas pelo preço.

BYOK é por provedor de modelo, não por chat

No Cursor você habilita provedores em Settings > Models. Depois que o Bedrock estiver habilitado e suas credenciais salvas, os IDs de modelo Bedrock selecionados se tornam selecionáveis em qualquer lugar onde você escolhe modelos. Você não fica preso ao Bedrock para outros modelos.

BYOK vs Roteamento Integrado do Cursor​

Ajuda ver os dois caminhos lado a lado antes de se comprometer.

DimensãoModelos integrados do CursorBYOK com Bedrock
CobrançaO Cursor cobra vocêA AWS cobra você diretamente
CredenciaisGerenciadas pelo CursorVocê fornece e rotaciona as chaves AWS
CotaGerenciada pelo CursorVocê gerencia cotas por modelo
ConformidadeLimite do CursorSua conta e região AWS
Esforço de configuraçãoZeroIAM, acesso a modelo, configuração do provedor
Lista de modelosCurada pelo CursorO que sua região expõe

Se você é um desenvolvedor solo otimizando por velocidade, fique no roteamento integrado. Se você está em uma organização onde a fatura AWS, a região e a política IAM todas precisam ser suas, BYOK é a resposta certa.

Por Que o AWS Bedrock​

O Bedrock é uma camada de inferência hospedada, não um modelo em si. Ele expõe Anthropic Claude, Amazon Nova, Meta Llama, Mistral e outros através de uma única API AWS. Essa única API é a razão pela qual ele é atraente para uso empresarial.

  • Conformidade e governança. Requisições e dados permanecem dentro da sua conta e região AWS, sob seus controles e logs de auditoria existentes.
  • Gasto AWS existente. O uso de modelos aparece na sua fatura AWS e pode ser coberto por compromissos existentes.
  • Residência de dados. Você escolhe a região, o que importa quando regulamentações exigem que os dados permaneçam em um país.
  • Aquisição empresarial. A AWS já é um fornecedor aprovado na maioria das grandes organizações.

Os trade-offs são a imagem espelhada: você é dono da cota, da configuração IAM e da solução de problemas.

Pré-Requisitos​

Antes de configurar o Cursor, providencie o seguinte do lado da AWS.

Conta AWS e Acesso a Modelos​

Você precisa de uma conta AWS com cobrança habilitada. No console do Bedrock, o acesso a modelos é opt-in por modelo, então você deve solicitar explicitamente acesso aos modelos Anthropic Claude que pretende usar. Alguns modelos são concedidos automaticamente; outros exigem uma etapa de aceitação ou um pequeno formulário de caso de uso.

Permissões IAM​

Crie um usuário ou papel IAM para o Cursor com as permissões mais restritas que ainda funcionem. No mínimo, o Cursor precisa invocar modelos e listá-los.

Permissão IAMPor que o Cursor precisa dela
bedrock:InvokeModelEnvia uma requisição sem streaming para um modelo
bedrock:InvokeModelWithResponseStreamEnvia uma requisição com streaming, que é o que a UI de chat usa
bedrock:ListFoundationModelsPreenche o seletor de modelos e valida os IDs de modelo

Para modelos Claude no Bedrock, você também geralmente precisa de bedrock:InvokeModel delimitado aos ARNs do modelo ou, de forma mais simples, aos perfis de inferência da região. Mantenha a política delimitada e evite anexar políticas de administrador amplas.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CursorBedrockInvoke",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-5-v1:0",
"arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-sonnet-4-5-v1:0"
]
},
{
"Sid": "CursorBedrockList",
"Effect": "Allow",
"Action": "bedrock:ListFoundationModels",
"Resource": "*"
}
]
}

Anexe esta política a um usuário ou papel IAM dedicado ao Cursor em vez de reutilizar uma identidade de administrador existente. Se sua organização usa credenciais de curta duração, assuma um papel e atualize o token de sessão periodicamente em vez de criar uma chave estática.

Verifique o Acesso Antes de Configurar o Cursor​

Comprove que as credenciais funcionam na linha de comando primeiro. Se a chamada falhar aqui, ela também falhará no Cursor, e você terá poupado uma ida e volta confusa.

# Confirm the configured identity is the one you expect
aws sts get-caller-identity

# List the models your region exposes
aws bedrock list-foundation-models \
--region us-east-1 \
--query "modelSummaries[?contains(modelId, 'anthropic')].[modelId]" \
--output table

Se a listagem funciona, mas a invocação falha, o problema é o acesso ao modelo ou o ID de modelo específico, não as credenciais.

Escolha de Região​

Escolha uma região onde o modelo que você quer está disponível e onde seus dados podem residir. A inferência entre regiões é suportada para alguns modelos através de um prefixo de perfil de inferência, então você pode não estar limitado a uma única região.

Configurando o Bedrock no Cursor​

O Cursor expõe provedores BYOK nas configurações Models. O fluxo tem a mesma forma para cada provedor.

  1. Abra Cursor Settings > Models.
  2. Encontre o provedor AWS Bedrock e habilite-o.
  3. Insira seu ID de chave de acesso AWS, chave de acesso secreta e a região.
  4. Escolha os IDs de modelo que você quer visíveis no seletor.
  5. Salve e volte para um chat, depois selecione um modelo Bedrock.

Campos de Credencial​

O Cursor precisa de uma configuração qualificada por região. Um bloco de provedor Bedrock se parece aproximadamente com isto:

{
"provider": "bedrock",
"aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
"aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"aws_region": "us-east-1",
"models": [
"anthropic.claude-sonnet-4-5-v1:0",
"anthropic.claude-3-5-haiku-v1:0"
]
}

Prefira a chave de acesso IAM de longa duração como último recurso para uma máquina de desenvolvedor. Para uma equipe, use uma sessão temporária ou um papel assumido para que as chaves não sejam armazenadas em texto simples no disco.

IDs de Modelo e Inferência Entre Regiões​

Os IDs de modelo do Bedrock seguem uma forma previsível: fornecedor, família, versão. Alguns modelos exigem um prefixo de perfil de inferência, que roteia a requisição entre regiões para disponibilidade e vazão.

# Direct model IDs (region-scoped)
anthropic.claude-sonnet-4-5-v1:0
anthropic.claude-3-5-haiku-v1:0

# Cross-region inference profile IDs (note the region prefix)
us.anthropic.claude-sonnet-4-5-v1:0
eu.anthropic.claude-sonnet-4-5-v1:0
apac.anthropic.claude-sonnet-4-5-v1:0

Se um modelo retornar um erro de acesso mesmo você tendo-o habilitado, o ID de modelo é quase sempre a causa: verifique se ele precisa do prefixo us. ou eu. para a região que você selecionou.

Chaves de acesso são segredos

Não cole chaves de acesso em um chat, um arquivo de regras ou uma captura de tela compartilhada. Armazene-as onde o Cursor armazena credenciais de provedor, e rotacione qualquer chave que você suspeite ter sido exposta. As chaves de exemplo acima são placeholders da documentação pública da AWS, não credenciais reais.

Verificando a Conexão no Cursor​

Após salvar a configuração do provedor, confirme a ligação com um prompt trivial em vez de uma tarefa real, para que uma falha seja inequívoca.

  1. Abra um novo chat e selecione um dos seus IDs de modelo Bedrock no seletor de modelos.
  2. Peça algo pequeno, como "responda com a palavra ready".
  3. Se a resposta voltar, as credenciais, a região e o ID de modelo estão todos corretos.
  4. Se falhar, execute novamente o teste de invocação via CLI abaixo e compare o texto do erro com o que o Cursor mostra.
# Invoke the model directly so you can see the raw error text
aws bedrock-runtime invoke-model \
--model-id anthropic.claude-sonnet-4-5-v1:0 \
--region us-east-1 \
--body '{"anthropic_version":"bedrock-2023-05-31","max_tokens":16,"messages":[{"role":"user","content":"reply with the word ready"}]}' \
--cli-binary-format raw-in-base64-out \
/tmp/out.json && cat /tmp/out.json

Manter um comando CLI funcional para cada modelo que você usa transforma as mensagens de erro do Cursor de ambíguas em decodificáveis, porque você já sabe como é uma invocação bem-sucedida.

Cobrança e Controle de Custos​

Com BYOK, a AWS cobra você pelos tokens, não o Cursor. Isso muda como você faz orçamento e monitora.

Preços de Modelo​

O Bedrock cobra por token de entrada e de saída, e a taxa depende do modelo. Tokens de entrada geralmente são mais baratos que tokens de saída, e modelos de contexto longo custam mais por token que os pequenos.

Família de modeloCusto relativo de entradaCusto relativo de saídaNotas
Classe Claude SonnetMédioMédioPadrão forte de codificação geral
Classe Claude HaikuBaixoBaixoRápido, barato, bom para pequenas edições
Classe Claude OpusAltoAltoMelhor raciocínio, maior custo
Amazon NovaBaixoBaixoAlternativas econômicas

Alocação de Custos e Monitoramento​

Marque seu uso do Bedrock para que seja atribuível, e observe as métricas em vez da fatura.

# Enable cost allocation tags on the resources that call Bedrock
aws resourcegroupstaggingapi tag-resources \
--resource-arn-list arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-sonnet-4-5-v1:0 \
--tags Project=cursor-byok Team=platform

No CloudWatch, acompanhe as métricas de invocação do Bedrock e defina um alarme de cobrança para que um agente descontrolado não gaste silenciosamente seu orçamento mensal da noite para o dia.

# Quick cost sanity check: list recent Bedrock usage with Cost Explorer
aws ce get-cost-and-usage \
--time-period Start=2026-10-01,End=2026-10-20 \
--granularity DAILY \
--metrics BlendedCost \
--filter '{"Dimensions":{"Key":"SERVICE","Values":["Amazon Bedrock"]}}'

Reduzindo o Custo de Tokens​

O BYOK coloca o medidor de tokens nas suas mãos, então alguns hábitos compensam rápido:

  • Dimensione o modelo corretamente. Use um modelo da classe Haiku para pequenas edições e reserve o modelo da classe Opus para raciocínio genuinamente difícil.
  • Mantenha o contexto enxuto. Uma janela de contexto inflada é o maior custo oculto; inicie um novo chat quando a conversa se desviar.
  • Agrupe pequenas edições. Vários prompts minúsculos custam mais do que um prompt bem delimitado que cobre as mesmas mudanças.
  • Enxugue as regras. Toda regra sempre aplicada são tokens enviados em cada requisição, então mantenha .cursor/rules enxuto.
  • Observe a primeira semana. Revise o Cost Explorer diariamente na primeira semana, depois semanalmente, para que você aprenda sua linha de base real antes que ela o surpreenda.

Corrigindo o Erro "Invalid signature in thinking block"​

Este é o erro mais confuso do Bedrock no Cursor porque soa como um problema de chave de API, mas é quase sempre um problema de estado da conversa. A mensagem completa diz:

Invalid `signature` in `thinking` block is bound to a different conversation

Causa Raiz​

O pensamento estendido do Claude produz blocos de raciocínio criptografados que carregam uma assinatura vinculada à conversa e ao turno exatos em que foram criados. Quando esses blocos são reproduzidos em uma nova requisição, o conteúdo assinado não corresponde mais e o provedor rejeita a requisição inteira. Isso acontece quando:

  • um bloco de pensamento estendido de um turno anterior é reenviado em um turno posterior,
  • um proxy ou gateway faz cache e reproduz o corpo da requisição,
  • o estado da conversa está obsoleto ou duplicado, por exemplo após trocar de modelo no meio da conversa.

Correções​

Percorra estas em ordem:

  1. Inicie um novo chat. A assinatura está vinculada à conversa, então um chat novo é a redefinição confiável.
  2. Desabilite o pensamento estendido para o modelo enquanto você depura, depois reabilite assim que o fluxo estiver limpo.
  3. Atualize o Cursor. O tratamento de assinatura para blocos de pensamento foi corrigido em versões mais novas; um cliente desatualizado é uma causa comum.
  4. Remova proxies ou gateways intermediários que possam fazer cache ou reescrever corpos de requisição entre o Cursor e o Bedrock.
  5. Reduza a temperatura e encurte a conversa para que menos blocos de pensamento se acumulem no contexto.
Chat novo primeiro, todo o resto depois

Noventa por cento das vezes, iniciar um novo chat resolve o erro de assinatura imediatamente. Se ele se reproduzir em um chat totalmente novo, então olhe proxies e versão do cliente.

Erros de Throttling e resource_exhausted​

O Bedrock aplica cotas de vazão por conta e por modelo. Quando você as excede, você recebe um erro de throttling ou resource_exhausted, em vez de uma falha limpa.

ResourceNotFoundException / ServiceQuotaExceededException:
You have exceeded the rate of requests allowed for this model.

Este é um problema de cota, não um problema de credenciais. Duas correções:

  • Distribua a carga entre modelos ou regiões. Perfis de inferência entre regiões existem justamente para agrupar capacidade.
  • Solicite um aumento de cota no console AWS Service Quotas para o modelo Bedrock que você está usando.
# List the Bedrock service quotas you can request increases for
aws service-quotas list-service-quotas \
--service-code bedrock \
--query "Quotas[?contains(QuotaName, 'Claude')].[QuotaName,QuotaCode,Value]" \
--output table

O erro geralmente se resolve sozinho quando o tráfego em rajada diminui, mas se for crônico, o pedido de cota é a correção.

Erros de Acesso, Região e Proxy​

Acesso Negado Quando o Acesso ao Modelo Não É Concedido​

AccessDeniedException: You don't have access to the model with the specified model ID

Duas causas dominam aqui:

  • O acesso ao modelo nunca foi concedido no console do Bedrock. Abra o console e solicite acesso a esse modelo Anthropic específico.
  • A política IAM é estreita demais ou o ID de modelo está errado. Confirme que a política concede bedrock:InvokeModelWithResponseStream e que a string do ID de modelo corresponde a um modelo que você realmente habilitou.

Região Errada​

Se a região configurada no Cursor não hospeda o modelo, ou o ID de modelo precisa de um prefixo entre regiões, as requisições falham mesmo que a chave seja válida. Confirme que a região no Cursor corresponde à região do console onde você habilitou o acesso ao modelo.

Falhas de Streaming Atrás de Proxies Corporativos​

O streaming é o padrão para o chat. Proxies corporativos e firewalls com inspeção de TLS frequentemente quebram respostas text/event-stream, o que aparece como um chat que trava ou retorna uma resposta parcial.

  • Inclua os endpoints regionais do Bedrock na lista de permissões (por exemplo bedrock-runtime.us-east-1.amazonaws.com).
  • Certifique-se de que o proxy não faz buffer de respostas em streaming; procure por uma configuração de "streaming" ou "chunked transfer".
  • Se o proxy for inevitável, confirme se o Cursor pode contorná-lo para o host do Bedrock.

Referência Rápida de Solução de Problemas​

SintomaCausa provávelCorreção
Invalid signature in thinking blockBlocos de pensamento reproduzidos entre conversasInicie um novo chat, desabilite o pensamento estendido, atualize o Cursor
resource_exhausted / throttlingCota por modelo excedidaDistribua entre regiões, solicite aumento de cota
AccessDeniedExceptionAcesso ao modelo não concedido ou política estreita demaisHabilite o modelo no console, amplie a política IAM
Modelo não encontrado / sem acesso em uma regiãoRegião errada ou prefixo de perfil de inferência ausenteFaça a região corresponder, use o prefixo us. / eu.
Chat trava sem saída de streamProxy fazendo buffer de text/event-streamInclua os endpoints do Bedrock na lista de permissões, desabilite o buffer do proxy
Seletor de modelos vaziobedrock:ListFoundationModels ausenteAdicione a permissão, salve novamente as credenciais
Erro de autenticação após rotação de chaveCredenciais obsoletas salvas no CursorReinsira a chave de acesso e o segredo nas configurações Models
Funciona localmente, falha no CIRegião ou perfil não passados no pipelineDefina a região e o perfil no ambiente do CI

Assim que o fluxo estiver estável, mantenha uma nota curta da sua região, IDs de modelo e limites de cota ao lado da configuração do provedor. Quando um erro aparecer seis meses depois, essa nota transforma uma investigação de duas horas em uma correção de dois minutos.