Melhores práticas para a proteção de segredos

Este artigo ajuda você a proteger segredos e reduzir o risco de acesso não autorizado. Siga esta orientação para ajudar a garantir que você não armazene informações sensíveis, como credenciais, em código, repositórios do GitHub, logs ou pipelines de integração contínua/implantação contínua (CI/CD). As orientações deste artigo vêm de recomendações individuais de serviços e do Microsoft Cloud Security Benchmark (MCSB).

Este artigo se alinha ao modelo de segurança Confiança Zero do Microsoft, que requer verificação explícita, acesso de privilégios mínimos e a suposição de violação. Para controles de segurança prescritivos que incluem aplicação do Azure Policy, veja Microsoft Cloud Security Benchmark v2: Acesso Privilegiado e MCSB v2: Proteção de Dados.

Descoberta secreta e prevenção

Antes de conseguir proteger seus segredos, você precisa ter visão de onde eles existem. Você também precisa de controles que previnam a exposição antes que ela aconteça.

  • Realize uma auditoria para identificar segredos: Audite seus sistemas e aplicações para identificar informações sensíveis que precisam de proteção, como senhas, chaves de API, strings de conexão e outras credenciais. Auditorias regulares ajudam a garantir que seu estoque contabilize novos segredos e que você gerencie adequadamente os segredos existentes. Proteja segredos criados dinamicamente, como tokens OAuth temporários, com o mesmo rigor que segredos de longo prazo.

  • Evite codificar segredos fixamente: Incorporar segredos diretamente em arquivos de código ou configuração cria um risco significativo de segurança. Se os atacantes comprometem sua base de código, eles também comprometem seus segredos. Em vez disso, use variáveis de ambiente ou ferramentas de gerenciamento de configuração que mantenham segredos fora do código-fonte. Essa prática minimiza o risco de exposição acidental e simplifica atualizações secretas. Integre a recuperação de segredo ao pipeline de implantação automatizada e use padrões de injeção de segredo para ajudar a evitar a exposição acidental em logs ou no controle de versões. Para saber mais, confira Recomendações para proteger segredos de aplicativos.

  • Implemente ferramentas de escaneamento de segredos: Escaneie regularmente sua base de código em busca de segredos embutidos para ajudar a evitar exposições acidentais. Ferramentas como o Azure DevOps Credential Scanner e o GitHub secret scanning podem detectar e alertar automaticamente sobre segredos em repositórios. Integre essas ferramentas ao seu pipeline de CI/CD para monitoramento contínuo. Trate qualquer segredo encontrado pelas ferramentas de escaneamento como comprometido. Revogue e substitua imediatamente para manter a integridade da sua postura de segurança.

Armazenamento seguro e criptografia

Proteger segredos requer mecanismos de armazenamento seguros e criptografia adequada em todos os estágios.

  • Use repositórios de chaves seguros: Serviços como Azure Key Vault e Azure Key Vault Managed HSM oferecem recursos de segurança, incluindo controle de acesso, registro e rotação automática. Essa 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 respaldado 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 gerenciados pelo cliente, use o Azure Key Vault Premium tier, que é no mínimo respaldado por HSM. Use o Azure Key Vault Managed HSM para os requisitos de soberania chave. Para uma visão geral das ofertas de gerenciamento de chaves do Azure e orientações sobre qual escolher, veja Gerenciamento de chaves no Azure e Como escolher a solução certa de gerenciamento de chaves.

  • Criptografe segredos em repouso e em trânsito: o Azure Key Vault armazena segredos de forma segura por meio de criptografia de envelope, onde chaves de criptografia de chave criptografam chaves de criptografia de dados para fornecer uma camada adicional de segurança. Use protocolos de comunicação seguros, como HTTPS, para criptografar dados em trânsito entre suas aplicações e o cofre de chaves. No Azure, vários serviços implementam criptografia em repouso usando criptografia AES 256. TLS e MACsec garantem dados seguros em trânsito. Para mais informações, veja Criptografia em repouso e em trânsito.

  • Implementar o isolamento de rede: configure firewalls e grupos de segurança de rede para restringir o acesso aos cofres de chaves. Permita que apenas aplicativos e serviços confiáveis acessem seus segredos. Essa 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 comprometem um componente, o componente não pode controlar outros segredos nem toda a carga de trabalho.

