Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
vault — Uno strumento per la gestione dei segreti, la crittografia come servizio e la gestione degli accessi privilegiati | Kitploit
Strumenti/GitHubGitHub/hashicorp/vault
Autenticazione e AutorizzazioneStrumenti di Crittografia/DecrittografiaSicurezza CloudDevSecOpsRilevamento SegretiGestione Identità e Accessi (IAM)
GitHubhashicorp/vault

vault

Uno strumento per la gestione dei segreti, la crittografia come servizio e la gestione degli accessi privilegiati

Vedi Repository
36.1k4.7k11h 41m faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Vault build ci vault enterprise


Nota bene: Prendiamo molto sul serio la sicurezza di Vault e la fiducia dei nostri utenti. Se ritieni di aver trovato un problema di sicurezza in Vault, segnalalo in modo responsabile contattandoci all'indirizzo [email protected].


  • Sito web: developer.hashicorp.com/vault
  • Lista degli annunci: Google Groups
  • Forum di discussione: Discuss
  • Documentazione: https://developer.hashicorp.com/vault/docs
  • Tutorial: https://developer.hashicorp.com/vault/tutorials
  • Esame di certificazione: https://developer.hashicorp.com/certifications/security-automation
  • Sorgente della documentazione: https://github.com/hashicorp/web-unified-docs
Vault Logo

Vault è uno strumento per accedere in modo sicuro ai segreti. Un segreto è qualsiasi cosa di cui si voglia controllare strettamente l'accesso, come chiavi API, password, certificati e altro. Vault fornisce un'interfaccia unificata per qualsiasi segreto, offrendo al contempo un controllo degli accessi rigoroso e la registrazione di un log di audit dettagliato.

Un sistema moderno richiede l'accesso a moltissimi segreti: credenziali del database, chiavi API per servizi esterni, credenziali per la comunicazione in architettura orientata ai servizi, ecc. Capire chi sta accedendo a quali segreti è già molto difficile e dipendente dalla piattaforma. Aggiungere rotazione delle chiavi, archiviazione sicura e log di audit dettagliati è quasi impossibile senza una soluzione personalizzata. È qui che entra in gioco Vault.

Le caratteristiche principali di Vault sono:

  • Archiviazione sicura dei segreti: Vault può memorizzare coppie chiave/valore arbitrarie. Vault crittografa i dati prima di scriverli nell'archivio persistente, quindi accedere all'archivio grezzo non è sufficiente per ottenere i tuoi segreti. Vault può scrivere su disco, Consul e altro.

  • Segreti dinamici: Vault può generare segreti su richiesta per alcuni sistemi, come AWS o database SQL. Ad esempio, quando un'applicazione deve accedere a un bucket S3, chiede a Vault delle credenziali e Vault genera una coppia di chiavi AWS con permessi validi su richiesta. Dopo aver creato questi segreti dinamici, Vault li revoca automaticamente alla scadenza del lease.

  • Crittografia dei dati: Vault può crittografare e decrittografare i dati senza archiviarli. Questo consente ai team di sicurezza di definire i parametri di crittografia e agli sviluppatori di archiviare dati crittografati in una posizione come un database SQL senza dover progettare i propri metodi di crittografia.

  • Leasing e rinnovo: Vault associa un lease a ogni segreto. Alla scadenza del lease, Vault revoca automaticamente il segreto. I client possono rinnovare i lease tramite API di rinnovo integrate.

  • Revoca: Vault supporta la revoca dei segreti in modo nativo. Vault può revocare non solo singoli segreti, ma un albero di segreti, ad esempio tutti i segreti letti da un utente specifico o tutti i segreti di un determinato tipo. La revoca aiuta nella rotazione delle chiavi e nel bloccare i sistemi in caso di intrusione.

Documentazione, guide introduttive ed esami di certificazione

La documentazione è disponibile sul sito web di Vault.

Se sei nuovo di Vault e vuoi iniziare con l'automazione della sicurezza, consulta le nostre guide introduttive sulla piattaforma di apprendimento di HashiCorp. Sono disponibili anche guide aggiuntive per continuare il tuo apprendimento.

Per esempi su come interagire con Vault all'interno della tua applicazione in diversi linguaggi di programmazione, consulta il repository vault-examples. È disponibile anche un'applicazione di esempio pronta all'uso.

