Skip to content
Latchkey

O Que É Least Privilege?

Least privilege significa que um job de CI recebe exatamente as permissões de que precisa para fazer seu trabalho - e nada mais - para que um comprometimento tenha um raio de impacto pequeno.

Um pipeline que pode fazer qualquer coisa é um pipeline que, se comprometido, permite que um atacante faça qualquer coisa. O princípio do least privilege mantém as permissões de cada job mínimas e específicas, para que o dano de um token vazado ou de uma dependência maliciosa fique contido.

O princípio

Conceda o menor conjunto de permissões suficiente para a tarefa. Um job de teste raramente precisa de acesso de escrita a qualquer coisa; um job de deploy precisa fazer deploy de um serviço, não administrar a conta.

Aplicando no CI

  • Reduza o escopo do token da plataforma - por exemplo permissions: contents: read por padrão, ampliando apenas onde necessário.
  • Dê às roles de OIDC uma política de confiança restrita e permissões de nuvem mínimas.
  • Separe jobs de leitura de jobs de escrita para que a maior parte do pipeline não tenha acesso de escrita.

Um pequeno exemplo

Definir permissions: contents: read no nível do workflow torna o token padrão somente leitura. Um único job que precisa comentar em um PR adiciona pull-requests: write apenas para si mesmo - o resto do pipeline não consegue escrever nada.

Por que importa mais no CI

O CI executa código quase não confiável: actions de terceiros, dependências e pull requests. O least privilege assume que qualquer um deles pode ser hostil e garante que, mesmo assim, o job não consiga ir além de sua atribuição restrita.

Auditando privilégios

As permissões se acumulam com o tempo. Revise periodicamente o que cada workflow e role pode fazer e corte tudo o que não é usado - o acesso que um pipeline nunca exerce é puro prejuízo se ele um dia for comprometido.

Principais conclusões

  • Least privilege dá a um job apenas as permissões de que ele precisa.
  • Deixe os tokens como somente leitura por padrão e amplie de forma restrita onde necessário.
  • Isso limita o raio de impacto de um token vazado ou de uma dependência hostil.

Guias relacionados