Le service Azure Key Vault

Azure Key Vault (AKV) est un service important et sous utilisé à mon avis. Il est à la base d’importants patterns de sécurité dans Azure ou en on premises.

 

AKV est un outil d’outsourcing d’informations sensibles comme les certificats, les mots de passe, les chaînes de connexion… L’idée est de décorréler le code source ainsi que l’équipe de dev et de déploiement de ces informations qui seront gérées par d’autres personnes tout en fournissant un moyen standardisé d’y accéder pour vos applications.

Le service offre donc une gestion centralisée de vos informations sensibles, mais aussi d’en surveiller leur usage et le contrôle. Terminé les mots de passe dans la nature un peu partout!

 

Avec Azure Key Vault pour pouvez également crypter/encrypter de façon sécurisée, signer, valider des clefs… Bref une boîte à outils indispensable pour votre stratégie sécurité.

 

Je vais présenter dans cet article les points essentiels du service. D’autres articles vont suivre pour présenter des cas concrets d’utilisation en particulier Managed Service Identity. Je pense que l’on sera amené de plus en plus souvent à utiliser ce service d’où l’importance de savoir l’utiliser.

Création du Key Vault

 

On lance le portail Azure et on se rend sur la page du service Key Vault:

 

On clique sur ADD.

On renseigne le formulaire puis clique sur Pricing Tier:

Je souhaite surtout vous monter que ce service est vraiment très peu coûteux. Moins de 1 euros par mois pour la version Premium. On va prendre P1 (Premium) pour cette démo.

On doit rajouter un coût opérationnel pour chaque usage du service, mais qui est très peu couteux lui aussi:

https://azure.microsoft.com/fr-fr/pricing/details/key-vault/

 

Je parlerai des Access Policies dans un des articles à suivre. Je n’en ai pas besoin pour l’instant. Cliquons sur CREATE afin de construire notre instance AKV.

 

Le processus est très rapide. L’étape suivante sera d’alimenter le vault dans le menu dédié:

 

Clefs, secrets et certificats

Présentation

AKV est un magasin pour 3 types d’informations:

  1. Les clefs
  2. Les secrets
  3. Les certificats

 

La clef cryptographique représente une information cryptographique comme un certificat.

Les secrets sont des informations de type clef/valeur, par exemple un mot de passe. Ils sont stockés sous la forme d’octets car AKV ne se préoccupe pas du type de la donnée. Il existe un support pour la rotation de clefs.

 

AKV peut créer deux types de clefs:

  1. une clef logicielle
  2. une clef HMS

Dans le premier cas la clef est générée par un logiciel, dans le deuxième cas par un boîtier électronique installé dans le centre de données. Le fournisseur est Thales.

Il existe d’autres différences plus profondes. Le boîtier HMS peut être indispensable si vous avez besoin de certaines certifications sécurité. Le module HMS bénéficie d’une validation FIPS 140-2 de niveau 2!! Ca m’amuse d’écrire ça car je n’ai absolument aucune idée de ce que c’est.

L’auteur de cet article est plus musclé que moi sur ce dossier:

https://docs.microsoft.com/fr-fr/azure/key-vault/key-vault-hsm-protected-keys

 

Le service pose également des limites qui ne sont pas les même selon le type de clef. On trouve par exemple ici:

https://docs.microsoft.com/fr-fr/azure/key-vault/key-vault-service-limits

Ce tableau:

Le nombre de création de clef sur une période de 10 seconde dépend de la taille de la clef évidemment. Vous remarquez que le boîtier HMS est 2 fois moins performant également que ce soit en CREATE ou dans les autres transactions (lecture).

Dans le cas où une requête dépasse une limite, une erreur HTTP 429 est retournée:

https://docs.microsoft.com/fr-fr/azure/key-vault/key-vault-ovw-throttling

 

 

Important: AKV supporte également des scénarios où c’est vous même qui apportez votre propre clef (BYOK).

 

Une lecture intéressante pour terminer le chapitre:

https://stackoverflow.com/questions/38277023/what-is-difference-between-keys-and-secrets-in-azure-key-vault

 

Création d’une clef

Commençons par créer une clef.

 

On clique sur KEYS dans le portail puis sur GENERATE/IMPORT:

 

Cet écran dépend du tiers que l’on à choisi. Par exemple en A1 on aurait plutôt:

La différence est que l’on n’a pas la possibilité de créer des clefs HSM.

Remplissons notre formulaire:

Nous allons créer la clef RSA ‘keyDemo’ avec une date d’expiration:

 

Si je clique sur la clef:

Vous voyez que AKV ajoute un numéro de version. Cliquons sur la clef pour avoir plus d’infos:

On retrouve les informations de création de la clef. On peut également modifier quelques réglages comme par exemple désactiver la clef ou changer ses dates de validation.

Notez aussi l’identifiant de la clef, mais surtout qu’à aucun moment la valeur de la clef est affichée.

 

Essayons de changer la version en cliquant sur NEW VERSION:

Cliquons sur CREATE:

AKV conserve l’historique des versions.

Création d’un secret

 

La procédure est très similaire:

CREATE:

Comme pour les clefs ont peut faire un peu d’exploration et notamment:

 

Remarquez qu’il est possible de visualiser la valeur de la clef depuis le portail:

Ce que l’on ne peut pas faire avec une clef.

Certificats

La première étape est de créer notre certificat. On va suivre la procédure trouvée ici:

https://appswin.co.th/2018/02/23/generate-x509-certificate-by-azure-key-vault/

 

On se rend dans le vault et sélectionne le menu Certificates.

 

On peut bien sûr apporter son propre certificat, on se contente de cliquer sur GENERATE.

 

On choisit GENERATE pour créer le certificat, mais on dispose aussi de l’option IMPORT.

 

On renseigne les champs concernés et on fait CREATE. Compter quelques minutes pour terminer.

 

 

 

Pour terminer sur ce chapitre un document intéressant:

https://docs.microsoft.com/fr-fr/azure/key-vault/about-keys-secrets-and-certificates

 

Il ne reste plus qu’à accéder au vault via notre application. Nous verrons cela dans un prochain article.

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s