Pular para conteúdo

Identidade e segredos

Objetivo: nenhuma credencial de longa duração copiada à mão.

flowchart LR
    ci["CI (GitHub Actions)"] -- "token OIDC" --> role["Papel na cloud (menor privilégio)"]
    role --> reg["Registry de imagens"]
    store["Cofre de parâmetros"] -- "operador de segredos" --> k8s["Secret no cluster"]
    k8s --> pod["Pod"]

Dois fluxos

  • CI → cloud: o pipeline troca o token OIDC do provedor de Git por um papel temporário. Não existe chave de acesso guardada no repositório.
  • Cluster → segredos: um operador sincroniza valores de um cofre gerenciado para Secrets do Kubernetes. O repositório guarda apenas a referência ao segredo, nunca o valor.

Princípios

  • Menor privilégio por repositório e por função.
  • Rotação acontece no cofre; os pods recebem o valor novo sem mudança de código.
  • Segredos de bootstrap, que não podem vir do cluster, são a exceção explícita e ficam fora do Git.

Trade-offs

O cofre vira dependência de runtime e o operador de segredos é peça crítica. Em troca, desaparecem os segredos em CI e em manifests.