Mostra le tue conoscenze su Vault superando un esame di certificazione. Visita la pagina di certificazione per informazioni sugli esami e trova materiali di studio sulla piattaforma di apprendimento di HashiCorp.

Sviluppare Vault

Se desideri lavorare su Vault stesso o su uno dei suoi sistemi integrati, devi prima avere Go installato sulla tua macchina.

Per lo sviluppo locale, assicurati prima che Go sia installato correttamente, inclusa la configurazione di un GOPATH, quindi imposta la variabile GOBIN su $GOPATH/bin. Assicurati che $GOPATH/bin sia nel tuo PATH poiché alcune distribuzioni includono la vecchia versione degli strumenti di build.

Quindi, clona questo repository. Vault utilizza Go Modules, quindi si consiglia di clonare il repository al di fuori del GOPATH. Puoi quindi scaricare gli strumenti di build necessari bootstrapando il tuo ambiente:

root@kitploit:~
$ make bootstrap
...

Per compilare una versione di sviluppo di Vault, esegui make o make dev. Questo inserirà il binario di Vault nelle cartelle bin e $GOPATH/bin:

root@kitploit:~
$ make dev
...
$ bin/vault
...

Per compilare una versione di sviluppo di Vault con l'interfaccia utente, esegui make static-dist dev-ui. Questo inserirà il binario di Vault nelle cartelle bin e $GOPATH/bin:

root@kitploit:~
$ make static-dist dev-ui
...
$ bin/vault
...

Per eseguire i test, digita make test. Nota: questo richiede che Docker sia installato. Se termina con codice di uscita 0, tutto funziona!

root@kitploit:~
$ make test
...

Se stai sviluppando un pacchetto specifico, puoi eseguire i test solo per quel pacchetto specificando la variabile TEST. Ad esempio, qui sotto verranno eseguiti solo i test del pacchetto vault.

root@kitploit:~
$ make test TEST=./vault
...

Risoluzione dei problemi

Se incontri un errore come could not read Username for 'https://github.com' potresti dover modificare la configurazione di git in questo modo:

root@kitploit:~
$ git config --global --add url."[email protected]:".insteadOf "https://github.com/"

Importare Vault

Questo repository pubblica due librerie che possono essere importate da altri progetti: github.com/hashicorp/vault/api e github.com/hashicorp/vault/sdk.

Nota che questo repository contiene anche Vault (il prodotto) e, come per la maggior parte dei progetti Go, Vault utilizza i moduli Go per gestire le sue dipendenze. Il meccanismo per farlo è il file go.mod. Di fatto, la presenza di quel file rende teoricamente possibile importare Vault come dipendenza in altri progetti. Alcuni altri progetti hanno adottato questa pratica per sfruttare gli strumenti di test sviluppati per testare Vault stesso. Questo non è, e non è mai stato, un modo supportato per utilizzare il progetto Vault. Non è probabile che risolveremo bug relativi al fallimento nell'importare github.com/hashicorp/vault nel tuo progetto.

Vedi anche la sezione "Test basati su Docker" qui sotto.

Test di accettazione

Vault dispone di completi test di accettazione che coprono la maggior parte delle funzionalità dei metodi secret e auth.

Se stai lavorando su una funzionalità di un metodo secret o auth e vuoi verificare che funzioni (e che non abbia rotto altro), ti consigliamo di eseguire i test di accettazione.

Attenzione: I test di accettazione creano/distruggono/modificano risorse reali, che in alcuni casi possono comportare costi reali. In presenza di un bug, è tecnicamente possibile che backend danneggiati lascino dati orfani. Pertanto, esegui i test di accettazione a tuo rischio. Come minimo, ti consigliamo di eseguirli in un account privato separato per il backend che stai testando.

Per eseguire i test di accettazione, invoca make testacc:

root@kitploit:~
$ make testacc TEST=./builtin/logical/consul
...

La variabile TEST è obbligatoria e dovresti specificare la cartella in cui si trova il backend. La variabile TESTARGS è consigliata per filtrare su una risorsa specifica da testare, poiché testarli tutti contemporaneamente può richiedere molto tempo.

