Aller au contenu

Vault

Vault Vault by HashiCorp est un outil open source permettant de gérer les secrets et de protéger les données sensibles. Un secret est tout ce dont vous voulez contrôler étroitement l'accès, comme les clés API, les mots de passe ou les certificats.

L'approche de Vault est conçue pour les infrastructures dynamiques dont le périmètre réseau n'est pas connu (exemple multi cloud) et s'appuie sur sécurité renforcée par l'identité.


Note

Dans ce tutoriel, remplacez les valeurs suivantes comme suit :

  • ZONE_NAME à remplacer par le nom de votre zone d'administration (commence par ocb-).
  • CLUSTER_NAME à remplacer par le nom du cluster Kubernetes provisioné par Caascad

Introduction

Vault fourni différents moyens de gérer les informations sensibles pour vos applications et votre infrastructure. Les secrets sont stockés dans un magasin de données (data store) chiffré et peuvent être récupérés via une API REST.

  • Différentes méthodes d'authentification et de gestion des secrets sont possibles en fonction des cas d'utilisation.

  • L'accès aux secrets est contrôlé par des politiques d'accès (policies) qui peuvent être liées à des identités (opérateurs, applications). Les policies peuvent permettre ou refuser l'accès à certaines parties de l'API Vault.

  • L'API la plus utilisée est le "KV store secrets engine" qui permet de stocker des données secrètes arbitraires dans Vault. Son utilisation est décrite dans la section suivante.

  • Dans Caascad, les utilisateurs peuvent se connecter à Vault avec un backend OIDC (Keycloak) comme les autres applications Caascad. En fonction de vos rôles Keycloak, vous aurez plus ou moins d'accès à l'API Vault.

Accéder à Vault

Dans votre environnement d'administration, le service Vault est situé à l'adresse suivante :

https://vault.ZONE_NAME.caascad.com

Rôles disponibles

Les roles globaux caascad-devops et caascad-devops-<CLUSTER_NAME> permettent un accès à vault et au management des secrets de la CI Concourse et aux secrets destinés aux applications Kubernetes.

Login

Pour pouvoir vous connecter à Vault, vous devez utiliser vos informations d'identification Keycloak. Pour plus d'informations sur Keycloak, consultez la page Authentification.

WebUI

  • Choisissez la méthode OIDC dans la liste déroulante
  • Cliquez sur le bouton "Sign in with OIDC Provider"

  • Une fenêtre popup devrait apparaître pour se connecter. Si votre navigateur bloque cette popup la première fois, vous devez autoriser les popups pour ce site web et cliquer à nouveau sur "Sign in with OIDC Provider".

  • Le popup affichera la page de connexion de Keycloak. Cliquez sur "Log In".

  • Ensuite, entrez votre utilisateur / mot de passe

CLI

Vous pouvez télécharger le binaire vault correspondant à votre OS sur https://www.vaultproject.io/downloads.

Pour vous connecter avec la CLI:

export VAULT_ADDR=https://vault.ZONE_NAME.caascad.com
vault login -method=oidc

Cela ouvrira une page de connexion dans votre navigateur. Une fois connecté, vous pouvez fermer la page et revenir à la console.

Vous devriez voir une sortie comme celle-ci :

$ vault login -method=oidc
Complete the login via your OIDC provider. Launching browser to:

    https://keycloak.ocb-demo.caascad.com/auth/realms/ocb-test01/protocol/openid-connect/auth?client_id=vault&nonce=739b2167e4c0d71a60ef3878c9aa31566497361e&redirect_uri=http%3A%2F%2Flocalhost%3A8250%2Foidc%2Fcallback&response_type=code&scope=openid&state=d1629b03a05e515beb774f4d0f108b59404dc55d


Success! You are now authenticated. The token information displayed below is already stored in the token helper. You do NOT need to run "vault login" again. Future Vault requests will automatically use this token.

Key                  Value
---                  -----
token                XXXXXXXXXXX
token_accessor       Sb9s3OJXBiCpFzFLP3JKC2n1
token_duration       168h
token_renewable      true
token_policies       ["default"]
identity_policies    ["caascad-concourse-member"]
policies             ["caascad-concourse-member"]
token_meta_role      caascad

Ceci a permis de récupérer et de stocker un jeton (token) pour accéder à Vault avec la CLI. Dans cet exemple, le jeton expirera dans 168h. Une fois qu'il a expiré, répétez la même procédure pour récupérer un nouveau jeton.

Pour afficher les informations sur le jeton authentifié :

$ vault token lookup
Vous obtiendrez notamment la date d'expiration de votre jeton.

Lien utile