Programadores · Acesso privilegiado (PAM)
A ferramenta de linha de comandos authguard-secrets (CI e aplicações)
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?
| Comando | O 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 FILE | Cria 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ção | Variá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, key | AUTHGUARD_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-000000000000O 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.
Esta página ajudou?
Obrigado. A resposta fica guardada apenas neste browser; não enviamos nada.
Lamentamos. Experimente:
- pesquisar com o texto exato da mensagem ou o código de erro
- consultar o índice de códigos de erro
- falar com o administrador da sua organização