Partilhar via


Proteja seu Azure DevOps

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

Quando você está lidando com informações e dados, especialmente em uma solução baseada em nuvem como os Serviços de DevOps do Azure, a segurança deve ser sua principal prioridade. Embora a Microsoft garanta a segurança da infraestrutura de nuvem subjacente, é sua responsabilidade configurar a segurança no Azure DevOps. Este artigo fornece uma visão geral das configurações relacionadas à segurança necessárias para proteger seu ambiente de DevOps do Azure contra ameaças e vulnerabilidades.

Proteja a sua rede

Proteger sua rede é crucial quando você está trabalhando com o Azure DevOps para proteger seus dados e recursos contra acesso não autorizado e ameaças potenciais. Implemente medidas de segurança de rede para ajudar a garantir que apenas fontes confiáveis possam acessar seu ambiente de DevOps do Azure. Para proteger sua rede quando estiver trabalhando com o Azure DevOps, execute as seguintes ações:

  • Configurar a lista de permissões de IP: Restrinja o acesso a endereços IP específicos para permitir o tráfego apenas de fontes confiáveis, reduzindo a superfície de ataque. Para obter mais informações, consulte Configuração da lista de IPs permitidos.
  • Use criptografia de dados: Sempre criptografe dados em trânsito e em repouso. Canais de comunicação seguros usando protocolos como HTTPS. Para obter mais informações, consulte Usar criptografia de dados.
  • Validar certificados: certifique-se de que os certificados são válidos e emitidos por autoridades confiáveis ao estabelecer conexões. Para obter mais informações, consulte Validar certificados.
  • Implementar Firewalls de Aplicações Web (WAFs): Filtre, monitorize e bloqueie tráfego malicioso baseado na Web com WAFs para obter uma camada extra de proteção contra ataques comuns. Para obter mais informações, consulte Implementar firewalls de aplicativos Web (WAFs).
  • Habilitar NSGs (grupos de segurança de rede): Use NSGs para controlar o tráfego de entrada e saída para recursos do Azure, garantindo que apenas o tráfego autorizado seja permitido. Para obter mais informações, consulte a visão geral dos grupos de segurança de rede (NSGs).
  • Usar o Firewall do Azure: Implantar o Firewall do Azure para fornecer uma política de segurança de rede centralizada em várias assinaturas do Azure e redes virtuais. Para obter mais informações, consulte a visão geral do Firewall do Azure.
  • Monitorar o tráfego de rede: Use o Azure Network Watcher para monitorar e diagnosticar problemas de rede, garantindo a segurança e o desempenho da sua rede. Para obter mais informações, consulte a visão geral do Azure Network Watcher.
  • Implementar proteção contra DDoS: Habilite a Proteção contra DDoS do Azure para proteger seus aplicativos contra ataques distribuídos de negação de serviço (DDoS). Para obter mais informações, consulte Proteção contra DDoS do Azure.

Para obter mais informações, consulte Práticas recomendadas de gerenciamento de aplicativos.

Proteja seu ambiente de DevOps do Azure

Para garantir que seu ambiente de DevOps do Azure esteja em conformidade com os padrões e regulamentos do setor, implemente medidas e políticas de segurança. A conformidade com normas como ISO/IEC 27001, SOC 1/2/3 e Regulamento Geral de Proteção de Dados (GDPR) ajuda a proteger seu ambiente e manter a confiança com seus usuários.

  • Garantir a conformidade com os padrões do setor: o Azure DevOps está em conformidade com vários padrões e regulamentos do setor, como ISO/IEC 27001, SOC 1/2/3 e GDPR. Certifique-se de que seu ambiente esteja de acordo com esses padrões.
  • Impor políticas: Implementar políticas para aplicar as práticas recomendadas de segurança em toda a sua organização. Essa ação inclui a exigência de revisões de código e a aplicação de políticas de filiais, políticas de conformidade para pipelinese políticas de segurança .
  • Integração à governança de componentes para CI/CD pelos seguintes motivos:
    • Deteção de vulnerabilidades de segurança: alerta-o para vulnerabilidades conhecidas em componentes de código aberto.
    • Conformidade com licenças: garante que os componentes estejam em conformidade com as políticas de licenciamento da sua organização.
    • Aplicação da política: garante que apenas as versões aprovadas sejam usadas.
    • Visibilidade com rastreamento: fornece visibilidade dos componentes nos repositórios para facilitar o gerenciamento.

Gerenciar permissões no nível do projeto e da organização

  • Limitar o acesso a projetos e repositórios: Reduza o risco de vazamento de informações confidenciais e implantação de código inseguro, limitando o acesso a projetos e repositórios. Use grupos de segurança internos ou personalizados para gerenciar permissões. Para obter mais informações, consulte Limitar o acesso a projetos e repositórios.
  • Desativar "Permitir projetos públicos": nas configurações de política da sua organização, desative a opção para criar projetos públicos. Mude a visibilidade do projeto de público para privado, conforme necessário. Os usuários que nunca entraram têm acesso somente leitura a projetos públicos, enquanto os usuários conectados podem ter acesso a projetos privados e fazer alterações permitidas. Para obter mais informações, consulte Alterar a conexão do aplicativo e as políticas de segurança para sua organização.
  • Restringir a criação da organização: Impedir que os usuários criem novos projetos para manter o controle sobre seu ambiente. Para obter mais informações, consulte Restringir a criação da organização através da política de locatário do Microsoft Entra.

Usar recursos e ferramentas de segurança

Os seguintes recursos e ferramentas de segurança podem ajudá-lo a monitorar, gerenciar e aprimorar a segurança de seus projetos:

  • Use OAuth em vez de tokens de acesso pessoal (PATs): Use o fluxo OAuth em vez de PATs e não use contas pessoais do GitHub como conexões de serviço. Para obter mais informações, consulte a visão geral do OAuth .
  • Use a verificação e análise de código: Utilize ferramentas como Microsoft Defender para verificar seu código em busca de vulnerabilidades, segredos e configurações incorretas. Esta ação ajuda a identificar e corrigir problemas de segurança no início do processo de desenvolvimento.
  • Usar o Git Credential Manager: Suporteautenticação de dois fatores com repositórios GitHub e autenticar no Azure Repos. Para obter mais informações, consulte Configurar o Git Credential Manager.
  • Usar o Scanner de Credenciais do Azure DevOps (CredScan) para GitHub: Quando o uso de uma identidade gerenciada não for uma opção, certifique-se de que as credenciais sejam armazenadas em locais seguros, como o Cofre da Chave do Azure, em vez de incorporá-las aos arquivos de código e configuração. Implemente o Azure DevOps Credential Scanner para identificar credenciais dentro do código. Para obter mais informações, consulte Introdução ao CredScan.
  • Use a verificação de segredo nativo para o GitHub: Quando o uso de uma identidade gerenciada não for uma opção, certifique-se de que os segredos sejam armazenados em locais seguros, como o Cofre de Chaves do Azure, em vez de incorporá-los ao código e aos arquivos de configuração. Use o recurso de varredura nativa de segredos para identificar segredos dentro do código. Para obter mais informações, consulte Sobre a verificação secreta.

Para obter mais informações, consulte a visão geral da segurança avançada do GitHub.

Proteja os seus serviços

Para garantir a segurança e a integridade dos seus serviços no Azure DevOps, implemente medidas de segurança para cada serviço. Essas medidas incluem a definição de permissões, o gerenciamento de acesso e o uso de recursos de segurança específicos para cada serviço.

Controlar o acesso

Forneça o mínimo necessário permissões e níveis de acesso para garantir que apenas indivíduos e serviços autorizados possam acessar informações confidenciais e executar ações críticas. Esta prática ajuda a minimizar o risco de acesso não autorizado e potenciais violações de dados.

