Práticas recomendadas para proteger segredos
Este artigo fornece orientações sobre como proteger seus segredos e reduzir o risco de acesso não autorizado. Siga estas orientações para ajudar a garantir que você não armazene informações confidenciais, como credenciais em código, repositórios do GitHub, logs, pipelines de integração contínua/implantação contínua (CI/CD) e assim por diante. As orientações neste artigo são compiladas a partir de recomendações de serviços individuais, bem como do Microsoft Cloud Security Benchmark (MCSB).
Melhores práticas gerais
No cenário digital atual, proteger informações confidenciais, como credenciais de aplicativos e segredos, é fundamental. Uma violação pode levar a consequências graves, incluindo perda de dados, penalidades financeiras e danos à reputação. A implementação de uma estratégia abrangente de gestão secreta é essencial para mitigar esses riscos.
Realizar uma auditoria para identificar segredos
Antes de poder proteger seus segredos, você precisa saber onde eles estão. A realização de uma auditoria completa de seus sistemas e aplicativos ajuda a identificar todas as informações confidenciais que precisam de proteção. Isso inclui senhas, chaves de API, cadeias de conexão e outras credenciais. Auditorias regulares garantem que os novos segredos são contabilizados e os existentes são devidamente geridos.
É importante notar que mesmo segredos criados dinamicamente, como tokens OAuth, que podem ser temporários, ainda precisam ser salvaguardados com o mesmo rigor que os segredos de longo prazo.
Evite segredos de hardcoding
Incorporar segredos diretamente em seu código ou arquivos de configuração é um risco de segurança significativo. Se a sua base de código está comprometida, os seus segredos também estão. Em vez disso, use variáveis de ambiente ou ferramentas de gerenciamento de configuração que mantêm os segredos fora do código-fonte. Esta prática minimiza o risco de exposição acidental e simplifica o processo de atualização de segredos.
Além disso, integrar a recuperação de segredos em seu pipeline de implantação automatizado e usar padrões de injeção secretos pode evitar que segredos sejam acidentalmente expostos em logs ou controle de versão, aumentando ainda mais a segurança do seu processo de implantação.
Consulte Recomendações para proteger segredos de aplicativos
Use armazenamentos de chaves seguros
Aproveitar os armazenamentos de chaves seguros garante que seus segredos sejam armazenados em um local seguro e criptografado. Serviços como o Azure Key Vault e o Azure Managed HSM fornecem recursos de segurança robustos, incluindo controle de acesso, registro em log e rotação automática. Esta abordagem centraliza a gestão dos seus segredos e reduz o risco de acesso não autorizado.
Para uma segurança ainda maior, particularmente para segredos altamente confidenciais ou críticos, considere criptografar o segredo com um armazenamento de chaves em um Modelo de Segurança de Hardware (HSM), que oferece proteção aprimorada em comparação com armazenamentos secretos baseados em software. Para obter uma visão geral de todas as ofertas de gerenciamento de chaves no Azure e orientações sobre qual escolher, consulte Gerenciamento de chaves no Azure e Como escolher a solução de gerenciamento de chaves correta.
Implementar ferramentas de verificação secretas
A verificação regular de sua base de código em busca de segredos incorporados pode evitar a exposição acidental. Ferramentas como o Azure DevOps Credential Scanner e o recurso de verificação secreta do GitHub podem detetar e alertar automaticamente sobre quaisquer segredos encontrados em seus repositórios. A integração dessas ferramentas em seu pipeline de CI/CD garante um monitoramento contínuo. É crucial tratar qualquer segredo encontrado por estas ferramentas de digitalização como comprometido, o que significa que deve ser imediatamente revogado e substituído para manter a integridade da sua postura de segurança.
Aproveite as identidades gerenciadas
As identidades gerenciadas no Azure fornecem uma maneira segura para os aplicativos se autenticarem nos serviços do Azure sem armazenar credenciais no código. Ao habilitar identidades gerenciadas para recursos do Azure, você pode acessar com segurança o Cofre de Chaves do Azure e outros serviços, reduzindo a necessidade de manipular segredos manualmente. Essa abordagem não apenas minimiza a criação de segredos, mas também reduz a área de superfície para possíveis violações, já que a responsabilidade pelo gerenciamento de credenciais é delegada à plataforma.
Aplique controle de acesso granular
Siga o princípio do menor privilégio aplicando controle de acesso granular aos seus segredos. Use o RBAC (controle de acesso baseado em função) do Azure 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. Também é aconselhável implementar funções distintas, como usuário, administrador e auditor, para gerenciar o acesso a segredos, garantindo que apenas identidades confiáveis tenham o nível apropriado de permissão.
Consulte o guia RBAC do Azure Key Vault.
Rodar segredos regularmente
Os segredos são suscetíveis a fugas ou exposição ao longo do tempo. Alternar regularmente os seus segredos reduz o risco de acesso não autorizado. Você pode girar segredos no Cofre de Chaves do Azure para determinados segredos, para aqueles que não podem ser girados automaticamente, estabeleça um processo de rotação manual e garanta que eles sejam limpos quando não estiverem mais em uso.
Automatizar o processo de rotação secreta e criar redundância em seu gerenciamento secreto pode garantir que a rotação não interrompa a disponibilidade do serviço. A implementação de lógica de repetição e padrões de acesso simultâneos em seu código pode ajudar a minimizar problemas durante a janela de rotação.
Monitorar e registrar o acesso
Habilite o registro e o monitoramento para seu sistema de gerenciamento secreto para rastrear o acesso e o uso. Use o log do Cofre da Chave e/ou serviços como o Azure Monitor e a Grade de Eventos do Azure para monitorar todas as atividades relacionadas aos seus segredos. Isso fornece visibilidade sobre quem acessou seus segredos e ajuda a detetar qualquer comportamento suspeito ou possíveis incidentes de segurança. Manter trilhas de auditoria detalhadas é fundamental para inspecionar e validar o acesso a segredos, o que pode ajudar a evitar o roubo de identidade, evitar o repúdio e reduzir a exposição desnecessária.
Implementar isolamento de rede
Reduza a exposição dos seus segredos implementando o 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 fidedignos acedam aos seus segredos, minimizando a superfície de ataque e impedindo o acesso não autorizado. Além disso, considere o uso de vários cofres de chaves para criar limites de isolamento para componentes diferentes, garantindo que, se um componente for comprometido, ele não possa obter controle de outros segredos ou de toda a carga de trabalho.
Criptografar segredos em repouso e em trânsito
Certifique-se de que os seus segredos estão encriptados tanto em repouso como em trânsito. O Cofre de Chaves do Azure armazena segredos com segurança usando criptografia de envelope, onde as Chaves de Criptografia de Dados (DEKs) são criptografadas por Chaves de Criptografia de Chave (KEKs), fornecendo uma camada adicional de segurança. Essa abordagem aumenta a proteção contra acesso não autorizado. Além disso, use protocolos de comunicação seguros, como HTTPS, para criptografar dados em trânsito entre seus aplicativos e o cofre de chaves, garantindo que seus segredos sejam protegidos durante o armazenamento e a transmissão.
No Azure, a criptografia em repouso é implementada em vários serviços usando a criptografia AES 256, enquanto os dados em trânsito são protegidos por TLS e MACsec para impedir o acesso não autorizado durante a transmissão. Estas práticas de encriptação fornecem uma proteção abrangente para os seus dados, quer estejam a ser armazenados ou transmitidos entre sistemas. Para obter mais detalhes, consulte Criptografia em repouso e em trânsito.
Distribuição segura de segredos
Ao distribuir segredos, certifique-se de que eles sejam compartilhados com segurança dentro e fora da organização. Use ferramentas projetadas para compartilhamento seguro e inclua procedimentos de recuperação secretos em seus planos de recuperação de desastres. Se uma chave for comprometida ou vazada, ela deve ser regenerada imediatamente. Para aumentar ainda mais a segurança, use chaves distintas para cada consumidor em vez de compartilhar chaves, mesmo que elas tenham padrões de acesso semelhantes. Essa prática simplifica o gerenciamento e a revogação de chaves, garantindo que as chaves comprometidas possam ser revogadas sem afetar outros consumidores.
Práticas recomendadas específicas do serviço
Serviços individuais podem ter práticas recomendadas e orientações adicionais para proteger segredos. Seguem-se alguns exemplos:
- Gerenciamento de API: use valores nomeados nas políticas de Gerenciamento de API do Azure com a Integração do Cofre de Chaves
- Serviço de Aplicativo: Use referências do Cofre de Chaves para o Serviço de Aplicativo e o Azure Functions
- Gateway de Aplicativo: Configurar um Gateway de Aplicativo com terminação TLS usando o portal do Azure
- Automação: Gerenciar credenciais na Automação do Azure
- Configuração do Aplicativo do Azure: Tutorial: Usar referências do Cofre da Chave em um aplicativo ASP.NET Core
- Serviço de Bot do Azure: criptografia do Serviço de Bot do Azure para dados em repouso
- Azure Center for SAP solutions: Azure Center for SAP Solutions - Implantação - Preparar a rede para implantação
- Azure Communications Gateway: Criar e armazenar segredos
- Serviço de Comunicações do Azure: Criar e gerenciar tokens de acesso
- Banco de Dados do Azure para PostgreSQL - Servidor Flexível: Banco de Dados do Azure para PostgreSQL - Criptografia de Dados de Servidor Flexível com uma Chave Gerenciada pelo Cliente
- Azure Databricks: Integração do Key Vault no Databricks
- Azure DevTest Labs: Habilitar identidades gerenciadas atribuídas pelo usuário em máquinas virtuais de laboratório no Azure DevTest Labs
- Azure Front Door: Segredos da Porta da Frente do Azure
- Azure HDInsight no AKS: Pré-requisitos de recursos - Criar Azure Key Vault
- Proteção de Informações do Azure: Detalhes para o Suporte do Cofre de Chaves da Proteção de Informações do Azure
- Serviço Kubernetes do Azure (AKS): Repositório Secreto CSI
- Aplicativos Gerenciados do Azure: segredo do Cofre da Chave de Acesso ao implantar Aplicativos Gerenciados do Azure
- Azure OpenAI: Desenvolver aplicativos de serviços de IA do Azure com o Key Vault
- Azure Pipelines: Protegendo segredos no Azure Pipelines
- Azure Purview: Credenciais para autenticação de origem no Microsoft Purview
- Serviço Azure SignalR: referência secreta do Cofre da Chave nas configurações do modelo de URL
- Barramento de Serviço do Azure: autenticar e autorizar um aplicativo com a ID do Microsoft Entra para acessar entidades do Barramento de Serviço do Azure
- Azure Stack Edge: Gerenciar segredos do Azure Stack Edge usando o Azure Key Vault
- Azure Stack Hub: Girar segredos
- Azure Web PubSub: Adicionar um certificado personalizado
- Backup: configure um cofre para criptografar usando chaves gerenciadas pelo cliente
- Serviços Cognitivos: Desenvolva aplicativos dos Serviços Cognitivos do Azure com o Key Vault
- Data Factory: Armazenar credenciais no Azure Key Vault
- ExpressRoute: Configure a criptografia MACsec para ExpressRoute Direct.
- Funções: Usar referências do Cofre de Chaves para o Serviço de Aplicativo e o Azure Functions
- Cofre da Chave: Sobre os segredos do Cofre da Chave do Azure
- Aplicativos lógicos: Configurações padrão do aplicativo Aplicativos lógicos
- Serviço de Aprendizado de Máquina: Usar segredos de credenciais de autenticação em trabalhos do Azure Machine Learning
- IaaS SQL: Configurar a integração do Azure Key Vault para SQL Server em VMs do Azure (Resource Manager)
- Armazenamento: gerencie chaves de conta de armazenamento com o Cofre de Chaves e a CLI do Azure
Próximos passos
Minimizar o risco de segurança é uma responsabilidade compartilhada. Você precisa ser proativo ao tomar medidas para proteger suas cargas de trabalho. Saiba mais sobre a responsabilidade partilhada na nuvem.
Consulte Práticas recomendadas e padrões de segurança do Azure para obter mais práticas recomendadas de segurança a serem usadas ao projetar, implantar e gerenciar suas soluções de nuvem usando o Azure.