Incidente post mortem: 23 de novembro de 2021 PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Incidente post mortem: 23 de novembro de 2021

Sumário

Entre 4h e aproximadamente 00h5 (horário do Pacífico) na terça-feira, 36 de novembro, tivemos uma interrupção na maioria dos sistemas de produção da Coinbase. Durante esta interrupção, os usuários não conseguiram acessar a Coinbase usando nossos sites e aplicativos e, portanto, não puderam usar nossos produtos. Esta postagem tem como objetivo descrever o que ocorreu e as causas, e discutir como planejamos evitar tais problemas no futuro.

The Incident

Em 23 de novembro de 2021, às 4h PT (00 de novembro de 24 2021h UTC), um certificado SSL para um nome de host interno em uma de nossas contas Amazon Web Services (AWS) expirou. O certificado SSL expirado foi usado por muitos de nossos balanceadores de carga internos, o que causou falha na maioria das comunicações entre serviços. Devido ao fato de nossa camada de roteamento de API se conectar a serviços de back-end por meio de subdomínios desse nome de host interno, cerca de 00% do tráfego de entrada da API retornou erros.

As taxas de erro voltaram ao normal quando conseguimos migrar todos os balanceadores de carga para um certificado válido.

Incidente post mortem: 23 de novembro de 2021 PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.
Gráfico que descreve a taxa geral de erro de 90% em nossa camada de roteamento de API durante o incidente.

Contexto: Certificados na Coinbase

É útil fornecer algumas informações básicas sobre como gerenciamos certificados SSL na Coinbase. Na maior parte, os certificados para nomes de host públicos como coinbase.com são gerenciados e provisionados pela Cloudflare. Para certificados para nomes de host internos usados ​​para rotear o tráfego entre serviços de back-end, historicamente aproveitamos os certificados de servidor IAM da AWS.

Uma das desvantagens dos certificados de servidor IAM é que os certificados devem ser gerados fora da AWS e carregados por meio de uma chamada de API. Então, no ano passado, nossa equipe de infraestrutura migrou dos certificados de servidor IAM para o AWS Certificate Manager (ACM). O ACM resolve o problema de segurança porque a AWS gera os componentes públicos e privados do certificado no ACM e armazena a versão criptografada no IAM para nós. Somente serviços conectados como Cloudfront e Elastic Load Balancers terão acesso aos certificados. Negando o acm:ExportarCertificado a permissão para todas as funções do AWS IAM garante que elas não possam ser exportadas.

Além dos benefícios adicionais de segurança, o ACM também renova automaticamente os certificados antes da expiração. Dado que os certificados ACM deveriam ser renovados e fizemos uma migração, como isso aconteceu?

Análise de causa raiz

Os respondentes de incidentes perceberam rapidamente que o certificado expirado era um certificado de servidor IAM. Isso foi inesperado porque a referida migração do ACM havia sido amplamente divulgada nos canais de comunicação de engenharia da época; portanto, operávamos sob a suposição de que operávamos exclusivamente com certificados ACM.

Como descobrimos mais tarde, uma das migrações de certificados não ocorreu conforme planejado; o grupo de engenheiros que trabalhava na migração carregou um novo certificado IAM e adiou o restante da migração. Infelizmente, o atraso não foi tão amplamente comunicado como deveria e as mudanças na estrutura da equipe e no pessoal resultaram na pretensão incorreta de conclusão do projeto.

Deixando de lado o status de migração, você pode fazer a mesma pergunta que nos perguntamos: “Por que não fomos alertados sobre este certificado expirado?” A resposta é: estávamos. Os alertas estavam sendo enviados para um grupo de distribuição de e-mail que descobrimos consistir apenas em dois indivíduos. Este grupo era originalmente maior, mas diminuiu com a saída de membros da equipe e nunca foi suficientemente repovoado à medida que novas pessoas se juntaram à equipe.

Resumindo, o certificado crítico expirou devido a três fatores:

  1. A migração do IAM para o ACM estava incompleta.
  2. Os alertas de expiração eram enviados apenas por e-mail e eram filtrados ou ignorados.
  3. Apenas dois indivíduos estavam na lista de distribuição de e-mail.

Resolução e melhorias

Para resolver o incidente, migramos todos os balanceadores de carga que usavam o certificado IAM expirado para o certificado ACM existente com renovação automática que foi provisionado como parte do plano de migração original. Isso demorou mais do que o desejado devido ao número de balanceadores de carga envolvidos e à nossa cautela na definição, teste e aplicação das alterações necessárias na infraestrutura.

Para garantir que não teremos problemas como esse novamente, tomamos as seguintes medidas para abordar os fatores mencionados na seção RCA acima:

  1. Concluímos a migração para o ACM, não usamos mais certificados de servidor IAM e estamos excluindo quaisquer certificados legados para reduzir ruídos.
  2. Estamos adicionando monitoramento automatizado conectado ao nosso sistema de alerta e paginação para aumentar os alertas por e-mail. Eles avisarão sobre a expiração iminente, bem como quando os certificados ACM deixarem de ser elegíveis para renovação automática.
  3. Adicionamos um alias de grupo permanente à lista de distribuição de e-mail. Além disso, este grupo é atualizado automaticamente à medida que os funcionários ingressam e saem da empresa.
  4. Estamos construindo um repositório de operações de remediação de incidentes para reduzir o tempo de definição, teste e aplicação de novas alterações.

Levamos muito a sério o tempo de atividade e o desempenho da nossa infraestrutura e estamos trabalhando duro para apoiar os milhões de clientes que escolhem a Coinbase para gerenciar suas criptomoedas. Se você estiver interessado em resolver desafios como os listados aqui, venha trabalhar conosco.

Incidente post mortem: 23 de novembro de 2021 PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.


Incidente post mortem: 23 de novembro de 2021 foi publicado originalmente em O blog da Coinbase no Medium, onde as pessoas continuam a conversa destacando e respondendo a essa história.

Source: https://blog.coinbase.com/incident-post-mortem-november-23-2021-d507821b8459?source=rss—-c114225aeaf7—4

Carimbo de hora:

Mais de Coinbase