I test di accettazione richiedono tipicamente altre variabili d'ambiente da impostare per cose come le chiavi di accesso. Il test stesso dovrebbe segnalare l'errore presto e dirti cosa impostare, quindi non è documentato qui.

Per maggiori informazioni sulle funzionalità di Vault Enterprise, visita il sito Vault Enterprise.

Test basati su Docker

Abbiamo creato un meccanismo di test sperimentale ispirato a NewTestCluster. Un esempio di come utilizzarlo:

root@kitploit:~
import (
  "testing"
  "github.com/hashicorp/vault/sdk/helper/testcluster/docker"
)

func Test_Something_With_Docker(t *testing.T) {
  opts := &docker.DockerClusterOptions{
    ImageRepo: "hashicorp/vault", // or "hashicorp/vault-enterprise"
    ImageTag:    "latest",
  }
  cluster := docker.NewTestDockerCluster(t, opts)
  
  client := cluster.Nodes()[0].APIClient()
  _, err := client.Logical().Read("sys/storage/raft/configuration")
  if err != nil {
    t.Fatal(err)
  }
}

Oppure per Enterprise:

root@kitploit:~
import (
  "testing"
  "github.com/hashicorp/vault/sdk/helper/testcluster/docker"
)

func Test_Something_With_Docker(t *testing.T) {
  opts := &docker.DockerClusterOptions{
    ImageRepo: "hashicorp/vault-enterprise",
    ImageTag:  "latest",
	VaultLicense: licenseString, // not a path, the actual license bytes
  }
  cluster := docker.NewTestDockerCluster(t, opts)
}

Ecco un esempio più realistico di come lo usiamo in pratica. DefaultOptions utilizza hashicorp/vault:latest come repo e tag, ma controlla anche la variabile d'ambiente VAULT_BINARY. Se popolata, copierà il file locale referenziato da VAULT_BINARY nel container. Questo è utile quando si testano modifiche locali.

Invece di impostare l'opzione VaultLicense, puoi impostare la variabile d'ambiente VAULT_LICENSE_CI, che è meglio che effettuare il commit di una licenza nel controllo versione.

Opzionalmente puoi impostare COMMIT_SHA, che sarà aggiunto al nome dell'immagine che costruiamo come comodità di debug.

root@kitploit:~
func Test_Custom_Build_With_Docker(t *testing.T) {
  opts := docker.DefaultOptions(t)
  cluster := docker.NewTestDockerCluster(t, opts)
}

Esistono vari helper nel package github.com/hashicorp/vault/sdk/helper/testcluster, ad esempio questi test sotto creeranno una coppia di cluster a 3 nodi e li collegheranno usando rispettivamente la replica PR o DR, e falliranno se lo stato di replica non diventa sano prima che il contesto passato scada.

Ancora, come scritto, questi dipendono dall'avere un binario di Vault Enterprise localmente e la variabile d'ambiente VAULT_BINARY impostata per puntare ad esso, oltre ad avere VAULT_LICENSE_CI impostata.

root@kitploit:~
func TestStandardPerfReplication_Docker(t *testing.T) {
  opts := docker.DefaultOptions(t)
  r, err := docker.NewReplicationSetDocker(t, opts)
  if err != nil {
      t.Fatal(err)
  }
  defer r.Cleanup()

  ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
  defer cancel()
  err = r.StandardPerfReplication(ctx)
  if err != nil {
    t.Fatal(err)
  }
}

func TestStandardDRReplication_Docker(t *testing.T) {
  opts := docker.DefaultOptions(t)
  r, err := docker.NewReplicationSetDocker(t, opts)
  if err != nil {
    t.Fatal(err)
  }
  defer r.Cleanup()

  ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
  defer cancel()
  err = r.StandardDRReplication(ctx)
  if err != nil {
    t.Fatal(err)
  }
}

Infine, ecco un esempio di esecuzione di un test Docker OSS esistente con un binario personalizzato:

root@kitploit:~
$ GOOS=linux make dev
$ VAULT_BINARY=$(pwd)/bin/vault go test -run 'TestRaft_Configuration_Docker' ./vault/external_tests/raft/raft_binary
ok      github.com/hashicorp/vault/vault/external_tests/raft/raft_binary        20.960s
Scarica lo strumento