Controle de acesso baseado em função para ferramentas de DevOps

Quando você implanta soluções baseadas em nuvem para suas implantações de infraestrutura, a segurança deve ser sempre sua preocupação mais importante. A Microsoft mantém a infraestrutura de nuvem subjacente segura. Você configura a segurança no Azure DevOps ou GitHub.

Pré-requisitos

Depois de decidir quais modelos de Zona de Aterrissagem do Azure implantar, clone-os em seu próprio repositório. Configure os pipelines de CI/CD. Para o GitHub e o Azure DevOps, há vários métodos de autenticação disponíveis, como tokens de acesso pessoal (PAT) e integração com um provedor de identidade, como o Microsoft Entra ID. Para obter mais informações, consulte Usar tokens de acesso pessoal.

Recomendamos que você integre com o Microsoft Entra ID para usar todos os seus recursos. A integração ajuda a simplificar o processo de atribuição de funções e o gerenciamento do ciclo de vida da identidade. Para obter mais informações, consulte Conectar sua organização ao Microsoft Entra ID. Se você estiver usando o GitHub, considere integrar o GitHub Enterprise com o Microsoft Entra ID.

Considerações gerais de design

Recomendamos que você mantenha um controle rígido dos administradores e grupos de contas de serviço no Microsoft Entra ID e na sua ferramenta DevOps. Considere implementar o princípio do menor privilégio em todas as suas atribuições de função.

Por exemplo, sua organização pode ter uma equipe de Plataforma ou Excelência em Nuvem que mantém modelos do Azure Resource Manager para suas Zonas de Aterrissagem do Azure. Atribua usuários dessa equipe a um Grupo de Segurança no Microsoft Entra ID, supondo que você o esteja usando como seu provedor de identidade. Atribua funções a esse grupo de segurança em sua ferramenta de DevOps para que esses usuários possam fazer seus trabalhos.

Para qualquer administrador ou contas altamente privilegiadas no Ative Directory, recomendamos que as credenciais não sejam sincronizadas com o Microsoft Entra ID e vice-versa. Esta abordagem reduz a ameaça de movimento lateral. Se um administrador no Microsoft Entra ID for comprometido, o invasor não poderá obter acesso fácil a nenhum ativo de nuvem, como o Azure DevOps. Essa conta não pode potencialmente injetar tarefas maliciosas nos pipelines de CI/CD. Esta etapa é particularmente importante para todos os usuários com permissões elevadas atribuídas em seu ambiente de DevOps, como Administradores de Compilação ou de Projeto/Coleção. Para obter mais informações, consulte Práticas recomendadas de segurança no Microsoft Entra ID.

Considerações de acesso baseado em função do Azure DevOps

Gerencie a segurança no Azure DevOps com grupos de segurança, políticas e configurações no nível da organização/coleção, projeto ou objeto. Para integrar com um provedor de identidade, como o Microsoft Entra ID, considere a criação de políticas de acesso condicional para impor a autenticação multifator para todos os usuários. As políticas permitem acesso à sua organização do Azure DevOps e restrições mais granulares em torno do endereço IP, tipo de dispositivo usado para acesso e conformidade do dispositivo.

Para a maioria dos membros da equipe da sua Plataforma que gerenciam suas Zonas de Aterrissagem do Azure, o nível de acesso Básico e o grupo de segurança padrão do Colaborador devem fornecer acesso suficiente. O grupo de segurança de Colaborador permite que eles editem os modelos de Zona de Aterrissagem do Azure em seu repositório e os pipelines de CI/CD que os validam e implantam.

Recomendamos que você atribua sua equipe de Plataforma ao grupo de segurança de Colaborador no nível de projeto do Azure DevOps. Esta abordagem segue o princípio do menor privilégio. Essas atribuições podem ser feitas através da página Configurações do Projeto mostrada abaixo.

Screenshot showing the project settings page where assignments can be made.

Outra prática recomendada para seus Projetos e organizações do Azure DevOps é desabilitar a herança sempre que possível. Os usuários herdam permissões permitidas por suas atribuições de grupo de segurança. Devido à natureza permitida por padrão da herança, usuários inesperados podem obter acesso ou permissões.

Por exemplo, se você atribuir a associação ao grupo de segurança Colaborador da equipe da plataforma, verifique suas permissões no repositório de Zonas de Aterrissagem do Azure. Você deve ter políticas de ramificação em vigor para verificar se o grupo de segurança não tem permissão para ignorar essas políticas durante solicitações pull. Verifique essa configuração em Repositórios de configurações>do projeto.

Depois de atribuir permissões aos usuários, revise periodicamente os eventos de auditoria para monitorar e reagir a padrões de uso inesperados por administradores e outros usuários. Comece criando um fluxo de auditoria para um espaço de trabalho do Log Analytics. Se seu espaço de trabalho usa o Microsoft Sentinel, crie regras de análise para alertá-lo sobre eventos notáveis, como uso indevido de permissões.

Para obter mais informações, consulte os seguintes recursos:

Considerações sobre o acesso baseado em função do GitHub

Se sua principal ferramenta de DevOps for o GitHub, você poderá atribuir aos usuários acesso aos recursos concedendo-lhes funções no nível do repositório, da equipe ou da organização. Depois de bifurcar o repositório de Zonas de Aterrissagem do Azure e integrar com um provedor de identidade, como o Microsoft Entra ID, considere criar uma equipe no GitHub. Atribua esse acesso de gravação da equipe ao seu novo repositório da Zona de Aterrissagem do Azure. Para a maioria dos membros da equipe da Plataforma, que modificam e implantam as Zonas de Desembarque, o acesso de gravação deve ser suficiente. Para gerentes de projeto ou gerentes Scrum na equipe, talvez seja necessário atribuir-lhes a função de manutenção para esse repositório.

Recomendamos que você gerencie todas essas atribuições de função por meio do provedor de identidade integrado. Por exemplo, você pode sincronizar a equipe de Plataforma para o repositório da Zona de Pouso do Azure que você criou no GitHub com o Grupo de Segurança da equipe de Plataforma correspondente na ID do Microsoft Entra. Em seguida, à medida que você adiciona ou remove membros ao Grupo de Segurança do Microsoft Entra, essas alterações são refletidas nas atribuições de função do GitHub Enterprise Cloud.

Nota

Depois de conectar uma equipe específica do GitHub a um provedor de identidade integrado, você fica restrito a gerenciar a associação da equipe por meio dele.

Próximos passos

Para obter mais informações sobre como gerenciar funções e equipes no GitHub, consulte estes recursos: