
vault v2.0.4
Uma ferramenta para gerenciamento de segredos, criptografia como serviço e gerenciamento de acesso privilegiado
Vault

Atenção: Levamos a segurança do Vault e a confiança dos nossos usuários muito a sério. Se você acredita ter encontrado um problema de segurança no Vault, por favor, divulgue-o de forma responsável entrando em contato conosco em [email protected].
- Site: developer.hashicorp.com/vault
- Lista de anúncios: Google Groups
- Fórum de discussão: Discuss
- Documentação: https://developer.hashicorp.com/vault/docs
- Tutoriais: https://developer.hashicorp.com/vault/tutorials
- Exame de certificação: https://developer.hashicorp.com/certifications/security-automation
- Fonte da documentação: https://github.com/hashicorp/web-unified-docs
O Vault é uma ferramenta para acessar segredos com segurança. Um segredo é qualquer coisa para a qual você deseja controlar rigidamente o acesso, como chaves de API, senhas, certificados e muito mais. O Vault fornece uma interface unificada para qualquer segredo, enquanto oferece controle de acesso rigoroso e registra um log de auditoria detalhado.
Um sistema moderno requer acesso a uma infinidade de segredos: credenciais de banco de dados, chaves de API para serviços externos, credenciais para comunicação em arquitetura orientada a serviços, etc. Entender quem está acessando quais segredos já é muito difícil e específico da plataforma. Adicionar rotação de chaves, armazenamento seguro e logs de auditoria detalhados é quase impossível sem uma solução personalizada. É aqui que o Vault entra em cena.
As principais funcionalidades do Vault são:
-
Armazenamento Seguro de Segredos: O Vault pode armazenar pares arbitrários de chave/valor. O Vault criptografa os dados antes de gravá-los no armazenamento persistente, portanto, obter acesso ao armazenamento bruto não é suficiente para acessar seus segredos. O Vault pode gravar em disco, Consul e muito mais.
-
Segredos Dinâmicos: O Vault pode gerar segredos sob demanda para alguns sistemas, como AWS ou bancos de dados SQL. Por exemplo, quando uma aplicação precisa acessar um bucket S3, ela solicita credenciais ao Vault, e o Vault gerará um par de chaves AWS com permissões válidas sob demanda. Após criar esses segredos dinâmicos, o Vault também os revogará automaticamente quando o prazo de locação expirar.
-
Criptografia de Dados: O Vault pode criptografar e descriptografar dados sem armazená-los. Isso permite que as equipes de segurança definam parâmetros de criptografia e que os desenvolvedores armazenem dados criptografados em um local, como um banco de dados SQL, sem precisar projetar seus próprios métodos de criptografia.
-
Locação e Renovação: O Vault associa uma locação a cada segredo. No final da locação, o Vault revoga automaticamente o segredo. Os clientes podem renovar as locações por meio de APIs de renovação integradas.
-
Revogação: O Vault possui suporte integrado para revogação de segredos. O Vault pode revogar não apenas segredos individuais, mas uma árvore de segredos, por exemplo, todos os segredos lidos por um usuário específico, ou todos os segredos de um tipo específico. A revogação auxilia na rotação de chaves e também no bloqueio de sistemas em caso de invasão.
Documentação, Primeiros Passos e Exames de Certificação
A documentação está disponível no site do Vault.
Se você é novo no Vault e deseja começar com automação de segurança, confira nossos guias de primeiros passos na plataforma de aprendizado da HashiCorp. Há também guias adicionais para continuar seu aprendizado.
Para exemplos de como interagir com o Vault a partir de sua aplicação em diferentes linguagens de programação, veja o repositório vault-examples. Também está disponível uma aplicação de exemplo pronta para uso.
Mostre seu conhecimento sobre o Vault ao passar em um exame de certificação. Visite a página de certificação para obter informações sobre os exames e encontre materiais de estudo na plataforma de aprendizado da HashiCorp.
Desenvolvendo o Vault
Se você deseja trabalhar no próprio Vault ou em qualquer um de seus sistemas embutidos, primeiro precisará ter o Go instalado em sua máquina.
Para desenvolvimento local, primeiro certifique-se de que o Go está instalado corretamente, incluindo a configuração de um GOPATH e, em seguida, defina a variável GOBIN como $GOPATH/bin. Certifique-se de que $GOPATH/bin esteja no seu PATH, pois algumas distribuições incluem a versão antiga das ferramentas de build.
Em seguida, clone este repositório. O Vault usa Go Modules, portanto, é recomendável clonar o repositório fora do GOPATH. Você pode então baixar as ferramentas de build necessárias inicializando seu ambiente:
$ make bootstrap
...
Para compilar uma versão de desenvolvimento do Vault, execute make ou make dev. Isso colocará o binário do Vault nas pastas bin e $GOPATH/bin:
$ make dev
...
$ bin/vault
...
Para compilar uma versão de desenvolvimento do Vault com a interface do usuário, execute make static-dist dev-ui. Isso colocará o binário do Vault nas pastas bin e $GOPATH/bin:
$ make static-dist dev-ui
...
$ bin/vault
...
Para executar os testes, digite make test. Observação: isso requer que o Docker esteja instalado. Se isso sair com status de saída 0, está tudo funcionando!
$ make test
...
Se você está desenvolvendo um pacote específico, pode executar testes apenas para esse pacote especificando a variável TEST. Por exemplo, abaixo, apenas os testes do pacote vault serão executados.
$ make test TEST=./vault
...
Solução de problemas
Se você encontrar um erro como could not read Username for 'https://github.com', pode ser necessário ajustar sua configuração do git da seguinte forma:
$ git config --global --add url."[email protected]:".insteadOf "https://github.com/"
Importando o Vault
Este repositório publica duas bibliotecas que podem ser importadas por outros projetos:
github.com/hashicorp/vault/api e github.com/hashicorp/vault/sdk.