Menu AuthGuardCentro de ajuda
Englishauthguard.pt

Programadores · Acesso privilegiado (PAM)

A ferramenta de linha de comandos authguard-secrets (CI e aplicações)

  • 2 min de leitura
  • SaaS · Instalação própria

Ainda não disponível

Este artigo descreve uma funcionalidade em desenvolvimento. Ainda não a pode usar; o artigo serve para planear.

O authguard-secrets obtém segredos de aplicação de curta duração do cofre do AuthGuard para uma tarefa de CI, um contentor ou um servidor, usando a identidade que a plataforma já dá à tarefa. A ferramenta está construída; os pontos de acesso do servidor que ela chama (/v1/workload/token e /v1/workload/secrets:batchGet) chegam com a API de segredos de aplicação, por isso ainda não pode ser usada contra uma organização real.

Que comandos existem?

ComandoO que faz
get NAME[#FIELD]Escreve um segredo em --out FILE, ou no terminal só com --reveal
env SPEC...Imprime linhas POSIX export, para um pipe ou um ficheiro; recusa um terminal
exec SPEC... -- PROGRAM [ARGS]Executa o programa com os segredos no seu ambiente (sinónimo run)
keygen --out FILECria uma chave de carga de trabalho (ML-DSA-65 por omissão; --alg ed25519 ou es256) e imprime a JWK pública e a sua impressão digital

Uma SPEC tem a forma [VAR=]name[#field]. Um segredo chave-valor sem campo dá uma variável por chave, com o prefixo que indicar. Duas especificações não podem definir a mesma variável.

Que opções são precisas?

OpçãoVariável de ambiente
--url (a origem https da organização)AUTHGUARD_URL
--workload (o UUID da carga de trabalho)AUTHGUARD_WORKLOAD_ID
--identity auto, github, gitlab, kubernetes, keyAUTHGUARD_IDENTITY
--key-file, --key-id (cargas de trabalho com chave)AUTHGUARD_KEY_FILE, AUTHGUARD_KEY_ID
--token-file (Kubernetes, por omissão /var/run/secrets/authguard/token)AUTHGUARD_TOKEN_FILE
--token-env (GitLab, por omissão AUTHGUARD_ID_TOKEN)AUTHGUARD_TOKEN_ENV
--ttl SECONDS (60 a 43200)—

Com auto, a ferramenta deteta o GitHub Actions, o GitLab CI ou o Kubernetes a partir do ambiente da tarefa.

Exemplo: GitHub Actions

permissions:
  id-token: write   # permite à tarefa pedir o seu token de identidade
  contents: read
steps:
  - run: authguard-secrets exec DB_PASSWORD=billing-db -- ./deploy.sh
    env:
      AUTHGUARD_URL: https://acme.example.pt
      AUTHGUARD_WORKLOAD_ID: 00000000-0000-0000-0000-000000000000

O que garante a ferramenta?

  • Só HTTPS, sem redirecionamentos, e um limite de 1 MiB nas respostas.
  • O token de acesso dura 5 minutos e fica ligado a uma chave efémera (DPoP) criada para a execução.
  • Cada segredo chega selado para essa chave; nada fica em cache no disco.
  • Os ficheiros são criados com o modo 0600 e nunca são substituídos sem --force.
  • Os erros mostram texto fixo ou um código de erro, nunca um segredo nem uma descrição do servidor.

O código de saída 2 indica um erro de utilização. Ver Autenticação na API para as outras credenciais de máquina.

Referência do artigodev-secrets-cliindique-a ao suporte para identificar este artigo. Verificado contra o produto no commit 78c33b39.