Partilhar via


Torne seu Azure DevOps seguro

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

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 e os seus dados

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 e proteção de dados 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:

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

Implementar Zero Trust (confiança zero)

Adote os princípios de Zero Trust em todos os seus processos de DevOps para garantir que cada solicitação de acesso seja completamente verificada, 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.

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.

Cumprir as normas da indústria

Certifique-se de que seu ambiente de DevOps do Azure esteja em conformidade com os padrões e regulamentações do setor que protegem seu ambiente e mantêm 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.
  • Aplique políticas de conformidade: Implemente políticas de filiais e políticas de conformidade para seus pipelines.
  • Integração com a Governança de Componentes para CI/CDs, que oferece os seguintes benefícios:
    • 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.

Controlar e restringir o acesso

Analise todas as políticas de segurança disponíveis para os administradores para restringir e controlar quem tem acesso à organização. Manter o controle da organização, evitando a criação desnecessária de projetos.

Gerenciar convidados externos

O acesso de convidados externos pode introduzir potenciais riscos de segurança se não for gerido corretamente. Minimize esses riscos e garanta que os hóspedes 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.

Remover utilizadores desnecessários

A remoção de usuários inativos ou não autorizados da sua organização ajuda a manter um ambiente seguro e reduz o risco de possíveis violações de segurança.

  • Remova diretamente os usuários inativos da conta 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.
  • 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. Você pode continuar consultando o histórico de itens de trabalho usando sua ID de usuário do Azure DevOps.
  • Revogar PATs de usuário para administradores: Garanta o gerenciamento seguro desses tokens de autenticação críticos, revisando e revogando regularmente todos os PATs de usuários existentes.
  • 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.

Permissões de escopo

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.

Saiba mais sobre permissões:

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 de permissões e impeça 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.
  • 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.
  • Implemente o controle baseado em função do Azure (ABAC): Use o ABAC com recursos devidamente marcados para limitar 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.
  • Use 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 do Microsoft Entra ID, Ative Directory ou Windows quando estiver gerenciando muitos usuários.
    • Reduza o risco de vazamento de informações confidenciais e implante código inseguro, limitando o acesso a projetos e repositórios a grupos de segurança internos ou personalizados.
    • 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.
    • Implemente acesso just-in-time com um grupo de Microsoft Entra Privileged Identity Management (PIM). Conceda permissões elevadas apenas quando necessário, reduzindo o risco associado ao acesso permanente.

Abandonar contas de serviço

Historicamente, as contas de serviço eram usadas com tokens de acesso pessoal (PATs) para criar ferramentas que executam processos e serviços automatizados. Como resultado, eles geralmente têm permissões elevadas. Antes de optar por continuar a desenvolver com uma conta de serviço, explore se ainda é a abordagem de autenticação certa para si.

  • Substitua os PATs por tokens Microsoft Entra:Os tokens Microsoft Entra são de curta duração (uma hora) e podem ser utilizados no lugar da maioria dos PATs. Os PATs são populares devido à sua facilidade de uso, mas também são um vetor popular de ataque devido à facilidade com que são vazados.
  • Leia sobre todos os mecanismos de autenticação disponíveis antes de escolher um.
  • Use entidades de serviço em vez disso:As entidades de serviço representam a identidade de um aplicativo Microsoft Entra e têm suas próprias permissões que definem o que o aplicativo pode fazer em um determinado locatário. As entidades de serviço são a opção recomendada para gerir as permissões necessárias para a aplicação. Substitua os PATs de todas as contas de serviço por tokens Microsoft Entra adquiridos para a entidade de serviço.
    • Dê um passo adiante, autenticando usando uma identidade gerenciada se você estiver criando com base nos recursos do Azure. As identidades gerenciadas cuidam de todo o gerenciamento de credenciais para você.
  • Use conexões de serviço: As conexões de serviço permitem que você use entidades de serviço dentro de um pipeline. 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 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.

Enquanto uma conta de serviço permanece em uso:

  • 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.
  • 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.
  • 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 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 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.

Rever eventos de auditoria

A auditoria pode ser usada para rastrear ações do usuário, alterações de permissões e padrões de uso em sua organização. Use essas ferramentas para identificar e resolver possíveis incidentes de segurança prontamente.

  • Habilite a auditoria: Rastreie e visualize eventos relacionados a ações, permissões, alterações e incidentes de segurança do usuário.
  • Revise logs e fluxos 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. Saiba mais sobre os eventos de auditoria que acompanhamos.
  • 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.

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.

Automatize a verificação de segurança

Monitore vulnerabilidades secretas e de código com as seguintes ferramentas de segurança automatizadas criadas por nossas equipes parceiras:

  • 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.
  • Use o GitHub Advanced Security para Azure DevOps: 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 de Chaves do Azure, em vez de incorporá-las aos arquivos de código e configuração. Use o GitHub Advanced Security for Azure DevOps para identificar credenciais dentro do código. Para obter mais informações, consulte Configurar a Segurança Avançada do GitHub para Azure DevOps.
  • 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.