Revise e atualize regularmente essas configurações para se adaptar às mudanças em sua organização, como mudanças de função, novas contratações ou saídas. A implementação de uma auditoria periódica de de permissões e níveis de acesso pode ajudar a identificar e corrigir quaisquer discrepâncias, garantindo que sua postura de segurança permaneça robusta e alinhada com as práticas recomendadas.

Permissões de escopo

Para garantir o gerenciamento seguro e eficiente de permissões, defina corretamente o escopo de permissões em seu ambiente de DevOps do Azure. O escopo de permissões envolve definir e atribuir o nível apropriado de acesso a usuários e grupos com base em suas funções e responsabilidades. Essa prática ajuda a minimizar o risco de acesso não autorizado e possíveis violações de dados, garantindo que apenas indivíduos autorizados tenham acesso a informações confidenciais e ações críticas.

Para definir o escopo de permissões de forma eficaz, execute as seguintes ações:

  • Desativar herança: Evite a herança, impedindo o acesso não intencional. A herança pode inadvertidamente conceder permissões a usuários que não deveriam tê-las, devido à sua natureza de permissão por padrão. Gerencie cuidadosamente e defina explicitamente as permissões para garantir que apenas os usuários pretendidos tenham acesso. Para obter mais informações, consulte Herança de permissões.
  • Segmentar ambientes: Use contas separadas do Azure para ambientes diferentes, como Desenvolvimento, Teste e Produção, para melhorar a segurança e evitar conflitos. Essa abordagem minimiza o risco de conflitos de recursos e contaminação de dados entre ambientes e permite um melhor gerenciamento e isolamento de recursos. Para obter mais informações, consulte Zona de aterrissagem do Azure.
  • Controle o acesso e garanta a conformidade: Use a Política do Azure para restringir o acesso a regiões e serviços do Azure não utilizados, garantindo a conformidade com os padrões organizacionais. Essa ação ajuda a aplicar as práticas recomendadas e manter um ambiente seguro, impedindo o acesso e o uso não autorizados. Para mais informações, consulte a visão geral da Política Azure .
  • Implementar o controle baseado em função do Azure (ABAC): Use o ABAC com recursos marcados corretamente, limitando o acesso não autorizado. Essa ação garante que as permissões de acesso sejam concedidas com base em atributos específicos, aumentando a segurança ao impedir a criação e o acesso não autorizados a recursos. Para obter mais informações, consulte Implementar o controle baseado em função (ABAC) do Azure.
  • Usar grupos de segurança: Use grupos de segurança para gerenciar com eficiência as permissões para vários usuários. Esse método simplifica a concessão e revogação de acesso em comparação com a atribuição de permissões individualmente e garante consistência e gerenciamento mais fácil em toda a organização.
    • Use grupos de segurança Microsoft Entra ID, Ative Directory ou Windows quando estiver gerenciando muitos usuários.
    • Tire partido das funções incorporadas e defina o padrão como Colaborador para desenvolvedores. Os administradores são adicionados ao grupo de segurança do Administrador de Projeto para ter permissões elevadas, permitindo-lhes configurar as definições de segurança.
    • Mantenha os grupos o mais pequenos possível, restringindo o acesso.
    • Para obter mais informações, consulte Gerenciar grupos de segurança.
  • Escolha o método de autenticação correto: Configure métodos de autenticação seguros e gerencie políticas de autorização. Para obter mais informações, consulte a seção Escolha o método de autenticação correto neste artigo e Métodos de autenticação.
  • Integrar com o Microsoft Entra ID: Use o Microsoft Entra ID para gerenciamento unificado de identidades. Para obter mais informações, consulte conectar sua organização ao Microsoft Entra ID.
  • Habilitar a autenticação multifator (MFA) do Microsoft Entra: Adicione uma camada extra de segurança com MFA. Para obter mais informações, consulte Ativar a autenticação multifator do Microsoft Entra.
  • Alterar políticas de segurança: Gerencie políticas de segurança, incluindo acesso condicional. para obter mais informações, consulte Alterar a conexão do aplicativo & as políticas de segurança para sua organização.

