Práticas recomendadas para proteger segredos

Este artigo ajuda-o a proteger segredos e a reduzir o risco de acesso não autorizado. Siga estas orientações para ajudar a garantir que não armazena informações sensíveis, como credenciais, no código, nos repositórios do GitHub, nos registos ou nos pipelines de integração contínua/entrega contínua (CI/CD). A orientação deste artigo provém de recomendações individuais de serviços e do Microsoft Cloud Security Benchmark (MCSB).

Este artigo está alinhado com o modelo de segurança Confiança Zero da Microsoft, que requer verificação explícita, acesso com privilégios mínimos e a suposição de violação. Para controlos de segurança prescritivos que incluem a aplicação do Azure Policy, consulte Microsoft Cloud Security Benchmark v2: Acesso Privilegiado e MCSB v2: Proteção de Dados.

Descoberta secreta e prevenção

Antes de poderes proteger os teus segredos, precisas de ter visibilidade sobre onde eles existem. Também precisas de controlos que impeçam a exposição antes que ocorra.

  • Realize uma auditoria para identificar segredos: Audite os seus sistemas e aplicações para identificar informações sensíveis que necessitem de proteção, como palavras-passe, chaves API, cadeias de ligação e outras credenciais. Auditorias regulares ajudam a garantir que o seu inventário contabiliza novos segredos e que gere corretamente os segredos existentes. Proteja segredos criados dinamicamente, como tokens OAuth temporários, com o mesmo rigor que segredos de longo prazo.

  • Evite codificar segredos de forma rígida: Incorporar segredos diretamente no código ou ficheiros de configuração cria um risco de segurança significativo. Se os atacantes comprometem a tua base de código, também comprometem os teus segredos. Em vez disso, use variáveis de ambiente ou ferramentas de gestão de configuração que mantenham segredos fora do código-fonte. Esta prática minimiza o risco de exposição acidental e simplifica as atualizações secretas. Integre a recuperação de segredos no seu pipeline de implementação automatizada e utilize padrões de injeção de segredos para ajudar a evitar a exposição acidental em registos ou no controlo de versões. Para obter mais informações, consulte Recomendações para proteger segredos de aplicativos.

  • Implemente ferramentas de análise de segredos: Analise regularmente a sua base de código à procura de segredos embutidos para ajudar a evitar exposições acidentais. Ferramentas como o Azure DevOps Credential Scanner e o GitHub secret scanning podem detetar e alertar automaticamente para segredos em repositórios. Integre estas ferramentas no seu pipeline CI/CD para monitorização contínua. Trate qualquer segredo descoberto pelas ferramentas de análise como comprometido. Revogue e substitua imediatamente para manter a integridade da sua postura de segurança.

Armazenamento seguro e encriptação

Proteger segredos requer mecanismos de armazenamento seguros e encriptação adequada em todas as fases.

  • Utilize repositórios seguros de chaves: Serviços como Azure Key Vault e Azure Key Vault Managed HSM oferecem funcionalidades de segurança, incluindo controlo de acesso, registo de eventos e rotação automática. Esta abordagem centraliza a gestão secreta e reduz o risco de acesso não autorizado. Para segredos altamente sensíveis ou críticos, utilize um armazenamento de chaves apoiado por módulo de segurança de hardware (HSM) para maior proteção em comparação com armazenamentos secretos baseados em software. Para cenários de chave geridos pelo cliente, use o Azure Key Vault Premium tier, que é pelo menos suportado por HSM. Use o Azure Key Vault Managed HSM para os requisitos de soberania-chave. Para uma visão geral das ofertas de gestão de chaves do Azure e orientações sobre qual escolher, consulte Gestão de chaves no Azure e Como escolher a solução certa de gestão de chaves.

  • Encripte segredos em repouso e em trânsito: O Azure Key Vault armazena segredos de forma segura através de encriptação por envelope, onde as chaves de encriptação de chaves encriptam as chaves de encriptação de dados para fornecer uma camada adicional de segurança. Use protocolos de comunicação seguros, como o HTTPS, para encriptar dados em trânsito entre as suas aplicações e o cofre de chaves. No Azure, vários serviços implementam encriptação em repouso usando encriptação AES 256. TLS e MACsec protegem os dados em trânsito. Para mais informações, consulte Encriptação em repouso e em trânsito.

  • Implemente isolamento de rede: Configure firewalls e grupos de segurança de rede para restringir o acesso aos seus cofres de chaves. Permita apenas que aplicações e serviços confiáveis acedam aos seus segredos. Esta abordagem minimiza a superfície de ataque e ajuda a prevenir acessos não autorizados. Considere usar múltiplos cofres de chaves para criar limites de isolamento para diferentes componentes. Se os atacantes comprometerem um componente, este não consegue controlar outros segredos nem toda a carga de trabalho.

