Incident Post Mortem : 23 novembre 2021

IAavec

Résumé

Entre 16h00 et 17h36 environ, heure du Pacifique, le mardi 23 novembre, nous avons subi une panne dans la plupart des systèmes de production Coinbase. Pendant cette panne, les utilisateurs n’ont pas pu accéder à Coinbase à l’aide de nos sites Web et applications, et n’ont donc pas pu utiliser nos produits. Cet article est destiné à décrire ce qui s’est passé et les causes, et à discuter de la façon dont nous prévoyons d’éviter de tels problèmes à l’avenir.

L’incident

Le 23 novembre 2021 à 16 h 00 PT (24 novembre 2021 00 h 00 UTC), un certificat SSL pour un nom d’hôte interne dans l’un de nos comptes Amazon Web Services (AWS) a expiré. Le certificat SSL expiré a été utilisé par bon nombre de nos équilibreurs de charge internes, ce qui a entraîné l’échec de la majorité des communications interservices. En raison du fait que notre couche de routage API se connecte aux services principaux via des sous-domaines de ce nom d’hôte interne, environ 90 % du trafic API entrant a renvoyé des erreurs.

Les taux d’erreur sont revenus à la normale une fois que nous avons pu migrer tous les équilibreurs de charge vers un certificat valide.

Graphique illustrant le taux d’erreur global de 90 % au niveau de notre couche de routage API pour la durée de l’incident.

Contexte : Certificats chez Coinbase

Il est utile de fournir des informations générales sur la façon dont nous gérons les certificats SSL chez Coinbase. Pour la plupart, les certificats pour les noms d’hôtes publics comme coinbase.com sont gérés et provisionnés par Cloudflare. Pour les certificats des noms d’hôtes internes utilisés pour acheminer le trafic entre les services principaux, nous avons historiquement utilisé les certificats de serveur AWS IAM.

L’un des inconvénients des certificats de serveur IAM est que les certificats doivent être générés en dehors d’AWS et chargés via un appel d’API. Ainsi, l’année dernière, notre équipe d’infrastructure a migré des certificats de serveur IAM vers AWS Certificate Manager (ACM). ACM résout le problème de sécurité car AWS génère à la fois les composants publics et privés du certificat dans ACM et stocke la version chiffrée dans IAM pour nous. Seuls les services connectés comme Cloudfront et Elastic Load Balancers auront accès aux certificats. Nier le acm : Certificat d’exportation l’autorisation à tous les rôles AWS IAM garantit qu’ils ne peuvent pas être exportés.

En plus des avantages de sécurité supplémentaires, ACM renouvelle également automatiquement les certificats avant leur expiration. Étant donné que les certificats ACM sont censés se renouveler et que nous avons effectué une migration, comment cela s’est-il passé ?

Analyse de la cause originelle

Les intervenants en cas d’incident ont rapidement remarqué que le certificat expiré était un certificat de serveur IAM. C’était inattendu car la migration ACM susmentionnée avait été largement médiatisée dans les canaux de communication d’ingénierie à l’époque ; ainsi, nous avions fonctionné en supposant que nous fonctionnions exclusivement sur des certificats ACM.

Comme nous l’avons découvert plus tard, l’une des migrations de certificats ne s’est pas déroulée comme prévu ; le groupe d’ingénieurs travaillant sur la migration a téléchargé un nouveau certificat IAM et a reporté le reste de la migration. Malheureusement, le retard n’a pas été aussi largement communiqué qu’il aurait dû l’être et les changements apportés à la structure de l’équipe et au personnel ont fait que le projet a été considéré à tort comme terminé.

Mis à part le statut migratoire, vous pouvez poser la même question que nous nous sommes posée : « Pourquoi n’avons-nous pas été alertés de l’expiration de ce certificat ? » La réponse est : nous l’étions. Des alertes étaient envoyées à un groupe de distribution de courriers électroniques dont nous avons découvert qu’il ne se composait que de deux personnes. Ce groupe était à l’origine plus grand, mais s’est rétréci avec le départ des membres de l’équipe et n’a jamais été suffisamment repeuplé car de nouvelles personnes ont rejoint l’équipe.

En bref, le certificat critique a été autorisé à expirer en raison de trois facteurs :

  1. La migration d’IAM vers ACM était incomplète.
  2. Les alertes d’expiration n’étaient envoyées que par e-mail et étaient filtrées ou ignorées.
  3. Seules deux personnes figuraient sur la liste de distribution par courrier électronique.

Résolution et améliorations

Afin de résoudre l’incident, nous avons migré tous les équilibreurs de charge qui utilisaient le certificat IAM expiré vers le certificat ACM à renouvellement automatique existant qui avait été provisionné dans le cadre du plan de migration d’origine. Cela a pris plus de temps que souhaité en raison du nombre d’équilibreurs de charge impliqués et de notre prudence dans la définition, le test et l’application des modifications d’infrastructure requises.

Afin de nous assurer que nous ne rencontrons plus un problème comme celui-ci, nous avons pris les mesures suivantes pour traiter les facteurs mentionnés dans la section RCA ci-dessus :

  1. Nous avons terminé la migration vers ACM, n’utilisons plus de certificats de serveur IAM et supprimons tous les certificats hérités pour réduire le bruit.
  2. Nous ajoutons une surveillance automatisée qui est connectée à notre système d’alerte et de pagination pour augmenter les alertes par e-mail. Ceux-ci seront affichés sur l’expiration imminente ainsi que sur le moment où les certificats ACM ne sont plus éligibles au renouvellement automatique.
  3. Nous avons ajouté un alias de groupe permanent à la liste de distribution des e-mails. De plus, ce groupe est automatiquement mis à jour au fur et à mesure que les employés rejoignent et quittent l’entreprise.
  4. Nous construisons un référentiel d’opérations de résolution d’incidents afin de réduire le temps de définition, de test et d’application de nouvelles modifications.

Nous prenons très au sérieux la disponibilité et les performances de notre infrastructure, et nous travaillons dur pour soutenir les millions de clients qui choisissent Coinbase pour gérer leur crypto-monnaie. Si vous souhaitez relever des défis comme ceux énumérés ici, venez travailler avec nous.


Incident Post Mortem : le 23 novembre 2021 a été initialement publié dans The Coinbase Blog on Medium, où les gens poursuivent la conversation en soulignant et en répondant à cette histoire.

Source blog.coinbase.com

Investissez avec l'IA
Comet by Perplexity
1 mois de Pro offert

Donnez votre avis

Soyez le 1er à noter cet article


Partagez cet article maintenant !

Envoyez simplement nos contenus crypto et finance à vos proches.