- L’incident survenu en mai 2024 chez Google Cloud a entraîné la suppression d’une partie de l’environnement GCVE du client australien UniSuper ; après examen interne, les causes et les mesures de restauration ont été rendues publiques
- L’impact a été limité à un client, une région, un service, et à l’un des plusieurs GCVE Private Cloud du client ; les autres clients et les autres services Google Cloud n’ont pas été affectés
- Lors du déploiement initial, une valeur d’entrée d’un outil interne était vide, et le système l’a interprétée comme une durée fixe d’un an ; à l’expiration de cette période, le Private Cloud a été supprimé automatiquement
- Le client et les équipes Google ont mené une restauration 24x7 pendant plusieurs jours, en s’appuyant sur les sauvegardes présentes dans GCS et sur un logiciel de sauvegarde tiers
- Google Cloud a pris des mesures pour éviter qu’un incident du même type ne se reproduise : retrait de l’outil interne concerné, vérification manuelle complète de tous les GCVE Private Cloud, et modification du comportement de suppression
Portée de l’incident
- Cet incident a affecté le client Google Cloud UniSuper, et Google Cloud a finalisé son examen interne après la restauration des systèmes du client
- L’impact a été limité, du point de vue des services gérés par Google, à :
- un client
- une région cloud
- l’utilisation par le client de Google Cloud VMware Engine (GCVE)
- un Private Cloud réparti sur deux zones parmi les plusieurs GCVE Private Cloud du client
- Les éléments non affectés sont également précisés :
- les autres services Google Cloud
- les autres clients utilisant GCVE ou d’autres services Google Cloud
- les autres GCVE Private Cloud du client, ainsi que ses Google Account, Orgs, Folders et Projects
- les sauvegardes de données dans Google Cloud Storage (GCS) situées dans la même région
Cause : un paramètre vide dans un outil interne
- Début 2023, un opérateur Google a déployé l’un des GCVE Private Cloud du client à l’aide d’un outil interne afin de répondre à une contrainte spécifique de placement de capacité
- Cet outil était utilisé dans un processus d’exception pour la gestion de capacité ; il a été retiré et entièrement automatisé au 4e trimestre 2023, ne nécessitant plus d’intervention humaine
- L’opérateur a suivi les procédures de contrôle interne, mais un paramètre d’entrée est resté vide lors du provisionnement du Private Cloud
- En raison de ce paramètre vide, le système a attribué à ce champ une valeur par défaut alors inconnue : une durée fixe d’un an
- À l’expiration de cette période d’un an attribuée par le système, le GCVE Private Cloud du client a été supprimé
Pourquoi le client n’a pas été notifié
- La suppression ne résultait pas d’une demande du client, mais d’un paramètre vide laissé par un opérateur Google lors de l’utilisation d’un outil interne
- Si le client avait demandé lui-même la suppression, une notification préalable aurait été envoyée ; dans ce cas, aucune notification client n’a été émise
- Google Cloud explique avoir corrigé la condition déclenchante de l’incident ainsi que le comportement des sous-systèmes concernés afin d’éviter qu’une telle situation ne se reproduise
Processus de restauration
- Le client et les équipes Google ont collaboré 24x7 pendant plusieurs jours pour mener la restauration :
- restauration du GCVE Private Cloud du client
- restauration des configurations réseau et sécurité
- restauration des applications
- récupération des données pour le rétablissement complet des opérations
- L’approche du client en matière d’architecture robuste et résiliente a contribué à la restauration
- Les sauvegardes de données stockées dans Google Cloud Storage dans la même région n’ont pas été affectées par la suppression
- Ces sauvegardes, ainsi qu’un logiciel de sauvegarde tiers, ont joué un rôle clé dans la rapidité de la restauration
Mesures de prévention de récidive
- Google Cloud a mis en œuvre plusieurs mesures pour empêcher la répétition de l’incident :
- retrait de l’outil interne à l’origine de la chaîne d’événements
- même lorsque des besoins spécifiques de gestion de capacité existent, le contrôle passe désormais par l’interface utilisateur côté client, et les éléments concernés sont entièrement automatisés
- nettoyage de la base de données système et revue manuelle de tous les GCVE Private Cloud afin de vérifier qu’aucun autre déploiement GCVE n’était exposé à un risque similaire
- modification du comportement système qui, dans ce workflow de déploiement, pouvait définir un GCVE Private Cloud comme cible de suppression
- Google Cloud estime qu’aucun incident de cette nature ne s’était produit auparavant et qu’il ne s’agit pas d’un problème systémique
- Google Cloud indique que ses services disposent, selon les besoins, de protections combinant soft delete, notification préalable et human-in-the-loop, et confirme que ces mécanismes restent en place
- Une collaboration étroite avec le client a été essentielle à la rapidité de la restauration, et une gestion résiliente des risques ainsi que des mécanismes fail-safe sont indispensables pour se remettre rapidement d’incidents imprévus
- Google Cloud affirme que, malgré cet incident ponctuel, son uptime et sa résilience figurent parmi les meilleurs du secteur cloud selon une validation indépendante
1 commentaires
Avis Hacker News
Vu l’ampleur de l’impact de cet incident, je suis surpris que les mesures correctives n’aillent pas plus loin. Elles semblent se limiter à empêcher que le même problème se reproduise de la même manière ; si une défaillance équivalente apparaît ailleurs plus tard, le résultat pourrait être similaire, voire pire.
Par exemple, lors de l’arrêt d’un service, il aurait fallu ne pas supprimer immédiatement les données, mais les conserver quelques jours dans un état récupérable en un clic ; ou auditer les flux de suppression de tous les services afin de prévenir le client avant toute résiliation, quelle qu’en soit la raison ; ou encore ajouter une revue manuelle pour l’arrêt de services actifs au-delà d’une certaine échelle.
Sans mesures aussi larges, ce post-mortem n’est pas du tout rassurant. Face à un incident aussi absurde, tout fournisseur ayant un minimum de fierté dans son service ou souhaitant préserver sa réputation aurait dû montrer, quitte à en faire trop, que cela ne se reproduira plus jamais. Google Cloud semble n’avoir fait que le minimum.
Même quand j’étais débutant, l’idée de supprimer immédiatement des données dont on n’a plus besoin n’avait aucun sens. Dans les bases de données, on utilisait une suppression logique avec une colonne servant de marqueur de suppression ; pour les données sur disque, on les déplaçait ou on les renommait jusqu’à être vraiment certain qu’elles pouvaient être effacées, tout en conservant malgré tout des sauvegardes. C’était la base.
Si vous êtes client GCP et que vous avez un TAM, vous pouvez le mettre mal à l’aise en lui posant cette question : quelles protections empêchent GCP de supprimer par erreur une grande quantité de ressources de mon compte en cas d’erreur d’administration de leur part ?
On vous répondra sans doute que ce problème précis a été atténué par l’abandon de l’outil concerné et davantage d’automatisation ; vous pouvez alors enchaîner : « Je sais que ça a été corrigé. Mais y a-t-il une revue humaine avant une suppression à grande échelle ? »
Pour avoir travaillé chez GCP par le passé et utilisé AWS activement pendant encore plus longtemps, j’ai l’impression que les protections fondées sur l’intervention humaine chez GCP sont quasi inexistantes, et bien moins nombreuses que chez AWS. Dans tous les cas, cela vaut vraiment la peine d’interroger votre TAM sur ce risque réel.
Si suffisamment de TAM font du bruit, quelqu’un plus haut finira peut-être par bouger.
« L’équipe Google a travaillé 24x7 pendant plusieurs jours » : on dirait qu’ils ne savent pas ce que signifie le 7.
Waouh, je m’étais trompé. Je pensais que, dans Terraform ou un outil du genre, la valeur par défaut était une suppression immédiate sans période de récupération, et que quelqu’un chez UniSuper avait mal défini la portée d’une suppression pendant des tests. Cela aurait quand même été un problème de valeur par défaut, mais je pensais que l’erreur venait d’un outil tiers et d’UniSuper.
Le fait que ce soit en réalité un problème côté Google est dingue. UniSuper a dû se dire : « mais qu’est-ce que c’est que ça ? »
Articles liés : UniSuper members go a week with no account access after Google Cloud misconfig[0](186 points, il y a 16 jours, 42 commentaires), Google Cloud accidentally deletes customer's account [1](128 points, il y a 15 jours, 32 commentaires)
[0]: https://news.ycombinator.com/item?id=40304666
[1]: https://news.ycombinator.com/item?id=40313171
Le fait qu’ils ne se soient pas arrêtés à l’examen d’un outil ou d’une procédure en particulier, mais qu’ils aient aussi vérifié que le reste ne présentait pas de problème de suppression automatique et contrôlé le comportement de suppression réversible, donne l’impression d’un audit assez approfondi.
Ils auraient pu aller encore plus loin et passer en revue tous les cas de valeurs par défaut pour voir s’il existait des comportements par défaut surprenants. Cela dit, déterminer ce qui est « surprenant » peut être difficile, car ce sont souvent les personnes qui connaissent le moins bien l’outil ou l’API qui conservent les valeurs par défaut.
C’était déjà automatisé avant, et maintenant ça l’est encore davantage ; cela ne rassure en rien sur le fait que le mécanisme de suppression soit systématiquement sûr. Cela signifie seulement qu’il n’y a plus d’opérateur au volant.
« Le GCVE Private Cloud du client a été supprimé après la fin de la période d’un an attribuée par le système. La suppression a été déclenchée parce qu’un opérateur Google utilisant un outil interne a laissé un paramètre vide ; comme il ne s’agissait pas d’une demande de suppression du client, aucune notification client n’a été envoyée. S’il s’était agi d’une suppression initiée directement par le client, une notification préalable aurait été envoyée. »
Tada ! Nous sommes assez incompétents pour laisser se produire une suppression massive sans revue humaine. Heureusement, ce client ne nous faisait pas confiance et disposait de sauvegardes hors GCP, donc il n’a pas été totalement fichu.
« Google Cloud n’avait jamais connu auparavant d’incident de cette nature. Il ne s’agit pas d’un problème systémique. »
Traduction : « Mon Dieu, les commerciaux d’AWS et d’Azure ont cité notre énorme échec et envoyé trois e-mails à chacun de nos prospects. »
Il est difficile de croire que la première cible d’un tel incident ait été un fonds commun de placement de plusieurs milliards de dollars. Je suis content que le problème d’UniSuper ait été résolu, mais il y a probablement eu d’autres cas trop petits pour qu’on y prête attention.
J’espère simplement que cela donnera à GCP le coup de fouet nécessaire.
« Google a supprimé notre service cloud » est une grosse information pour une entreprise de n’importe quelle taille.
Il est écrit que « le DSI et l’équipe technique du client méritent des éloges pour avoir travaillé en étroite collaboration avec l’équipe Google Cloud et mené une récupération 24x7 rapide et précise » ; je me demande s’ils n’ont reçu que des compliments dans le billet de blog, ou s’ils ont aussi obtenu une montagne de crédits Google Cloud.
Je suis client d’UniSuper en Australie. À l’époque, je ne savais pas ce qui se passait, mais je recevais des e-mails tous les jours pendant qu’ils essayaient de résoudre le problème. J’ai appris par la presse ce qui s’était réellement passé. J’ai eu l’impression qu’ils avaient réduit toute l’affaire à un simple temps d’arrêt système.
Quand on imagine ce qui aurait pu réellement arriver à l’argent des gens et aux milliards de dollars réunis dans les fonds de retraite, ça donne le vertige.
Quelques jours plus tard, il y a aussi eu un e-mail intitulé « A letter from the CEO ».
« Nous souhaitons vous faire le point sur l’interruption de service. »
« Tout d’abord, je tiens à vous présenter mes excuses personnelles pour cette panne, et à vous remercier de votre patience pendant que nos équipes travaillent jour et nuit pour remettre progressivement nos systèmes en ligne. »
Dans le contexte, je vois mal comment on pourrait exiger une communication plus claire ou une explication plus précise de ce qui s’était passé en interne chez Google Cloud.
La première annonce sur cet incident prêtait pas mal à confusion. On aurait dit que Google avait supprimé par erreur l’intégralité du compte GCP. En lisant ce billet, je suis un peu rassuré. Il semble que ce qui a été perdu se limite à des machines virtuelles à l’échelle d’une région, et ce genre de chose peut effectivement arriver ; je pense que mon système pourrait l’absorber sans gros problème.
Le texte initial donnait l’impression que tous les buckets GCS, bases de données SQL, etc., de toutes les régions avaient disparu, ce qui serait un problème totalement différent, et j’espère qu’on peut faire confiance à Google pour ne pas faire ce genre de chose.