# Sécuriser l'accès à votre cloud provider : une bonne pratique

Après plusieurs années à intervenir sur des solutions déployées auprès de divers cloud providers, je remarque une tendance parmi de nombreux utilisateurs, en particulier les développeurs : le stockage en clair de leurs accès dans leurs fichiers de configuration.

je n'évoquerai pas les raisons pour lesquelles cette pratique est à éviter. Je vais plutôt vous présenter une solution parmi d'autres, en m'appuyant sur les outils que j'utilise actuellement, l'objectif étant de vous sensibiliser à cette bonne pratique.

*Considérons une plateforme déployée sur AWS par une équipe gérant ses accès à l’aide du gestionnaire de mots de passe* [*KeePassXC*](https://keepassxc.org/) *et d'un Macbook.*

La CLI AWS permet par défaut de stocker ces accès dans le fichier **~/.aws/credentials**.

En se rapprochant de la [documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) concernant ce fichier, nous découvrons qu'il existe différentes méthodes pour fournir ces informations. Cependant, celle que l'on retrouve le plus fréquemment dans les exemples en ligne ressemble à ceci :

![](https://media.licdn.com/dms/image/D4E12AQH4Yy8L57K7Ew/article-inline_image-shrink_1500_2232/0/1694313167525?e=1712188800&v=beta&t=78caDr0D_61tiVMPii6IGXNlHgB1_FxMMR0iWDC-cuI align="left")

C’est donc logiquement cette méthode que l’on retrouve le plus souvent sur les machines des utilisateurs et la source de notre problématique.

Revenons sur la documentation de ce fichier et intéressons-nous plus particulièrement au paramètre [**credential\_process**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Nous y apprenons que celui-ci nous permet de spécifier un exécutable pour récupérer nos accès attendus sous le format suivant :

![](https://media.licdn.com/dms/image/D4E12AQH5_hQ1Bxf3Xw/article-inline_image-shrink_1500_2232/0/1694315023345?e=1712188800&v=beta&t=jcMObN7LPxtYhv_61oXjJkS1QxgMJIo3Akbbsu4jl90 align="left")

Afin de tester le fonctionnement de ce paramètre, je vous propose d'écrire un premier script Bash :

![](https://media.licdn.com/dms/image/D4E12AQGptXbx79dh_A/article-inline_image-shrink_1500_2232/0/1694314799114?e=1712188800&v=beta&t=yF0UtCz7ho4m8JLVtc_cyMqrqG2PXVefhwlVBJxAoE0 align="left")

Puis de vérifier l'accès à notre cloud provider en exécutant la commande suivante :

![](https://media.licdn.com/dms/image/D4E12AQHNDIo4embUSw/article-inline_image-shrink_1500_2232/0/1694315830347?e=1712188800&v=beta&t=SGrFG8TX0m5pzIxu1NJstseozLjaM_YvFbFbLO2M1b4 align="left")

Bonne nouvelle, tout fonctionne !

L'objectif étant de ne pas stocker nos accès en clair, nous devons encore modifier ce script afin de récupérer ces derniers à l'aide de notre gestionnaire de mot de passe. Bonne nouvelle encore, KeePassXC possède également une CLI, keepassxc-cli. En revanche le setting **credential\_process** ne nous permettant pas de saisir un mot de passe depuis notre script, nous devons stocker celui-ci à l'aide de l'utilitaire Mac "Trousseaux d'accès".

Pour faire cela, nous pouvons utiliser la commande **security** en entrant un faux mot de passe afin qu'il n'apparaisse pas dans notre historique de commandes puis en allant le modifier directement depuis l'utilitaire :

![](https://media.licdn.com/dms/image/D4E12AQGP0uT1ty1XDQ/article-inline_image-shrink_1500_2232/0/1694316895910?e=1712188800&v=beta&t=nqS1fHeWzZCFplk4uOuDpRb63FHPxDfxuMElUe3AHQY align="left")

![](https://media.licdn.com/dms/image/D4E12AQE1dsfNp1o_kA/article-inline_image-shrink_1000_1488/0/1694316975989?e=1712188800&v=beta&t=MV3a1E7P75riR0BNxdx2wh0f1QyN2xkjgfvCH2haKlA align="left")

N'oubliez pas d'ajouter vos accès dans KeePassXC, ici j'utilise la clé **AWS credentials** pour les identifier :

![](https://media.licdn.com/dms/image/D4E12AQFahBVKVFrsIw/article-inline_image-shrink_1500_2232/0/1694314336419?e=1712188800&v=beta&t=_oqB15tVoW8QligB0gGxKranAldyiquXGxifrYiu9B8 align="left")

Pour les utilisateurs Linux, à la place de security vous pouvez utiliser directement GPG.

Testons à nouveau nos accès à l'aide de la commande AWS précédente. L'utilitaire "Trousseaux d'accès" nous demande bien de saisir notre mot de passe afin de récupérer celui de KeePassXC et la commande AWS s'exécute bien.

Et voilà !

J'espère que ce partage sera utile et croiser de moins en moins ces accès en clair sur vos machines !
