Cloudflare a annoncé que son stockage d’objets R2 et ses services dépendants ont connu une panne d’une durée de 1 heure et 7 minutes, entraînant 100% d’échecs d’écriture et 35% d’échecs de lecture à l’échelle mondiale.

Cloudflare R2 est un service de stockage d’objets évolutif compatible S3 avec récupération gratuite des données, réplication multirégionale et intégration étroite de Cloudflare.

L’incident, qui a duré entre 21h38 UTC et 22h45 UTC, aurait été causé par une rotation des informations d’identification qui a fait perdre à la passerelle R2 (interface API) l’accès d’authentification au stockage principal.

Plus précisément, de nouvelles informations d’identification ont été déployées par erreur dans un environnement de développement au lieu de la production, et lorsque les anciennes informations d’identification ont été supprimées, le service de production s’est retrouvé sans informations d’identification valides.

Le problème provenait de l’omission d’un seul indicateur de ligne de commande, « production env production », qui entraîne le déploiement des nouvelles informations d’identification sur le travailleur de la passerelle de production R2 plutôt que sur le travailleur de production.

Diagramme d’authentification des travailleurs de la passerelle R2

En raison de la nature du problème et du fonctionnement des services de Cloudflare, la mauvaise configuration n’a pas été immédiatement évidente, entraînant des retards supplémentaires dans sa résolution.

« La baisse des métriques de disponibilité R2 a été progressive et pas immédiatement évidente car il y avait un retard dans la propagation de la suppression précédente des informations d’identification à l’infrastructure de stockage », a expliqué Cloudflare dans son rapport d’incident.

« Cela a retardé notre découverte initiale du problème. Au lieu de nous fier aux métriques de disponibilité après la mise à jour de l’ancien ensemble d’informations d’identification, nous aurions dû valider explicitement quel jeton était utilisé par le service de passerelle R2 pour s’authentifier auprès de l’infrastructure de stockage de R2. »

Bien que l’incident n’ait pas entraîné de perte ou de corruption des données des clients, il a tout de même entraîné une dégradation partielle ou complète du service pour:

  • R2: 100% d’échecs d’écriture et 35% d’échecs de lecture (les objets mis en cache sont restés accessibles)
  • Réserve de cache: Trafic d’origine plus élevé en raison d’échecs de lecture
  • Images et flux: Tous les téléchargements ont échoué, la livraison des images a chuté à 25% et le flux à 94%
  • Sécurité des e-mails, Vectorisation, Livraison des journaux, Facturation, Auditeur de transparence des clés: Différents niveaux de dégradation du service

Pour éviter que des incidents similaires ne se reproduisent à l’avenir, Cloudflare a amélioré la journalisation et la vérification des informations d’identification et impose désormais l’utilisation d’outils de déploiement automatisés pour éviter les erreurs humaines.

L’entreprise met également à jour les procédures opérationnelles normalisées (SOP) pour exiger une double validation pour les actions à fort impact telles que la rotation des informations d’identification et prévoit d’améliorer les contrôles de santé pour une détection plus rapide des causes profondes.

Le service R2 de Cloudflare a subi une autre panne d’une heure en février, également causée par une erreur humaine.

Un opérateur répondant à un rapport d’abus concernant une URL de phishing dans le service a désactivé l’ensemble du service de passerelle R2 au lieu de bloquer le point de terminaison spécifique.

L’absence de garanties et de contrôles de validation pour les actions à fort impact a conduit à la panne, incitant Cloudflare à planifier et à mettre en œuvre des mesures supplémentaires pour améliorer le provisionnement des comptes, un contrôle d’accès plus strict et des processus d’approbation bipartites pour les actions à haut risque.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *