HashiCorp Vault - AppRole Authentication | Drupal.org

Présentation

Installation

Utilisation

Récupérer un mot de passe avec l'API

Les commandes

Il va nous falloir plusieurs données pour récupérer un mot de passe :

Récupération du VAULT_TOKEN pour accéder aux secrets :

VAULT_TOKEN=$(curl -sSf --data "{\"role_id\":\"<ROLE_ID>\",\"secret_id\":\"$VAULT_SECRET_ID\"}" $VAULT_URL/v1/auth/approle/login | jq -r '.["auth"]["client_token"]')

Récupération des secrets dans le dossier en Json ;

curl -sSf -X GET -H "Accept: */*" -H "X-Vault-Token: $VAULT_TOKEN" "$VAULT_URL/v1/$VAULT_ENGINE/data/approle/$VAULT_ROLE"

Récupération du secret recherché avec jq :

 | jq -r '.["data"]["data"]["$VAULT_SECRET_NAME"]'

 

Fonction Bash

#!/bin/bash

# Variables
VAULT_URL='https://vault.domaine.com'
VAULT_ENGINE='wallet-VPN'
VAULT_ROLE='testmickael'
VAULT_SECRET_ID='a154d15s-f48e-aea8-b99e-ab96f021s74e'
VAULT_SECRET_NAME='password'

function Get-Vault {
    VAULT_TOKEN=$(curl -sSf --data "{\"role_id\":\"$VAULT_ROLE\",\"secret_id\":\"$VAULT_SECRET_ID\"}" $VAULT_URL/v1/auth/approle/login | jq -r '.["auth"]["client_token"]')
    SECRET=$(curl -sSf -X GET -H "Accept: */*" -H "X-Vault-Token: $VAULT_TOKEN" "$VAULT_URL/v1/$VAULT_ENGINE/data/approle/$VAULT_ROLE" | jq -r '.["data"]["data"]["password"]')
    echo "$SECRET"
}

PASSWORD=$(Get-Vault)

 

Fonction Python