Armazenamento de segredos no HashiCorp Vault
O Semaphore UI oferece suporte ao HashiCorp Vault como armazenamento de segredos.

Você pode fornecer as seguintes opções:
- URL do HashiCorp Vault — endereço do seu servidor Vault.
- Mount — o caminho de montagem do mecanismo de segredos.
- Token — token de autenticação. O token pode ser:
-
Armazenado no banco de dados.
-
Fornecido por meio de uma variável de ambiente.
-
Fornecido por meio de um arquivo (útil para o Vault Agent).
atençãoQuando o token vem de um arquivo, esse arquivo deve estar dentro do diretório de segredos usado pelo Semaphore. Configure esse diretório usando
dirs.secretsou a variável de ambienteSEMAPHORE_SECRETS_PATH. A opção legada de nível superiorsecrets_pathainda é aceita para configurações antigas. Se nenhuma delas estiver definida, o padrão é/tmp/semaphore. Consulte Diretório de segredos para detalhes sobre a precedência.Exemplo de fragmento de
config.json:{
"dirs": {
"secrets": "/root/path/for/secrets"
}
}
-
O armazenamento pode funcionar em modo somente leitura.
Como usar
- Configure a conexão com o HashiCorp Vault nas configurações do Semaphore (URL, caminho de montagem e token).
- Ao criar ou editar uma chave no Armazenamento de Chaves, selecione HashiCorp Vault como o tipo de armazenamento.
- Forneça o caminho do segredo no Vault onde a credencial deve ser armazenada.

HashiCorp Vault Agent
Em vez de armazenar o token do Vault diretamente, você pode usar o HashiCorp Vault Agent para lidar automaticamente com a obtenção e a renovação do token.
O Vault Agent é executado como um processo sidecar ao lado do Semaphore e grava um token válido em um arquivo no disco. O Semaphore então lê o token desse arquivo.
Para configurar isso:
-
Configure e execute o Vault Agent com um método de auto-auth apropriado (por exemplo, AppRole, Kubernetes, AWS IAM).
-
Configure o Vault Agent para gravar o token em um arquivo usando um bloco
sink, por exemplo:auto_auth {
method {
type = "approle"
config = {
role_id_file_path = "/etc/vault/role-id"
secret_id_file_path = "/etc/vault/secret-id"
}
}
sink {
type = "file"
config = {
path = "/etc/vault/token"
}
}
} -
No Semaphore, ao configurar a conexão com o HashiCorp Vault, selecione Arquivo como a origem do token e forneça o caminho do arquivo do token (por exemplo,
/etc/vault/token).
Essa abordagem evita tokens estáticos de longa duração e permite que o Vault Agent cuide da autenticação e da renovação do token automaticamente.
Grupos de Variáveis
O HashiCorp Vault também pode ser usado como armazenamento para Grupos de Variáveis. Ao editar um grupo de variáveis, selecione HashiCorp Vault como o tipo de armazenamento e especifique o caminho da pasta onde os segredos serão armazenados.
