Trilha 03Lição 2 / 6

Limite a autoridade de um agente

Defina ações, recursos e condições permitidos. Verifique permissões fora do modelo e separe a implementação do release.

Prática9 minRevisado

Publicado por Como escrevemos

Confira seu entendimentoVocê instrui um agente a editar uma branch, mas o token dele pode fazer push na branch padrão. Qual é o limite efetivo?Faça o exercício
Você instrui um agente a editar uma branch, mas o token dele pode fazer push na branch padrão. Qual é o limite efetivo?

O que você vai aprender

  • Expressar uma permissão como ação, recurso e condição.
  • Separar a aprovação da tarefa da autorização para executá-la.
  • Testar se uma ação proibida é negada.

Descreva a tarefa antes de conceder acesso

Um agente que lê código precisa de autoridade diferente da de um agente que faz deployment de um serviço. Não conceda os dois conjuntos de permissões apenas porque o mesmo produto suporta as duas ações.

Use três partes para definir autoridade: uma ação, um recurso e uma condição. Em uma correção fictícia de relatório, o agente pode escrever em uma branch de funcionalidade enquanto a tarefa estiver ativa. Pode ler arquivos aprovados do repositório. Não pode modificar dados de produção nem regras de proteção do repositório.

Operação necessáriaExemplo de limite
Inspecionar códigoLer o repositório selecionado
Executar verificaçõesUsar um ambiente isolado com fixtures fictícias
Preparar uma alteraçãoEscrever na branch da tarefa
Solicitar revisãoAbrir um PR sem fazer o merge
Disponibilizar softwareUsar um processo separado e protegido de deployment

A forma exata de impor esses limites depende da ferramenta. Se um token não puder expressar uma restrição de branch, use controles adicionais do repositório ou um serviço de execução. Documente com honestidade a autoridade que resta.

Imponha o limite fora do modelo

Um prompt não é um sistema de controle de acesso. O componente de execução deve verificar a ação e o destino solicitados diante das permissões atuais. Não deve aceitar a afirmação do modelo de que a aprovação já existe.

A AWS recomenda permissões limitadas e credenciais temporárias para cargas de trabalho adequadas. A OWASP aplica o mesmo princípio de menor privilégio a agentes e suas ferramentas. Esses princípios precisam ser implementados nos sistemas reais de identidade e execução. Orientações do AWS IAM, orientações da OWASP para agentes.

Use credenciais de curta duração quando houver suporte. Mantenha segredos sem relação com a tarefa fora do ambiente. Uma tarefa de leitura de repositório não deve herdar uma senha de banco de dados de produção do shell do desenvolvedor.

Vincule a aprovação à ação real

Aprovar a preparação de uma alteração não significa aprovar seu deployment. Uma decisão de deployment deve identificar o artefato, o ambiente de destino e as condições relevantes. Se eles mudarem, a decisão anterior pode deixar de valer.

Considere um agente que propõe uma leitura segura no banco de dados e depois executa uma consulta diferente após receber aprovação. Um mecanismo útil de aprovação verifica a operação que realmente é executada. Uma mensagem genérica de “continue”, sem destino definido, pode ocultar essa diferença.

Separe também identidade de capacidade. Registre qual pessoa ou carga de trabalho iniciou a execução. Verifique se a identidade que a iniciou ainda tem permissão quando a ação ocorrer. A remoção do acesso de uma pessoa deve ter um efeito explícito sobre os trabalhos na fila.

Teste uma recusa e uma interrupção

Verifique mais que o caminho de sucesso. Em um ambiente de teste isolado, tente uma ação fora do recurso permitido. Confirme que o sistema de execução a rejeita. Inspecione o evento de auditoria sem registrar credenciais.

Depois, teste o cancelamento ou a expiração das credenciais. Determine quais trabalhos param imediatamente e qual operação pode terminar. Um botão de parada não necessariamente reverte uma ação que já chegou a outro sistema.

Mantenha um pequeno registro de permissões junto à tarefa. Inclua responsável, escopo aprovado, controles reais, teste de recusa e validade. Isso torna uma revisão posterior específica o suficiente para melhorar o fluxo de trabalho.

Faça o exercício

Defina permissões para um agente que corrige um filtro de relatórios. Liste três ações permitidas e três negadas. Inclua repositório, branch, ambiente e validade. Descreva como testar cada recusa sem alterar a produção.

Baixar planilha de exercício (Markdown)
Confira seu entendimento ↑

Continuar aprendendo

Fontes e leituras adicionais

Leituras relacionadas da Taiga

← Lição anterior: Defina para onde seus dados podem ir