Melhores práticas para a proteção de segredos
Este artigo fornece diretrizes sobre como proteger seus segredos e reduzir o risco de acesso não autorizado. Siga essas diretrizes 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 diretrizes desse artigo foram compiladas a partir de recomendações de serviços individuais, bem como do Microsoft Cloud Security Benchmark (MCSB).
Práticas recomendadas gerais
No cenário digital atual, a proteção de informações confidenciais, como credenciais de aplicativos e segredos, é primordial. Uma violação pode levar a graves consequências, incluindo perda de dados, penalidades financeiras e danos à reputação. A implementação de uma estratégia abrangente de gerenciamento de segredos é essencial para mitigar esses riscos.
Realizar uma auditoria para identificar segredos
Antes de 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 novos segredos sejam contabilizados e os existentes sejam gerenciados corretamente.
É importante observar que mesmo segredos criados dinamicamente, como tokens OAuth, que podem ser temporários, ainda precisam ser protegidos com o mesmo rigor que os segredos de longo prazo.
Evitar segredos de hard-coding
Inserir segredos diretamente em seu código ou arquivos de configuração é um risco de segurança significativo. Se sua base de código estiver comprometida, seus segredos também estarão. Em vez disso, use variáveis de ambiente ou ferramentas de gerenciamento de configuração que mantenham os segredos fora do código-fonte. Essa prática minimiza o risco de exposição acidental e simplifica o processo de atualização de segredos.
Além disso, a integração da recuperação de segredos no pipeline de implantação automatizada e o uso de padrões de injeção de segredos podem evitar que os segredos sejam acidentalmente expostos em logs ou no controle de versão, aumentando ainda mais a segurança do processo de implantação.
Confira Recomendações para proteger segredos de aplicativos
Usar repositórios de chaves seguros
Aproveitar repositórios de chaves seguros garante que seus segredos sejam armazenados em um local seguro e criptografado. Serviços como o Azure Key Vault e o HSM Gerenciado do Azure fornecem recursos de segurança robustos, incluindo controle de acesso, registro em log e rotação automática. Essa abordagem centraliza o gerenciamento de seus segredos e reduz o risco de acesso não autorizado.
Para obter uma segurança ainda maior, especialmente para segredos altamente confidenciais ou críticos, considere criptografar o segredo com uma chave armazenada em um Modelo de Segurança de Hardware (HSM), que oferece proteção aprimorada em comparação com os repositórios de segredos baseados em software. Para obter uma visão geral de todas as ofertas de gerenciamento de chaves no Azure e diretrizes sobre as quais escolher, confira Gerenciamento de chaves no Azure e Como escolher a solução certa de gerenciamento de chaves.
Implementar ferramentas de verificação secreta
Verificar regularmente sua base de código em busca de segredos inseridos pode impedir a exposição acidental. Ferramentas como o Verificador de Credenciais do Azure DevOps e o recurso de Verificação de segredo do GitHub podem detectar e alertar automaticamente sobre os segredos encontrados em seus repositórios. A integração dessas ferramentas ao pipeline de CI/CD garante o monitoramento contínuo. É crucial tratar qualquer segredo encontrado por essas ferramentas de verificação como comprometido, o que significa que ele deve ser imediatamente revogado e substituído para manter a integridade de sua postura de segurança.
Aproveitar identidades gerenciadas
As identidades gerenciadas no Azure fornecem uma maneira segura de 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 Azure Key Vault e outros serviços, reduzindo a necessidade de lidar com 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, pois a responsabilidade pelo gerenciamento de credenciais é delegada à plataforma.
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 (RBAC) para garantir que somente entidades autorizadas tenham acesso a segredos específicos. Examine 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 aos segredos, garantindo que apenas identidades confiáveis tenham o nível apropriado de permissão.
Confira o guia do RBAC do Azure Key Vault.
Girar segredos regularmente
Os segredos são suscetíveis a vazamento ou exposição ao longo do tempo. Girar regularmente seus segredos reduz o risco de acesso não autorizado. Você pode rotacionar segredos no Azure Key Vault para determinados segredos; para aqueles que não podem ser rotacionados 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 de segredo e criar redundância em seu gerenciamento de segredo pode garantir que a rotação não interrompa a disponibilidade do serviço. Implementar a lógica de repetição e padrões de acesso simultâneo em seu código pode ajudar a minimizar os problemas durante a janela de rotação.
Monitorar e registrar o acesso
Habilite o registro em log e o monitoramento do sistema de gerenciamento de segredos para controlar o acesso e o uso. Use o registro em log do Key Vault 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 de quem acessou seus segredos e ajuda a detectar qualquer comportamento suspeito ou possíveis incidentes de segurança. A manutenção de trilhas de auditoria detalhadas é essencial 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.
Implementar isolamento de rede
Reduza a exposição de seus segredos implementando o isolamento da 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, minimizando a superfície de ataque e impedindo o acesso não autorizado. Além disso, considere usar vários cofres de chaves para criar limites de isolamento para diferentes componentes, garantindo que, se um componente for comprometido, ele não poderá obter o controle de outros segredos ou de toda a carga de trabalho.
Criptografar segredos inativos e em trânsito
Verifique se seus segredos estão criptografados inativos e em trânsito. O Azure Key Vault armazena segredos com segurança usando criptografia de envelope, em que as chaves de criptografia de dados (DEKs) são criptografadas por chaves de criptografia de chaves (KEKs), fornecendo uma camada adicional de segurança. Essa abordagem aprimora 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 inativa é implementada em vários serviços usando a criptografia AES 256, enquanto os dados em trânsito são protegidos por meio de TLS e MACsec para impedir o acesso não autorizado durante a transmissão. Essas práticas de criptografia fornecem proteção abrangente para seus dados, sejam eles armazenados ou transmitidos entre sistemas. Para obter mais detalhes, confira Criptografia inativa e em trânsito.
Distribuição segura de segredos
Ao distribuir segredos, verifique se eles são compartilhados com segurança dentro e fora da organização. Use ferramentas projetadas para compartilhamento seguro e inclua procedimentos de recuperação de segredos em seus planos de recuperação de desastre. Se uma chave for comprometida ou vazada, ela deverá ser gerada novamente imediatamente. Para aprimorar 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
Os serviços individuais podem ter práticas recomendadas e diretrizes adicionais para proteger segredos. Estes são alguns exemplos:
- Gerenciamento de API: Usar valores nomeados nas políticas do Gerenciamento de API do Azure com a integração do Key Vault
- Serviço de Aplicativo: Usar referências do Key Vault 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 de Aplicativos do Azure: Tutorial: Usar referências do Key Vault em um aplicativo ASP.NET Core
- Serviço de Bot do Azure: Criptografia do Serviço de Bot do Azure para dados inativos
- Centro do Azure para soluções SAP: Centro Azure para Soluções SAP — Implantação — Preparar a rede para implantação
- Gateway de Comunicações do Azure: Criar e armazenar segredos
- Serviços 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 do Azure Front Door
- Azure HDInsight no AKS: Pré-requisitos de recursos — Criar o Azure Key Vault
- Proteção de Informações do Azure: Detalhes do suporte ao Key Vault da Proteção de Informações do Azure
- Serviço de Kubernetes do Azure (AKS): Repositório de Segredos CSI
- Aplicativos Gerenciados do Azure: Acessar o segredo do Key Vault ao implantar Aplicativos Gerenciados do Azure
- OpenAI do Azure: 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 SignalR do Azure: Referência ao segredo do Key Vault nas configurações do modelo de URL
- Barramento de Serviços do Azure: autenticar e autorizar um aplicativo do Microsoft Entra ID para acessar as entidades do Barramento de Serviço do Azure
- Azure Stack Edge: Gerenciar os segredos do Azure Stack Edge usando o Azure Key Vault
- Azure Stack Hub: Girar os segredos
- Azure Web PubSub: Adicionar um certificado personalizado
- Backup: Configurar um cofre para criptografar usando chaves gerenciadas pelo cliente
- Serviços Cognitivos: Desenvolver aplicativos dos Serviços Cognitivos do Azure com o Key Vault
- Data Factory: Armazenar credenciais no Azure Key Vault
- ExpressRoute: Configurar a criptografia MACsec para o ExpressRoute Direct.
- Functions: Usar referências do Key Vault para o Serviço de Aplicativo e o Azure Functions
- Key Vault: Sobre segredos do Azure Key Vault
- Aplicativos Lógicos: Configurações de Aplicativo Padrão dos Aplicativos Lógicos
- Serviço do Azure Machine Learning: Usar segredos de credenciais de autenticação em trabalhos do Azure Machine Learning
- IaaS do SQL: Configurar a integração do Azure Key Vault para o SQL Server em VMs do Azure (Resource Manager)
- Armazenamento: Gerenciar chaves de contas de armazenamento com o Key Vault e a CLI do Azure
Próximas etapas
Minimizar o risco à segurança é uma responsabilidade compartilhada. É preciso ser proativo e tomar medidas para proteger suas cargas de trabalho. Saiba mais sobre a responsabilidade compartilhada na nuvem.
Confira Melhores práticas e padrões de segurança do Azure para ver mais melhores práticas segurança para usar ao projetar, implantar e gerenciar soluções de nuvem usando o Azure.