Google Cloud divulga detalhes do incidente do GCVE
(cloud.google.com)- O incidente de maio de 2024 no Google Cloud envolveu a exclusão de parte do ambiente GCVE da cliente australiana UniSuper; após uma revisão interna, a causa e as medidas de recuperação foram divulgadas
- O impacto ficou limitado a um cliente, uma região e um serviço, e a uma das várias GCVE Private Clouds do cliente; outros clientes e serviços do Google Cloud não foram afetados
- Durante a implantação inicial, um valor de entrada de uma ferramenta interna estava vazio, e o sistema o tratou como um período fixo de 1 ano, fazendo com que a Private Cloud fosse excluída automaticamente após o término desse período
- O cliente e as equipes do Google conduziram uma recuperação 24x7 durante vários dias; backups no GCS e software de backup de terceiros foram usados na restauração
- O Google Cloud adotou medidas para evitar a recorrência de incidentes do mesmo tipo, incluindo a desativação da ferramenta interna, a inspeção manual de todas as GCVE Private Clouds e a correção do comportamento de exclusão
Escopo do incidente
- Este incidente afetou a cliente do Google Cloud UniSuper, e o Google Cloud concluiu uma revisão interna após a recuperação dos sistemas do cliente
- O impacto foi limitado, do ponto de vista dos serviços gerenciados pelo Google, a:
- Um cliente
- Uma região de nuvem
- O uso de Google Cloud VMware Engine(GCVE) pelo cliente
- Uma Private Cloud distribuída por duas zonas entre as várias GCVE Private Clouds do cliente
- Também foram identificados itens não afetados:
- Outros serviços do Google Cloud
- Outros clientes que usam GCVE ou outros serviços do Google Cloud
- Outras GCVE Private Clouds, Google Accounts, Orgs, Folders e Projects desse cliente
- Backups de dados do Google Cloud Storage(GCS) na mesma região
Causa: parâmetro vazio em uma ferramenta interna
- No início de 2023, um operador do Google implantou uma das GCVE Private Clouds do cliente usando uma ferramenta interna para atender a um requisito específico de alocação de capacidade
- Essa ferramenta era usada em um processo de exceção para gestão de capacidade e, no 4º trimestre de 2023, foi desativada e totalmente automatizada, deixando de exigir intervenção humana
- O operador seguiu os procedimentos de controle interno, mas um dos parâmetros de entrada estava vazio durante o provisionamento da Private Cloud
- Por causa do parâmetro vazio, o sistema atribuiu a esse parâmetro um valor padrão até então desconhecido: um período fixo de 1 ano
- Quando o período de 1 ano atribuído pelo sistema terminou, a GCVE Private Cloud do cliente foi excluída
Por que não houve notificação ao cliente
- A exclusão não foi uma solicitação do cliente, mas resultou de um parâmetro vazio deixado quando um operador do Google usou uma ferramenta interna
- Se o próprio cliente tivesse solicitado a exclusão, haveria notificação prévia, mas nenhuma notificação ao cliente foi enviada para esta exclusão
- O Google Cloud explicou que corrigiu as condições que dispararam o incidente e o comportamento do subsistema para evitar que o mesmo aconteça novamente
Processo de recuperação
- O cliente e as equipes do Google colaboraram em regime 24x7 durante vários dias nas tarefas de recuperação
- Recuperação da GCVE Private Cloud do cliente
- Restauração das configurações de rede e segurança
- Restauração de aplicações
- Recuperação de dados para restabelecer toda a operação
- A abordagem arquitetural robusta e resiliente do cliente ajudou na recuperação
- Os backups de dados armazenados no Google Cloud Storage na mesma região não foram afetados pela exclusão
- Esses backups e o software de backup de terceiros tiveram papel importante na restauração rápida
Medidas para evitar recorrência
- O Google Cloud adotou várias medidas para impedir a repetição do incidente
- Desativou a ferramenta interna que desencadeou o fluxo do incidente
- Mesmo quando uma gestão específica de capacidade é necessária, agora ela é controlada pelo cliente por meio da interface de usuário, e as partes relacionadas foram totalmente automatizadas
- Limpou o banco de dados do sistema e revisou manualmente todas as GCVE Private Clouds para confirmar que nenhuma outra implantação do GCVE estava exposta ao risco
- Corrigiu o comportamento do sistema que, nesse fluxo de implantação, marcava GCVE Private Clouds para exclusão
- O Google Cloud avaliou que não houve incidente anterior dessa natureza e que não se tratou de um problema sistêmico
- Os serviços do Google Cloud contam, conforme necessário, com salvaguardas como soft delete, notificações prévias e combinações com human-in-the-loop, e foi confirmado que essas proteções continuam mantidas
- A colaboração estreita com o cliente foi importante para a recuperação rápida, e gestão de risco resiliente e mecanismos fail-safe para incidentes inesperados são essenciais para uma recuperação rápida
- O Google Cloud afirmou que, apesar deste incidente pontual, seu uptime e sua resiliência foram verificados de forma independente como estando entre os melhores das principais nuvens
1 comentários
Comentários do Hacker News
Considerando a escala do impacto deste incidente, é surpreendente que as melhorias não sejam mais profundas. Tudo que fizeram foi impedir que o mesmo problema se repetisse da mesma forma; se no futuro surgir uma falha equivalente em algum lugar, os resultados podem ser parecidos ou piores.
Por exemplo, ao encerrar um serviço, não deveriam apagar tudo imediatamente: deveriam manter os dados por alguns dias em um estado recuperável com um único botão; ou auditar os fluxos de exclusão de todos os serviços para avisar o cliente antes do encerramento por qualquer motivo; ou inserir uma revisão manual para o encerramento de serviços ativos acima de certo porte.
Sem medidas amplas como essas, essa análise pós-incidente não tranquiliza em nada. Para um incidente tão absurdo, qualquer provedor que tenha um mínimo de orgulho do próprio serviço ou queira proteger sua reputação deveria ter demonstrado, até em excesso, que algo assim nunca mais aconteceria; mas o Google Cloud parece ter feito apenas o mínimo.
Desde meus tempos de iniciante, a ideia de excluir imediatamente dados que não eram mais necessários já não fazia sentido. Em bancos de dados, o básico era usar soft delete, com uma coluna para marcar exclusão; para dados em disco, movê-los ou renomeá-los até ter certeza de que podiam mesmo ser apagados; e, ainda assim, manter backups.
Se você é cliente do GCP e tem um TAM, fazer esta pergunta vai deixá-lo em uma situação difícil: pergunte quais proteções existem para impedir que grandes quantidades de recursos da sua conta sejam apagadas por engano quando o GCP cometer um erro administrativo.
Eles provavelmente responderão que o problema específico foi mitigado com a desativação daquela ferramenta e mais automação; então você pode continuar: “Eu sei que isso foi corrigido. Então há revisão humana antes de exclusões em grande escala?”
Como alguém que já trabalhou no GCP e usou a AWS de forma ativa por mais tempo, a impressão é que as proteções baseadas em pessoas do GCP são quase inexistentes e muito menores que as da AWS. De qualquer forma, vale muito a pena perguntar ao TAM sobre esse risco real.
Se um número suficiente de TAMs reclamar, talvez um dia alguém lá em cima se mexa.
Eles dizem que “a equipe do Google trabalhou 24x7 por vários dias”, mas parecem não saber o que significa esse 7.
Uau, eu estava errado. Achei que, em algo como Terraform, a exclusão imediata sem período de recuperação fosse o padrão, e que alguém da UniSuper tivesse testado algo e definido mal o escopo da exclusão. Ainda seria um problema de padrão, mas eu achava que seria erro de uma ferramenta de terceiros e da UniSuper.
O fato de que, na verdade, foi um problema do Google é insano. A UniSuper deve ter pensado: “Que diabos?”
Posts relacionados: UniSuper members go a week with no account access after Google Cloud misconfig[0](186 points, 16 days ago, 42 comments), Google Cloud accidentally deletes customer's account [1](128 points, 15 days ago, 32 comments)
[0]: https://news.ycombinator.com/item?id=40304666
[1]: https://news.ycombinator.com/item?id=40313171
O fato de não terem parado na investigação de uma ferramenta ou procedimento específico e também terem verificado se o restante não tinha problemas de exclusão automática, além de conferir o comportamento de soft delete, soa como uma revisão bastante minuciosa.
Indo um passo além, também poderiam ter analisado todos os casos de valores padrão para ver se havia algum comportamento padrão surpreendente. Mas pode ser difícil julgar o que é “surpreendente”, já que muitas vezes quem menos conhece a ferramenta ou a API é justamente quem usa os valores padrão como estão.
Antes já era automatizado e agora ficou mais automatizado; isso não dá nenhuma tranquilidade de que o mecanismo de exclusão seja consistentemente seguro. Só quer dizer que não há mais um operador no banco do motorista.
“Após o fim do período de 1 ano concedido pelo sistema, o GCVE Private Cloud do cliente foi excluído. A exclusão foi acionada porque um operador do Google, usando uma ferramenta interna, deixou um parâmetro em branco; como não foi uma solicitação de exclusão feita pelo cliente, nenhuma notificação foi enviada ao cliente. Se a exclusão tivesse sido iniciada pelo próprio cliente, teria havido um aviso prévio.”
Tcharam! Somos incompetentes a ponto de permitir que uma exclusão enorme aconteça sem revisão humana. Felizmente esse cliente não confiava em nós e tinha backups fora do GCP, então não se deu completamente mal.
“Não houve antes no Google Cloud um incidente dessa natureza. Não é um problema sistêmico.”
Traduzindo: “Meu Deus, os vendedores da AWS e da Azure citaram nosso fracasso colossal e mandaram três e-mails para cada prospect.”
É difícil acreditar que o primeiro alvo de um incidente desses tenha sido um fundo mútuo de bilhões de dólares. Fico feliz que o problema da UniSuper tenha sido resolvido, mas provavelmente houve outros casos pequenos o bastante para serem ignorados.
Só espero que isso sirva como o empurrão de que o GCP precisava.
“O Google apagou nosso serviço de nuvem” é uma grande notícia para uma empresa de qualquer porte.
Dizem que “o CIO e a equipe técnica do cliente merecem elogios por trabalhar em estreita colaboração com a equipe do Google Cloud e realizar a recuperação 24x7 de forma rápida e precisa”; fico curioso se receberam só elogios no post do blog ou se conseguiram arrancar uma montanha de créditos do Google Cloud.
Sou cliente da UniSuper na Austrália. Na época eu não sabia o que estava acontecendo, mas recebia e-mails todos os dias enquanto eles tentavam resolver. Fiquei sabendo pelo noticiário o que de fato tinha acontecido. A sensação foi de que reduziram tudo a algo como indisponibilidade de sistemas.
Dá até vertigem imaginar que algo realmente aconteceu com bilhões de dólares em dinheiro das pessoas e fundos de aposentadoria.
Alguns dias depois também veio um e-mail com o assunto “A letter from the CEO”.
“Gostaríamos de trazer uma atualização sobre a interrupção dos serviços.”
“Em primeiro lugar, peço desculpas pessoalmente por esta falha e agradeço pela paciência enquanto nossas equipes trabalham dia e noite para restaurar nossos sistemas online, de forma gradual.”
Naquelas circunstâncias, acho difícil exigir uma comunicação mais clara ou uma explicação mais explícita sobre o que estava acontecendo dentro do Google Cloud.
O anúncio inicial sobre esse incidente foi bastante enganoso. Dava a entender que o Google tinha apagado por engano a conta inteira do GCP. Lendo este texto, fiquei um pouco mais tranquilo. Parece que o que se perdeu foi apenas um conjunto de máquinas virtuais do tamanho de uma região, e algo assim pode de fato acontecer; acredito que meus sistemas conseguiriam lidar com isso sem grandes problemas.
O texto original soava como se buckets do GCS de todas as regiões, bancos de dados SQL etc. tivessem desaparecido todos de uma vez, o que é um problema completamente diferente, e espero poder confiar que o Google não fará algo assim.