Incidente · Sênior
Azure AD mar/2021: rotação remove chave de assinatura
Incidente real. Pontos centrais: autenticação e autorização e deploy progressivo.
Resposta curta
Incidente real. Pontos centrais: autenticação e autorização e deploy progressivo. De cerca das 19:00 UTC de 15 de março de 2021 até as 09:25 UTC, clientes podem ter encontrado erros em operações de autenticação. O impacto alcançou aplicações Microsoft e de terceiros que dependem do Azure AD para autenticação.
01 · CONTEXTO
Quando o provedor de identidade é a dependência de todos
De cerca das 19:00 UTC de 15 de março de 2021 até as 09:25 UTC, clientes podem ter encontrado erros em operações de autenticação. O impacto alcançou aplicações Microsoft e de terceiros que dependem do Azure AD para autenticação.
O post preliminar da Microsoft atribui o incidente a um erro na rotação das chaves que o Azure AD usa em OpenID e em outros protocolos de identidade, para operações criptográficas de assinatura. O caso é, portanto, um problema de disponibilidade que nasce em uma operação de rotação de chaves.
Antes da falha, o funcionamento esperado é este: o Azure AD publica os metadados das chaves de assinatura em um local global, e as aplicações que usam esses protocolos recolhem esse metadado e o mantêm em cache.
O usuário se autentica no serviço de identidade, que emite um token assinado com uma de suas chaves.
O serviço de identidade publica, em um local global, os metadados das chaves de assinatura.
A aplicação recolhe esses metadados e mantém uma cópia em cache.
02 · A CADEIA DE EVENTOS
Uma chave removida por automação
Como higiene de segurança, um sistema automatizado remove, em uma agenda por tempo, as chaves que não estão mais em uso. Nas últimas semanas, uma chave específica havia sido marcada como retain por mais tempo que o normal, para apoiar uma migração entre nuvens complexa.
Essa situação expôs um bug: a automação ignorou o estado retain e removeu justamente aquela chave.
| Elemento | O que o post descreve |
|---|---|
| Automação de remoção | Remove, em agenda por tempo, chaves que não estão mais em uso |
| Chave retida | Marcada como retain por mais tempo que o normal, para uma migração entre nuvens complexa |
| Falha | A automação ignorou o estado retain e removeu aquela chave |
A automação remove a chave marcada como retain, porque ignora esse estado.
Os metadados públicos das chaves mudam às 19:00 UTC.
As aplicações recolhem os novos metadados e deixam de confiar em tokens assinados com a chave removida.
Os usuários finais deixam de conseguir acessar essas aplicações.
A telemetria do serviço identifica o problema e a equipe de engenharia é acionada automaticamente.
A remoção da chave é apontada como causa, e os metadados das chaves voltam ao estado anterior às 21:05 UTC.
03 · A RECUPERAÇÃO
Reverter os metadados não reverte os caches
A Microsoft reverteu os metadados ao estado anterior às 21:05 UTC. Porém as aplicações precisavam recolher os metadados revertidos e renovar seus caches.
O post informa que o tempo até a mitigação varia por aplicação, por causa de implementações de servidor que tratam o cache de formas diferentes.
Um subconjunto de recursos de Storage teve impacto residual por causa de metadados em cache. A Microsoft empurrou uma atualização para invalidar essas entradas e forçar a renovação, e a mitigação para os clientes ainda afetados foi declarada às 09:25 UTC.
Os metadados das chaves voltam ao estado anterior.
Para um subconjunto de recursos de Storage, os metadados em cache mantiveram o impacto residual.
Uma atualização invalida as entradas em cache e força a renovação a partir da origem.
04 · O QUE FALTAVA
Autenticação de backup e implantação segura
No incidente anterior de setembro, a Microsoft havia citado o lançamento de uma autenticação de backup do Azure AD. Neste caso ela não ajudou: cobria a emissão de tokens, mas não a validação, que dependia do endpoint de metadados afetado.
A autenticação de backup cobria a emissão de tokens.
A validação do token dependia do endpoint de metadados afetado.
Sem cobertura para a validação, a autenticação de backup não ajudou neste caso.
O Azure AD tinha em andamento um esforço em várias fases para proteger o sistema de implantação segura (SDP) do backend. A primeira fase protege a adição de uma chave nova; o componente de remoção de chave estava na segunda fase, prevista para meados do ano.
| Etapa | O que o post informa |
|---|---|
| Primeira fase | Protege a adição de uma chave nova |
| Segunda fase | Inclui o componente de remoção de chave, prevista para meados do ano |
| Enquanto isso | Salvaguardas adicionais no processo de remoção de chaves até a conclusão da segunda fase |
05 · LIÇÕES
O que o desenho precisa provar
Em qualquer sistema com um provedor de identidade central, vale separar dois caminhos e perguntar por qual deles cada falha passa: emitir credenciais e validá-las. Um plano de contingência só cobre o que foi desenhado para cobrir.
Remover um artefato compartilhado merece o mesmo rigor de implantação progressiva que criar um: a mudança chega primeiro a uma parte pequena dos consumidores e só avança se os sinais de saúde continuarem normais.
Reverter na origem só ajuda quem relê a origem. Consumidores de metadados precisam de um caminho previsível para renovar ou invalidar o cache, e quem opera o sistema precisa saber usá-lo sob pressão. Alertas de observabilidade sobre falhas de validação encurtam o tempo até a detecção.
Perguntas frequentes
O que é Azure AD mar/2021: rotação remove chave de assinatura?
Incidente real. Pontos centrais: autenticação e autorização e deploy progressivo.
O que o design de Azure AD mar/2021: rotação remove chave de assinatura cobre?
Ele está organizado nestas seções: Quando o provedor de identidade é a dependência de todos, Uma chave removida por automação, Reverter os metadados não reverte os caches, Autenticação de backup e implantação segura e O que o desenho precisa provar.
Quanto tempo leva Azure AD mar/2021: rotação remove chave de assinatura e qual é o nível?
Leva cerca de 14 minutos para ler e tem nível Sênior.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.