Les certificats numériques (par exemple SSL/TLS, X.509) peuvent être émis et gérés par de nombreux outils différents dans votre chaîne d'outils DevOps. Cependant, plus vous avez d'outils pour gérer l'émission de ces certificats, plus il y a de lacunes dans la gouvernance et la surveillance de la sécurité.
Regardez Anthony Ricci, vice-président de l'ingénierie à Keyfactor, qui présente un exemple de pile technologique et le rôle que jouent les certificats dans le cycle de vie d'un développement.
Transcription complète ci-dessous.
Construction d'un exemple de pile technologique
Comment allez-vous ? Je m'appelle Anthony Ricci. Je suis le vice-président de l'ingénierie à Keyfactor. Aujourd'hui, nous allons parler des défis posés par les certificats numériques dans un environnement DevOps.
Voici un exemple de pile technologique que nous allons passer en revue et expliquer ce que votre organisation peut faire pour développer ou déployer vos applications.
Nous verrons ensuite comment les secrets et la gestion des certificats jouent un rôle dans DevOps.
Infrastructure
En commençant par le bas, voici votre infrastructure. Il peut s'agir essentiellement de métal nu. Il peut s'agir d'un centre de données, ou de plusieurs centres de données. Il peut s'agir d'un environnement basé sur le cloud. Il peut s'agir d'AWS, de Google Cloud, d'Azure, mais cela n'a pas vraiment d'importance. C'est là que tout commence, et nous nous concentrerons ensuite sur le déploiement de vos machines virtuelles dans ces environnements.
Une fois que vous avez configuré l'essentiel de votre infrastructure, parlons maintenant de vos clusters.
Clusters et Service Mesh
Vous pouvez avoir plusieurs clusters, donc dans cet exemple, nous aurons deux clusters. Une fois que vous avez configuré un cluster, vous avez besoin d'un orchestrateur pour le gérer. La plupart des gens déploient Kubernetes et utilisent éventuellement un service mesh comme Istio.
L'utilisation d'un maillage de services dépend de la complexité de votre environnement ou de votre multi-environnement. Le maillage de services vous donne la possibilité d'une découverte basée sur les services, DNS la gestion de vos différents services et pods au sein de ces environnements. Cela permet à tous les éléments de communiquer de manière appropriée. Il vous permet également de gérer un environnement éphémère, dans lequel les choses se mettent en marche et s'arrêtent en permanence.
Entrées logiques et applications
Vous pouvez également avoir une entrée logique ici. Il s'agira donc d'un bord, où vous avez une sorte de serveur web qui va être déployé, pour nous servir. Qu'il s'agisse d'une API, d'un site web ou d'une application que certaines personnes utilisent. Et bien sûr, votre application ou le nombre d'applications que vous déployez. Il s'agit d'un diagramme très simple qui part du bas, de l'infrastructure jusqu'aux applications.
Parlons maintenant de la sécurité.
Ajout des secrets et de la gestion des certificats
Kubernetes est livré avec un SED intégré, où vous pouvez déployer des choses telles que des informations d'identification et des informations secrètes que vous allez utiliser. HashiCorp Vault est un autre produit doté d'une très bonne interface et de nombreuses fonctionnalités intéressantes pour gérer les secrets d'application à l'échelle de l'entreprise.
Ensuite, il y a les certificats numériques. Beaucoup de gens pensent que les certificats SSL sont les seuls certificats numériques utilisés. Pourtant, il en existe beaucoup d'autres.
Nous disposons de l'authentification du client dans un environnement comme celui-ci. L'entrée prend en charge l'utilisation de certificats SSL . Vos orchestrateurs ou pods avec des services devront déployer des certificats mutuels authentifiés (MTL). Avec tous ces outils et applications nécessitant des certificats, où allez-vous les obtenir ?
C'est une excellente question.
Autorités de certification internes
Kubernetes a ce que nous appelons une AC embarquée. Istio dispose d'une autorité de certification intégrée. Et, vous l'avez deviné, Vault dispose également d'une autorité de certification intégrée.
Du point de vue de DevOps, vous avez l'impression d'avoir une sécurité, ce qui est le cas. Cependant, le problème réside dans la gestion de cette sécurité. Ce que nous essayons de faire avec ces environnements DevOps ou le flux de vos applications et le déploiement, c'est de minimiser le coût total de possession (TCO).
Dans ce cas, vous augmentez en fait votre coût total de possession. Vous avez quatre implémentations différentes avec différentes autorités de certification que vous déployez dans cet environnement. Les difficultés rencontrées lors de la mise en œuvre de ces autorités de certification, l'application de la politique et la manière de la gérer, peuvent être très différentes d'une technologie à l'autre.
C'est un gros problème dans l'espace numérique. Il l'a toujours été, mais si nous avions une solution pour vous permettre de le résoudre ?
Automatisation des certificats pour DevOps
Eh bien, nous le faisons, et cela s'appelle Keyfactor.
Nous disposons de PKI as-a-Service, ou infrastructure à clé publique, en tant que service, qui vous permet d'alléger la gestion de ces certificats numériques dans votre environnement. Et cela nous permet de le faire en votre nom.
Dans ce cas, ce que nous essayons de faire, c'est d'éliminer l'émission de ces AC à partir de ces piles technologiques, puis de créer ce que j'appelle les points d'intégration du dernier kilomètre dans le facteur clé. Cela vous donne une approche unifiée de la gestion des certificats dans l'environnement. Vous avez maintenant l'interopérabilité entre les différentes piles technologiques et les capacités pour Keyfactor de gérer ces AC en coulisses.
Qu'est-ce que cela vous apporte vraiment ? Du point de vue DevOps, cela vous donne le contrôle, la visibilité et l'autonomie entre toutes vos différentes AC. Nous donnons à votre groupe InfoSec la capacité de mettre en œuvre des politiques, d'assurer l'audibilité de ces AC et de veiller à ce que vous restiez cohérent ou conforme au sein de votre secteur et de votre organisation.
Cela vous permet, en tant qu'expert DevOps ou développeur d'applications, de vous concentrer sur les caractéristiques et les fonctions de votre application, et de vous assurer de leur déploiement dans la pile.