Para obter mais informações sobre permissões, consulte os seguintes artigos:

Escolher o método de autenticação certo

Ao escolher o método de autenticação apropriado para seu ambiente de DevOps do Azure, considere os benefícios de segurança e gerenciamento de diferentes opções. Usar métodos de autenticação segura ajuda a proteger seus recursos e garante que apenas usuários e serviços autorizados possam acessar seu ambiente de DevOps do Azure. Considere o uso de entidades de serviço, identidades gerenciadas e o Microsoft Entra para aprimorar a segurança e simplificar o gerenciamento de acesso.

  • Usar entidades de serviço: represente objetos de segurança em um aplicativo Microsoft Entra. Defina o que um aplicativo pode fazer em um determinado locatário. Configure durante o registro do aplicativo no portal do Azure. Configure para acessar recursos do Azure, incluindo o Azure DevOps. Útil para aplicações que necessitam de acesso e controlo específicos.
  • Usar identidades gerenciadas: semelhante à entidade de serviço de um aplicativo. Forneça identidades para recursos do Azure. Permita que os serviços que suportam a autenticação do Microsoft Entra partilhem credenciais. O Azure lida com o gerenciamento e a rotação de credenciais automaticamente. Ideal para uma gestão perfeita dos detalhes de início de sessão.
  • Usar o Microsoft Entra ID:
    • Crie um único plano para identidade conectando o Azure DevOps à ID do Microsoft Entra. Essa consistência reduz a confusão e minimiza os riscos de segurança de erros de configuração manual.
    • Acesse sua organização com o Microsoft Entra ID e atribua diferentes funções e permissões a grupos específicos em vários escopos de recursos. Essa ação implementa uma governança refinada, garante acesso controlado e está alinhada com as práticas recomendadas de segurança.
    • Use Políticas de Acesso Condicional, que definem regras de acesso com base em condições como local, dispositivo ou nível de risco.

Gerenciar o acesso de convidados externos

Para garantir a segurança e o gerenciamento adequado do acesso de convidado externo, implemente medidas específicas que controlam e monitoram como os usuários externos interagem com seu ambiente de DevOps do Azure. O acesso de convidados externos pode introduzir potenciais riscos de segurança se não for gerido corretamente. Seguindo essas ações, você pode minimizar esses riscos e garantir que os convidados externos tenham o nível adequado de acesso sem comprometer a segurança do seu ambiente.

  • Bloquear acesso de convidado externo: desative a política "Permitir que convites sejam enviados para qualquer domínio" para impedir o acesso de convidado externo se não houver necessidade comercial disso.
  • Use e-mails ou UPNs distintos: Utilize endereços de e-mail ou nomes principais de utilizador (UPNs) diferentes para contas pessoais e contas de trabalho, eliminando a ambiguidade entre as duas.
  • Agrupar usuários convidados externos: coloque todos os usuários convidados externos em um único grupo do Microsoft Entra e gerencie as permissões para esse grupo adequadamente. Remova as atribuições diretas para garantir que as regras de grupo se apliquem a esses usuários.
  • Reavalie regras regularmente: revise regularmente as regras na guia Regras de grupo da página Usuários. Considere quaisquer alterações de associação de grupo no Microsoft Entra ID que possam afetar sua organização. O Microsoft Entra ID pode levar até 24 horas para atualizar a associação a grupos dinâmicos, e as regras são reavaliadas automaticamente a cada 24 horas e sempre que uma regra de grupo é alterada.

Para obter mais informações, consulte Convidados B2B na ID do Microsoft Entra.

Implementar Zero Trust (confiança zero)

Para aumentar a segurança, adote os princípios Zero Trust em todos os seus processos de DevOps. Essa abordagem garante que cada solicitação de acesso seja verificada minuciosamente, independentemente de sua origem. O Zero Trust opera com base no princípio de "nunca confiar, sempre verificar", o que significa que nenhuma entidade, seja dentro ou fora da rede, é confiável por padrão. Ao implementar o Zero Trust, você pode reduzir significativamente o risco de violações de segurança e garantir que apenas usuários e dispositivos autorizados possam acessar seus recursos.

  • Adote a abordagem Zero Trust: implemente princípios de Zero Trust para fortalecer sua plataforma de DevOps , proteja seu ambiente de desenvolvimento e integre o Zero Trust perfeitamente em seus fluxos de trabalho de desenvolvedores . O Zero Trust ajuda a proteger contra movimentos laterais dentro da rede, garantindo que, mesmo que haja uma parte comprometida da rede, a ameaça está contida e não pode se espalhar.

Para obter mais informações, consulte o guia Zero Trust Assessment.

Remover usuários

Para garantir que apenas usuários ativos e autorizados tenham acesso ao seu ambiente de DevOps do Azure, revise e gerencie regularmente o acesso do usuário. A remoção de usuários inativos ou não autorizados ajuda a manter um ambiente seguro e reduz o risco de possíveis violações de segurança. Seguindo essas ações, você pode garantir que seu ambiente de DevOps do Azure permaneça seguro e que apenas as pessoas necessárias tenham acesso.

  • Remover usuários inativos de contas da Microsoft (MSAs): Remova diretamente os usuários inativos da sua organização se eles estiverem usando MSAs. Não é possível criar consultas para itens de trabalho atribuídos a contas MSA removidas. Para obter mais informações, consulte Remover usuários da sua organização.
  • Desabilitar ou excluir contas de usuário do Microsoft Entra: se estiver conectado à ID do Microsoft Entra, desabilite ou exclua a conta de usuário do Microsoft Entra enquanto mantém a conta de usuário do Azure DevOps ativa. Essa ação permite que você continue consultando o histórico de itens de trabalho usando sua ID de usuário do Azure DevOps.
  • Revogar PATs de usuário: Garantir o gerenciamento seguro desses tokens de autenticação críticos, revisando e revogando regularmente quaisquer PATs de usuário existentes. Para obter mais informações, consulte Revogar PATs de usuário para administradores.
  • Revogar permissões especiais concedidas a usuários individuais: audite e revogue quaisquer permissões especiais concedidas a usuários individuais para garantir o alinhamento com o princípio de menor privilégio.
  • Reatribuir trabalho de usuários removidos: antes de remover usuários, reatribua seus itens de trabalho aos membros atuais da equipe para distribuir a carga de forma eficaz.

Contas de serviço de âmbito

As contas de serviço são usadas para executar processos e serviços automatizados e, muitas vezes, têm permissões elevadas. Ao definir o escopo e gerenciar adequadamente as contas de serviço, você pode minimizar os riscos de segurança e garantir que essas contas sejam usadas adequadamente.

  • Crie contas de serviço de finalidade única: cada serviço deve ter sua conta dedicada para minimizar o risco. Evite usar contas de usuário regulares como contas de serviço.
  • Usar o Gestor de Recursos do Azure: Autenticar com recursos do Azure usando federação de identidade de trabalho com um registo de aplicativo ou identidade gerida em vez de usar um registo de aplicativo com um segredo. Para obter mais informações, consulte Usar o Azure Resource Manager.
  • Identificar e desativar contas de serviço não utilizadas: analise e identifique regularmente as contas que não estão mais em uso. Desative as contas não utilizadas antes de considerar a exclusão.
  • Restringir privilégios: limite os privilégios da conta de serviço ao mínimo necessário. Evite permissões de início de sessão interativas para contas de serviço.
  • Usar identidades separadas para leitores de relatórios: se estiver usando contas de domínio para contas de serviço, use uma identidade diferente para leitores de relatório para isolar permissões e evitar acessos desnecessários.
  • Usar contas locais para instalações de grupo de trabalho: ao instalar componentes em um grupo de trabalho, use contas locais para contas de usuário. Evite contas de domínio nesse cenário.
  • Usar conexões de serviço: Use conexões de serviço sempre que possível para se conectar com segurança aos serviços sem passar variáveis secretas diretamente para as compilações. Restrinja conexões a casos de uso específicos. para obter mais informações, consulte a seção Conexões de serviço de escopo neste artigo.
  • Monitorar a atividade da conta de serviço: implemente auditoria e crie fluxos de auditoria para monitorar a atividade da conta de serviço.

Conexões de serviço de escopo

Para garantir o acesso seguro e eficiente aos recursos do Azure, defina o escopo adequado das conexões de serviço. As conexões de serviço permitem que o Azure DevOps se conecte a serviços e recursos externos e, ao definir o escopo dessas conexões, você pode limitar o acesso apenas aos recursos necessários e reduzir o risco de acesso não autorizado.

  • Limitar acesso: Limite o acesso ao definir o escopo das suas conexões de serviço Azure Resource Manager para recursos e grupos específicos. Não conceda amplos direitos de contribuidor em toda a assinatura do Azure.
  • Usar o Gerenciador de Recursos do Azure: Autenticar com recursos do Azure usando federação de identidade de carga de trabalho com um registro de aplicativo ou identidade gerenciada em vez de usar um registro de aplicativo com um segredo. Para mais informações, consulte Criar uma conexão de serviços do Azure Resource Manager que usa federação de identidade de trabalho.
  • Grupos de recursos de escopo: verifique se os grupos de recursos contêm apenas as máquinas virtuais (VMs) ou os recursos necessários para o processo de compilação.
  • Evite conexões de serviço clássicas: Opte por conexões de serviço modernas do Azure Resource Manager em vez das clássicas, que não têm opções de escopo.
  • Utilizar contas de serviço de equipa específicas para cada finalidade: autentique as ligações de serviço usando contas de serviço de equipa destinadas a fins específicos para manter a segurança e o controlo.

Para obter mais informações, consulte Tipos de conexão de serviço comuns.

Habilitar e revisar eventos de auditoria

Para melhorar a segurança e monitorar os padrões de uso em sua organização, habilite e revise regularmente os eventos de auditoria. A auditoria ajuda a rastrear ações do usuário, alterações de permissões e incidentes de segurança, permitindo que você identifique e resolva possíveis problemas de segurança prontamente.

  • Habilitar auditoria: Rastreie e visualize eventos relacionados a ações, permissões, alterações e incidentes de segurança do usuário. Para obter mais informações, consulte Habilitar ou desabilitar auditoria.
  • Revise eventos de auditoria regularmente: Revise regularmente os logs de auditoria para monitorar as atividades do usuário e detetar qualquer comportamento suspeito. Procure padrões de uso inesperados, especialmente por administradores e outros usuários. Esta ação ajuda a identificar potenciais violações de segurança e toma medidas corretivas. Para obter mais informações, consulte Revisão do log de auditoria e Eventos de auditoria.
  • Configurar alertas de segurança: Configure alertas para notificá-lo de quaisquer incidentes de segurança ou violações de política. Esta ação assegura uma resposta atempada a potenciais ameaças.

Proteger os seus dados

Para garantir a segurança e integridade dos seus dados, implemente medidas de proteção de dados. Proteger seus dados envolve estratégias de criptografia, backup e recuperação para proteger contra perda de dados e acesso não autorizado.

  • Proteja seus dados: Proteja seus dados usando estratégias de criptografia, backup e recuperação. Para obter mais informações, consulte Proteção de dados .
  • Adicionar IPs e URLs à lista de permissões: Se a sua organização estiver protegida com um firewall ou servidor proxy, adicione IPs e URLs à lista de permissões. Para obter mais informações, consulte Endereços IP permitidos e URLs de domínio.