Controlo de acesso e identidade

Gerir quem e o que pode aceder a segredos é fundamental para manter a segurança.

  • Use identidades geridas: As identidades geridas no Azure fornecem uma forma segura para as aplicações autenticarem nos serviços do Azure sem armazenar credenciais em código. Permitir identidades geridas para recursos do Azure aceder de forma segura ao Azure Key Vault e a outros serviços, reduzindo a necessidade de gerir segredos manualmente. Esta abordagem minimiza a criação de segredos e reduz a área de superfície para potenciais violações porque a plataforma gere as credenciais.

  • Aplique controlo de acesso granular: Siga o princípio do menor privilégio aplicando controlo de acesso granular aos seus segredos. Use o controlo de acesso baseado em papéis do Azure (Azure RBAC) para garantir que apenas entidades autorizadas tenham acesso a segredos específicos. Revise e atualize regularmente as permissões de acesso para impedir o acesso não autorizado. Implemente papéis distintos como utilizador, administrador e auditor para gerir o acesso a segredos. Esta prática ajuda a garantir que apenas as identidades de confiança tenham o nível adequado de permissão. Para mais informações, consulte o guia RBAC do Azure Key Vault.

Gestão secreta do ciclo de vida

Os segredos exigem uma gestão contínua ao longo de todo o seu ciclo de vida, desde a criação até à reforma.

  • Rodar os segredos regularmente: Os segredos são suscetíveis a fugas ou exposição ao longo do tempo. Altere regularmente os seus segredos para reduzir o risco de acesso não autorizado. Podes rodar segredos no Azure Key Vault para certos segredos. Para segredos que não podem rodar automaticamente, estabeleça um processo manual de rotação e elimine-os quando deixarem de ser usados. Automatize a rotação secreta e incorpore redundância na sua gestão de segredos para ajudar a garantir que a rotação não perturba a disponibilidade dos serviços. Implemente lógica de repetição de tentativas e padrões de acesso concorrente no código para ajudar a minimizar problemas durante o período de rotação.

  • Distribua segredos de forma segura: Quando distribuir segredos, partilhe-os de forma segura dentro e fora da organização. Use ferramentas concebidas para partilha segura e inclua procedimentos secretos de recuperação nos seus planos de recuperação de desastres. Se os atacantes comprometerem ou divulgarem uma chave, regenere-a imediatamente. Use chaves distintas para cada consumidor em vez de partilhar chaves, mesmo que os consumidores tenham padrões de acesso semelhantes. Esta prática simplifica a gestão e revogação de chaves, permitindo revogar chaves comprometidas sem afetar outros consumidores.

Monitorização e registo

A monitorização contínua deteta atividades suspeitas e apoia os requisitos de conformidade.

  • Monitorizar e registar acessos: Ative o registo e monitorização do seu sistema de gestão secreta para rastrear acesso e utilização. Use Key Vault logging, Azure Monitor ou Azure Event Grid para monitorizar todas as atividades relacionadas com os seus segredos. A monitorização proporciona visibilidade sobre quem acedeu aos seus segredos e ajuda a detetar comportamentos suspeitos ou potenciais incidentes de segurança. Mantenha registos de auditoria detalhados para inspecionar e validar o acesso a segredos, o que pode ajudar a prevenir o roubo de identidade, evitar o repúdio e reduzir a exposição desnecessária.

Orientações específicas para o serviço na gestão de segredos

Os serviços individuais podem ter mais boas práticas e orientações para proteger segredos. Os exemplos incluem:

Próximos passos

Minimizar o risco de segurança é uma responsabilidade compartilhada. Tome medidas proativas para garantir a sua carga de trabalho. Para obter mais informações, consulte Responsabilidade compartilhada na nuvem.