Controle de acesso e identidade

Gerenciar quem e o que pode acessar segredos é fundamental para manter a segurança.

  • Usar identidades gerenciadas: Identidades gerenciadas no Azure oferecem uma maneira segura para que os aplicativos se autentiquem nos serviços do Azure sem precisar armazenar credenciais no código. Permitir identidades gerenciadas para recursos do Azure acessarem com segurança o Azure Key Vault e outros serviços, reduzindo a necessidade de lidar manualmente com segredos. Essa abordagem minimiza a criação de segredos e reduz a área de superfície para possíveis violações, pois a plataforma gerencia as credenciais.

  • Aplicar controle de acesso granular: siga o princípio do privilégio mínimo aplicando o controle de acesso granular aos seus segredos. Use o controle de acesso baseado em função do Azure (Azure RBAC) para garantir que apenas entidades autorizadas tenham acesso a segredos específicos. Examine e atualize regularmente as permissões de acesso para impedir o acesso não autorizado. Implemente papéis distintos como usuário, administrador e auditor para gerenciar o acesso aos segredos. Essa prática ajuda a garantir que apenas identidades confiáveis tenham o nível adequado de permissão. Para mais informações, consulte o guia RBAC do Azure Key Vault.

Gerenciamento do ciclo de vida dos segredos

Os segredos exigem gerenciamento contínuo durante todo o ciclo de vida, desde a criação até a aposentadoria.

  • Substituir segredos regularmente: segredos são suscetíveis a vazamento ou exposição ao longo do tempo. Alterne regularmente seus segredos para reduzir o risco de acesso não autorizado. Você pode fazer o rodízio no Azure Key Vault para determinados segredos. Para segredos que não podem girar automaticamente, estabeleça um processo manual de rotação e elimine-os quando não estiverem mais em uso. Automatize a rotação de segredos e construa redundância no seu gerenciamento de segredos para ajudar a garantir que a rotação não atrapalhe a disponibilidade dos serviços. Implemente lógica de retentativa e padrões de acesso concorrente no seu código para ajudar a minimizar problemas durante a janela de rotação.

  • Distribua segredos com segurança: Ao distribuir segredos, compartilhe-os de forma segura dentro e fora da organização. Use ferramentas projetadas para compartilhamento seguro e inclua procedimentos secretos de recuperação em seus planos de recuperação de desastres. Se os atacantes comprometerem ou vazarem uma chave, regenere-a imediatamente. Use chaves distintas para cada consumidor em vez de compartilhar chaves, mesmo que os consumidores tenham padrões de acesso semelhantes. Essa prática simplifica o gerenciamento e revogação de chaves, permitindo que você revoge chaves comprometidas sem afetar outros consumidores.

Monitoramento e registro em log

O monitoramento contínuo detecta atividades suspeitas e apoia os requisitos de conformidade.

  • Monitorar e registrar o acesso: habilite o registro em log e o monitoramento para que seu sistema de gerenciamento de segredos acompanhe o acesso e o uso. Use o registro em log do Key Vault, Azure Monitor ou Grade de Eventos do Azure para monitorar todas as atividades relacionadas aos segredos. O monitoramento oferece visibilidade sobre quem acessou seus segredos e ajuda a detectar comportamentos suspeitos ou possíveis incidentes de segurança. Mantenha trilhas de auditoria detalhadas para inspecionar e validar o acesso a segredos, o que pode ajudar a prevenir roubo de identidade, evitar repudiação e reduzir exposições desnecessárias.

Diretrizes específicas do serviço para manipulação de segredos

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

Próximas etapas

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