Maison >développement back-end >tutoriel php >Un petit désastre, beaucoup de motivation : créer un gestionnaire de secrets CLI

Un petit désastre, beaucoup de motivation : créer un gestionnaire de secrets CLI

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-05 22:54:12451parcourir

Alors parlons d'une petite mésaventure qui s'est transformée en une motivation majeure. Mon tout nouveau Macbook Pro M3, fraîchement sorti de la boîte, a décidé de se briquer après une mise à jour logicielle de routine. Cueez de la musique dramatique. Et avec elle, toutes mes précieuses données sont parties, y compris ces satanés secrets comme les clés API, les clés SSH et les scripts shell personnels. Le pire ? Un déploiement de production critique se profilait dans deux jours seulement.

L'effet domino des secrets perdus

Mes secrets disparus, j'ai dû contacter différentes équipes et départements pour en obtenir de nouveaux. Malheureusement, ce processus a pris plus de temps que prévu dans le monde de l’entreprise. Les retards dans l'acquisition de ces clés essentielles ont finalement conduit au report du déploiement.

Pourquoi un gestionnaire de secrets CLI ?

Cet incident m'a obligé à repenser ma stratégie de gestion des secrets. Bien sûr, j'aurais pu simplement compresser les secrets et les transférer sur Google Drive, OneDrive ou S3. Mais soyons réalistes, cela représente un risque de sécurité énorme :

  • Accès non autorisé : Si quelqu'un accède à votre compte de stockage cloud, il pourrait potentiellement mettre la main sur vos informations sensibles.
  • Violations de données : Les fournisseurs de stockage cloud, bien que généralement sécurisés, ne sont pas à l'abri des violations de données.

La protection des archives par mot de passe est une option, mais je suis trop paresseux pour le faire. L'utilisation d'un service tiers comme LastPass est une autre possibilité, mais cela nécessite des mises à jour et une gestion manuelles ; encore une fois, paresseux.

Il existe également des applications natives qui proposent une synchronisation automatique, mais soyons honnêtes, les applications gratuites sont soit mal entretenues, soit ont une mauvaise expérience utilisateur. Et les payants ? Pfft, s'il vous plaît.

Même s'il y en a un qui répond à toutes mes exigences, en tant qu'ingénieur logiciel, je n'ai pas pu résister à l'envie de créer le mien ; quelque chose que je pourrais contrôler et personnaliser. J'ai donc décidé de créer mon propre gestionnaire de secrets CLI.

Quel est le plan ?

Je construis une application CLI qui me permettra de :

  • Store : Utilisation d'un cryptage fort et de mécanismes de stockage sécurisés.
  • Récupérer :Avec des commandes simples pour accéder aux secrets dont j'ai besoin.
  • Gérer : Ajoutez, supprimez et mettez à jour facilement des secrets.
  • Sync : Garantissez la cohérence sur plusieurs machines.
  • Partager : Partagez des secrets en toute sécurité avec d'autres personnes à l'aide de clés asymétriques.

J'ai choisi PHP et Laravel Zero comme pile technologique pour ce projet. Pourquoi PHP, demandez-vous ? Bon, c'est un langage que j'aime plus que mon ex, à qui je suis encore un peu accroché, mais au moins je ne suis pas accroché à Python. Et Laravel est un framework solide comme le roc. Pour rendre l'application accessible à un public plus large, je vais essayer de créer un binaire autonome en utilisant static-php-cli et box-project.

Restez à l'écoute pour en savoir plus

Je partagerai des mises à jour régulières sur le processus de développement, y compris les défis, les solutions et les meilleures pratiques. Je publierai également le projet sur GitHub une fois terminé, afin que vous puissiez y contribuer ou l'utiliser vous-même.

Alors, attachez votre ceinture et rejoignez-moi dans ce voyage passionnant alors que je construis un gestionnaire de secrets CLI puissant (?) et sécurisé.

A Little Bit of a Disaster, A Lot of Motivation: Building a CLI Secret Manager

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn