Saiba como definir configurações de segurança para Pools de DevOps gerenciados. Há duas maneiras de definir as configurações de segurança:
- Quando você cria um pool usando a guia Segurança
- Depois de criar um pool usando o painel Configurações de segurança
Por defeito, o nome do pool de agentes no Azure DevOps é o mesmo que o seu Managed DevOps Pool. Pode indicar um nome diferente para o pool de agentes ao configurar um alias para o pool. Pode configurar um alias de pool de topo para todas as organizações Azure DevOps no seu Managed DevOps Pool, ou pode configurá-las por organização.
| Âmbito do nome alternativo do conjunto |
Descrição |
| Nível superior |
Este pool especifica o nome do pool de agentes Azure DevOps para todas as organizações no seu Managed DevOps Pool. Se não especificar um alias de topo, o nome do seu Managed DevOps Pool é usado como nome do pool de agentes do Azure DevOps. |
| Nível organizacional |
Este alias do pool especifica o nome do pool de agentes do Azure DevOps para uma organização específica no seu Managed DevOps Pool. Se não especificar um alias ao nível da organização, é usado o alias de topo. Se nenhum dos pseudónimos tiver sido especificado, é utilizado o nome do seu Managed DevOps Pool. |
Os pseudónimos devem ter 128 caracteres ou menos, e devem começar com uma letra ou número, seguido de letras, números ou hífens, e terminar com uma letra ou número.
Se configurar o seu Managed DevOps Pool para uma única organização Azure DevOps, pode personalizar o nome do pool de agentes fornecendo um valor para o campo Alias. Se não especificar um valor para Alias, é utilizado o nome da Managed DevOps Pool.
Se configurar o seu Managed DevOps Pool para várias organizações Azure DevOps, pode personalizar o nome do pool de agentes por organização, fornecendo um valor para o campo Alias nas definições de cada organização. Se não configurares um Alias específico da organização, o Alias de topo é usado. Se Alias não estiver configurado, é utilizado o nome do Managed DevOps Pool.
Nota
A alias propriedade está disponível a partir da versão 2025-09-20API .
Pode configurar um pool alias de nível superior na secção organizationProfile e aliases individuais ao nível de cada organização, definindo a propriedade alias nas organizações individuais da lista organizationProfile.organizations.
O exemplo seguinte apresenta uma única organização, configurada com o alias de grupo de nível superior fabrikam-pool.
"properties": {
...
"organizationProfile": {
"alias": "fabrikam-pool",
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
...
}
]
}
}
O exemplo seguinte inclui duas organizações, configuradas com o alias de grupo de nível superior fabrikam-pool. O fabrikam-tailspin tem um alias de pool ao nível da organização de fabrikam-tailspin-pool, pelo que o seu pool Azure DevOps chama-se fabrikam-tailspin-pool. A organização fabrikam-blue não tem um alias de organização, por isso o respetivo pool recebe o nome com base no alias de nível superior.
"properties": {
...
"organizationProfile": {
"alias": "fabrikam-pool",
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"alias": "fabrikam-tailspin-pool"
...
},
{
"url": "https://dev.azure.com/fabrikam-blue",
...
}
]
}
}
Pode definir os valores de nível superior alias e os valores individuais ao nível da organização alias ao executar az resource update com os seguintes parâmetros.
| Parâmetro |
Descrição |
--ids |
O identificador do recurso do Managed DevOps Pool. |
--set |
A propriedade para atualizar.- Para definir o
aliasnível superior, use properties.organizationProfile.alias. - Se o seu Managed DevOps Pool estiver configurado para múltiplas organizações, pode definir um nível
alias organizacional usando properties.organizationProfile.organizations[index].alias, onde index é o índice zero da organização na organizations lista.
|
O exemplo seguinte define o top-level alias para fabrikam-pool.
az resource update \
--ids "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevOpsInfrastructure/pools/{poolName}" \
--set properties.organizationProfile.alias="fabrikam-pool"
Este exemplo define o alias ao nível da organização para a primeira organização na lista de organizações como fabrikam-tailspin-pool.
az resource update \
--ids "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevOpsInfrastructure/pools/{poolName}" \
--set properties.organizationProfile.organizations[0].alias="fabrikam-tailspin-pool"
Para ver a lista ordenada de organizações quando o seu Managed DevOps Pool estiver configurado para várias organizações, aceda ao seu pool no portal do Azure e aceda a Definições>Segurança. Também pode obter a lista executando o comando az mdp pool show .
az mdp pool show \
--name "{poolName}" \
--resource-group "{resourceGroupName}"
Nota
A alias propriedade está disponível a partir da versão 2025-09-20API .
Pode configurar um pool alias de nível superior na secção organizationProfile e aliases individuais ao nível de cada organização, definindo a propriedade alias nas organizações individuais da lista organizationProfile.organizations.
O exemplo seguinte tem uma única organização, configurada com um alias de pool de fabrikam-pool.
properties: {
...
organizationProfile: {
alias: 'my-pool-alias',
organizations: [
{
url: 'https://dev.azure.com/fabrikam-tailspin',
...
}
]
}
O exemplo seguinte inclui duas organizações, configuradas com o alias de agrupamento de nível superior fabrikam-pool. O fabrikam-tailspin tem um alias de pool ao nível da organização de fabrikam-tailspin-pool, pelo que o seu pool Azure DevOps chama-se fabrikam-tailspin-pool. A fabrikam-blue organização não tem um alias ao nível da organização, por isso o seu pool é nomeado usando o alias principal.
properties: {
...
organizationProfile: {
alias: 'fabrikam-pool',
organizations: [
{
url: 'https://dev.azure.com/fabrikam-tailspin',
alias: 'fabrikam-tailspin-pool'
...
},
{
url: 'https://dev.azure.com/fabrikam-blue',
...
}
]
}
Por padrão, os pools criados com Pools de DevOps Gerenciados são configurados para todos os projetos em uma única organização. Opcionalmente, você pode limitar o acesso a projetos específicos na organização e também pode conceder acesso a outras organizações.
Se você configurar seu pool e conceder acesso a todos os projetos, o pool será adicionado aos projetos para os quais você tem as permissões apropriadas. Se você configurar seu pool e conceder acesso a projetos específicos, deverá ter permissão para adicionar o pool em todos os projetos designados, ou a criação do pool falhará.
Para ver as permissões necessárias para configurar Pools de DevOps Gerenciados em sua organização e projetos, consulte Pré-requisitos: verificar permissões de DevOps do Azure.
Usar um pool com uma única organização
Por padrão, os Pools de DevOps Gerenciados são configurados com uma única organização de DevOps do Azure que você especifica ao criar o pool. Quando o pool é configurado para uma única organização, o nome da organização é exibido e configurado nas configurações do pool .
Por padrão, a configuração Adicionar pool a todos os projetos é definida como Sim, e o acesso ao Pool de DevOps Gerenciado é concedido a todos os projetos na organização. Para limitar quais projetos em sua organização podem usar o pool, selecione Não e especifique quais projetos devem ter acesso.
Você pode configurar organizações na organizationProfile propriedade do recurso Managed DevOps Pools.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"organizationProfile": {
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 4
}
],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
}
]
}
A organizationProfile seção tem as seguintes propriedades.
| Propriedade |
Descrição |
organizations |
Uma lista das organizações que podem usar seu pool. A url propriedade especifica a URL da organização. A projects propriedade é uma lista de nomes de projetos que podem usar o pool (uma lista vazia suporta todos os projetos na organização). A parallelism propriedade especifica o número de agentes que a organização pode usar. A soma dos níveis de paralelismo das organizações tem de corresponder à definição do número máximo de agentes do pool. |
permissionProfile |
Esse valor especifica a permissão que você concede ao pool de DevOps do Azure ao criá-lo. Você pode definir esse valor somente quando criar um pool. Os valores permitidos são Inherit, CreatorOnlye SpecificAccounts. Se você especificar specificAccounts, forneça um único endereço de e-mail ou uma lista de endereços de e-mail para a users propriedade. Caso contrário, omita users. Para obter mais informações, consulte Permissões de administração do pool. |
kind |
Esse valor especifica o tipo de organização para o pool e deve ser definido como Azure DevOps. |
Você pode configurar organizações no organization-profile parâmetro ao criar ou atualizar um pool.
az mdp pool create \
--organization-profile organization-profile.json
# other parameters omitted for space
O exemplo seguinte mostra um organization-profile objeto configurado para todos os projetos na fabrikam-tailspin organização com o valor parallelism definido como 1.
{
"AzureDevOps":
{
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 1
}
]
}
}
A organizationProfile seção tem as seguintes propriedades.
| Propriedade |
Descrição |
AzureDevOps |
Esse valor é o nome do objeto definido em organization-profile e deve ser definido como Azure DevOps. |
organizations |
Uma lista das organizações que podem usar seu pool.
openAccess especifica se os Pools de DevOps Gerenciados configuram o acesso aberto para o pool durante a criação do pool. A url propriedade especifica a URL da organização. A projects propriedade é uma lista de nomes de projetos que podem usar o pool (uma lista vazia suporta todos os projetos na organização). A parallelism propriedade especifica o número de agentes que essa organização pode usar. A soma dos níveis de paralelismo das organizações tem de corresponder à definição do número máximo de agentes do pool. |
permissionProfile |
Esta propriedade especifica a permissão que você concede ao pool de DevOps do Azure ao criá-lo. Você pode definir esse valor somente quando criar um pool. Os valores permitidos são Inherit, CreatorOnlye SpecificAccounts. Se você especificar specificAccounts, forneça um único endereço de e-mail ou uma lista de endereços de e-mail para a users propriedade. Caso contrário, omita users. Para obter mais informações, consulte Permissões de administração do pool. |
Você pode configurar organizações na organizationProfile propriedade do recurso Managed DevOps Pools.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
organizationProfile: {
organizations: [
{
url: 'https://dev.azure.com/fabrikam-tailspin'
projects: []
parallelism: 4
}
]
permissionProfile: {
kind: 'CreatorOnly'
}
kind: 'AzureDevOps'
}
}
}
A organizationProfile seção tem as seguintes propriedades.
| Propriedade |
Descrição |
organizations |
Uma lista das organizações que podem usar seu pool. A url propriedade especifica a URL da organização. A projects propriedade é uma lista de nomes de projetos que podem usar o pool (uma lista vazia suporta todos os projetos na organização). A parallelism propriedade especifica o número de agentes que essa organização pode usar. A soma dos níveis de paralelismo das organizações tem de corresponder à definição do número máximo de agentes do pool. |
permissionProfile |
Esta propriedade especifica a permissão que você concede ao pool de DevOps do Azure ao criá-lo. Você pode definir esse valor somente quando criar um pool. Os valores permitidos são Inherit, CreatorOnlye SpecificAccounts. Se specificAccounts for especificado, forneça um único endereço de e-mail ou uma lista de endereços de e-mail para a users propriedade. Caso contrário, omita users. Para obter mais informações, consulte Permissões de administração do pool. |
kind |
Esse valor especifica o tipo de organização para o pool e deve ser definido como Azure DevOps. |
Usar um pool em várias organizações
Para usar seu pool com várias organizações do Azure DevOps, habilite Usar pool em várias organizações. Para cada organização, especifique os projetos que têm permissão para usar o pool ou deixe esse campo em branco para permitir todos os projetos. Configure o paralelismo para cada organização especificando quais partes da simultaneidade, conforme especificado pelo valor máximo de agentes para o pool, devem ser alocadas para cada organização. A soma do grau de paralelismo de todas as organizações deve ser igual à concorrência máxima do conjunto. Por exemplo, se Máximo de agentes for definido como cinco, a soma do paralelismo para as organizações especificadas deverá ser cinco. Se o valor Máximo de agentes estiver definido como um, você poderá usar o pool com apenas uma organização.
No exemplo a seguir, o pool está configurado para estar disponível para os projetos FabrikamResearch e FabrikamTest na organização fabrikam-tailspin e para todos os projetos na organização fabrikam-blue .
Se você receber um erro como The sum of parallelism for all organizations must equal the max pool size, verifique se a contagem máxima de agentes para o pool corresponde à soma da coluna Paralelismo .
Para configurar seu pool para que várias organizações possam usá-lo, adicione mais organizações à lista de organizações. O exemplo a seguir tem duas organizações configuradas. A primeira organização está configurada para usar Pools de DevOps Gerenciados para todos os projetos, e a segunda organização pode usá-la com apenas dois projetos. Neste exemplo, a configuração máxima de agentes para o pool é quatro, e cada organização pode usar dois desses quatro agentes.
"organizationProfile": {
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 2
},
{
"url": "https://dev.azure.com/fabrikam-prime",
"projects": [ "fabrikam-dev", "fabrikam-test" ],
"parallelism": 2
}
],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
Você pode configurar organizações no organization-profile parâmetro ao criar ou atualizar um pool.
az mdp pool create \
--organization-profile organization-profile.json
# other parameters omitted for space
Para configurar seu pool para que várias organizações possam usá-lo, adicione mais organizações à lista de organizações. O exemplo a seguir tem duas organizações configuradas. A primeira organização está configurada para usar Pools de DevOps Gerenciados para todos os projetos, e a segunda organização pode usá-la com apenas dois projetos. Neste exemplo, a configuração máxima de agentes para o pool é quatro, e cada organização pode usar dois desses quatro agentes.
{
"AzureDevOps":
{
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 2
},
{
"url": "https://dev.azure.com/fabrikam-prime",
"projects": [ "fabrikam-dev", "fabrikam-test" ],
"parallelism": 2
}
]
}
}
Para configurar seu pool para que várias organizações possam usá-lo, adicione mais organizações à lista de organizações. O exemplo a seguir tem duas organizações configuradas. A primeira organização está configurada para usar Pools de DevOps Gerenciados para todos os projetos, e a segunda organização pode usá-la com apenas dois projetos. Neste exemplo, a configuração máxima de agentes para o pool é quatro, e cada organização pode usar dois desses quatro agentes.
organizationProfile: {
organizations: [
{
url: 'https://dev.azure.com/fabrikam-tailspin'
projects: []
parallelism: 2
}
{
url: 'https://dev.azure.com/fabrikam-prime'
projects: ['fabrikam-dev', 'fabrikam-test']
parallelism: 2
}
]
permissionProfile: {
kind: 'CreatorOnly'
}
kind: 'AzureDevOps'
}
Para configurar o acesso aberto para pipelines, você deve ter as seguintes permissões, além das permissões descritas em Pré-requisitos - Verificar permissões do Azure DevOps:
Por padrão, você deve autorizar explicitamente cada definição de pipeline a ser executada em um pool de agentes auto-hospedados (como um pool criado usando Pools de DevOps Gerenciados) antes de ser executado pela primeira vez nesse pool.
O Azure DevOps fornece os seguintes modos para autorizar a execução de pipelines em um pool de agentes.
-
Autorizar pipelines específicos (padrão): autorize individualmente pipelines específicos de um projeto do Azure DevOps para execução no pool.
-
Acesso aberto: configure um pool de agentes no nível do projeto para estar disponível para todos os pipelines nesse projeto.
Habilite Permitir que todos os pipelines sejam executados no pool sem uma aprovação (acesso aberto) para configurar a configuração do pool de agentes de acesso aberto no Azure DevOps ao criar o pool.
Você pode configurar a configuração Permitir que todos os pipelines sejam executados no pool sem uma aprovação (acesso aberto) em Pools de DevOps Gerenciados somente quando criar o pool. Depois que o pool for criado, você poderá exibir e configurar o acesso aberto no pool de agentes correspondente no Azure DevOps para cada projeto que usa o pool.
Para configurar o acesso ao pool para todos os pipelines nos projetos designados, ative Permitir que todos os pipelines sejam executados no pool sem aprovação (acesso aberto).
- Se Adicionar pool a todos os projetos estiver definido como Sim, os Pools de DevOps Gerenciados configurarão o acesso aberto para todos os pipelines em todos os projetos.
- Se Adicionar pool a todos os projetos estiver definido como Não, os Pools de DevOps Gerenciados configurarão o acesso aberto para todos os pipelines somente nos projetos listados.
Se você habilitar Usar pool em várias organizações, poderá especificar Acesso aberto individualmente para cada organização.
Nota
A configuração de acesso aberto está presente quando você usa api-version 2025-01-21 e superior.
Você pode configurar organizações na organizationProfile propriedade do recurso Managed DevOps Pools. O exemplo a seguir tem duas organizações configuradas:
- A
fabrikam-tailspin organização é configurada com acesso aberto em todos os projetos.
- A
fabrikam-prime organização está configurada para disponibilidade com dois projetos, com acesso aberto habilitado apenas nesses dois projetos.
"organizationProfile": {
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"openAccess": true,
"parallelism": 2
},
{
"url": "https://dev.azure.com/fabrikam-prime",
"projects": [ "fabrikam-dev", "fabrikam-test" ],
"openAccess": true,
"parallelism": 2
}
],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
Você pode configurar o acesso aberto somente quando criar um pool. Para alterar a configuração de acesso aberto depois de criar um pool (incluindo adicionar ou remover projetos da configuração de Pools de DevOps gerenciados), você deve configurar manualmente o acesso aberto no pool de agentes correspondente no Azure DevOps para cada projeto que usa o pool.
Você pode configurar a definição openAccess no parâmetro organization-profile ao criar um pool.
az mdp pool create \
--organization-profile organization-profile.json
# other parameters omitted for space
O exemplo a seguir orgaization-profile tem duas organizações configuradas:
- A
fabrikam-tailspin organização é configurada com acesso aberto em todos os projetos.
- A
fabrikam-prime organização está configurada para disponibilidade com dois projetos, com acesso aberto habilitado apenas nesses dois projetos.
{
"AzureDevOps":
{
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 2
},
{
"url": "https://dev.azure.com/fabrikam-prime",
"projects": [ "fabrikam-dev", "fabrikam-test" ],
"parallelism": 2
}
]
}
}
Você pode configurar o acesso aberto somente quando criar um pool. Para alterar a configuração de acesso aberto depois de criar um pool (incluindo adicionar ou remover projetos da configuração de Pools de DevOps gerenciados), você deve configurar manualmente o acesso aberto no pool de agentes correspondente no Azure DevOps para cada projeto que usa o pool.
Nota
A configuração de acesso aberto está presente ao usar api-version 2025-01-21 e superior.
Você pode configurar organizações na organizationProfile propriedade do recurso Managed DevOps Pools. O exemplo a seguir tem duas organizações configuradas:
- A
fabrikam-tailspin organização é configurada com acesso aberto em todos os projetos.
- A
fabrikam-prime organização está configurada para disponibilidade com dois projetos, com acesso aberto habilitado apenas nesses dois projetos.
organizationProfile: {
organizations: [
{
url: 'https://dev.azure.com/fabrikam-tailspin'
projects: []
openAccess: true
parallelism: 2
}
{
url: 'https://dev.azure.com/fabrikam-prime'
projects: ['fabrikam-dev', 'fabrikam-test']
openAccess: true
parallelism: 2
}
]
permissionProfile: {
kind: 'CreatorOnly'
}
kind: 'AzureDevOps'
}
Você pode configurar o acesso aberto somente quando criar um pool. Para alterar a configuração de acesso aberto depois de criar um pool (incluindo adicionar ou remover projetos da configuração de Pools de DevOps gerenciados), você deve configurar manualmente o acesso aberto no pool de agentes correspondente no Azure DevOps para cada projeto que usa o pool.
Se você tentar executar um pipeline que não está autorizado a acessar seu pool de agentes, receberá um erro como "Este pipeline precisa de permissão para acessar um recurso antes que essa execução possa continuar". Você pode resolver esse problema configurando o acesso aberto, conforme descrito na seção anterior, ou autorizando explicitamente o pipeline a ser executado no pool de agentes.
Se os seus testes precisarem de um login interativo para testes de interface, ative o login interativo ativando a definição EnableInteractiveMode .
Você pode configurar o osProfile modo interativo na seção fabricProfile da propriedade. Defina logonType como Interactive para ativar o modo interativo ou Service para desativar o modo interativo.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"fabricProfile": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {...},
"logonType": "Interactive"
},
"storageProfile": {...},
"kind": "Vmss"
}
}
]
}
Você pode configurar o modo interativo usando a propriedade logonType na secção osProfile do parâmetro fabric-profile ao criar ou atualizar um pool.
az mdp pool create \
--fabric-profile fabric-profile.json
# other parameters omitted for space
O exemplo a seguir mostra a osProfile seção do arquivo fabric-profile.json com modo Interactive habilitado.
{
"vmss": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {...},
"logonType": "Interactive"
},
"storageProfile": {...}
}
}
O modo interativo é configurado na osProfile seção da fabricProfile propriedade. Defina logonType como Interactive para ativar o modo interativo ou Service para desativar o modo interativo.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
fabricProfile: {
sku: {...}
images: [...]
osProfile: {
secretsManagementSettings: {...}
logonType: 'Interactive'
}
storageProfile: {...}
kind: 'Vmss'
}
}
}
Como parte do processo de criação do Pool de DevOps Gerenciado, um pool de agentes é criado no nível da organização do Azure DevOps e um pool de agentes no nível do projeto é criado em cada projeto designado. A configuração de permissões de administração do pool especifica quais usuários recebem a permissão de administrador nos pools de agentes recém-criados no Azure DevOps. Para exibir e gerenciar as permissões do pool de agentes do Azure DevOps após a criação do Pool de DevOps Gerenciado, consulte Criar e gerenciar pools de agentes: Segurança de pools de agentes.
-
Somente criador: essa configuração adiciona o usuário que criou o Pool de DevOps Gerenciado como administrador do pool de agentes de DevOps do Azure e define Herança como Desativado nas configurações de segurança do pool de agentes.
Creator é apenas a configuração padrão.
-
Herdar permissões do projeto: essa configuração adiciona o usuário que criou o Pool de DevOps Gerenciado como administrador do pool de agentes do Azure DevOps e define Herança como Ativado nas configurações de segurança do pool de agentes.
-
Contas específicas: você pode usar essa configuração para especificar as contas que deseja adicionar como administradores do pool de agentes no Azure DevOps. Por padrão, o criador do pool está incluído.
Você pode definir a configuração de permissões de administração do pool na guia Segurança ao criar o pool. Ele não é exibido nas configurações de segurança depois que o pool é criado. Para exibir e gerenciar as permissões do pool de agentes do Azure DevOps depois de criar o pool, consulte Criar e gerenciar pools de agentes - Segurança de pools de agentes.
Você pode configurar as permissões de administração de pool na propriedade permissionsProfile da seção organizationProfile do recurso Managed DevOps Pools.
{
"organizationProfile": {
"organizations": [...],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
Você pode definir a permissionProfile propriedade somente quando criar o pool. Os valores permitidos são Inherit, CreatorOnlye SpecificAccounts.
-
CreatorOnly: essa configuração adiciona o usuário que criou o Pool de DevOps Gerenciado como administrador do pool de agentes do Azure DevOps e define Inheritance como Off nas configurações de segurança do pool de agentes.
Creator é apenas a configuração padrão.
-
Inherit: essa configuração adiciona o usuário que criou o Pool de DevOps Gerenciado como administrador do pool de agentes do Azure DevOps e define Inheritance como On nas configurações de segurança do pool de agentes.
-
SpecificAccounts: Você pode usar essa configuração para especificar as contas que deseja adicionar como administradores do pool de agentes no Azure DevOps. Por padrão, o criador do pool está incluído.
"organizationProfile": {
"organizations": [...],
"permissionProfile": {
"kind": "SpecificAccounts",
"users" : ["User1@fabrikam.com", "User2@fabrikam.com" ]
},
"kind": "AzureDevOps"
}
Você pode configurar permissões de administração de pools no parâmetro ao organization-profile um pool.
az mdp pool create \
--organization-profile organization-profile.json
# other parameters omitted for space
{
"AzureDevOps":
{
"organizations": [...],
"permissionProfile": {
"kind": "CreatorOnly"
}
}
}
Você pode definir a permissionProfile propriedade somente quando criar o pool. Os valores permitidos são Inherit, CreatorOnlye SpecificAccounts.
-
CreatorOnly: essa configuração adiciona o usuário que criou o Pool de DevOps Gerenciado como administrador do pool de agentes do Azure DevOps e define Inheritance como Off nas configurações de segurança do pool de agentes.
Creator é apenas a configuração padrão.
-
Inherit: essa configuração adiciona o usuário que criou o Pool de DevOps Gerenciado como administrador do pool de agentes do Azure DevOps e define Inheritance como On nas configurações de segurança do pool de agentes.
-
SpecificAccounts: Você pode usar essa configuração para especificar as contas que deseja adicionar como administradores do pool de agentes no Azure DevOps. Por padrão, o criador do pool está incluído. Forneça um único endereço de e-mail ou uma lista de endereços de e-mail para a users propriedade. Caso contrário, omita users.
{
"AzureDevOps" : {
"organizationProfile": {
"organizations": [...],
"permissionProfile": {
"kind": "SpecificAccounts",
"users" : ["User1@fabrikam.com", "User2@fabrikam.com" ]
}
}
}
}
Você pode configurar as permissões de administração de pool na propriedade permissionsProfile da seção organizationProfile do recurso Managed DevOps Pools.
organizationProfile: {
organizations: [...]
permissionProfile: {
kind: 'CreatorOnly'
}
kind: 'AzureDevOps'
}
Você pode definir a permissionProfile propriedade somente quando criar o pool. Os valores permitidos são Inherit, CreatorOnlye SpecificAccounts.
-
CreatorOnly: essa configuração adiciona o usuário que criou o Pool de DevOps Gerenciado como administrador do pool de agentes do Azure DevOps e define Inheritance como Off nas configurações de segurança do pool de agentes.
Creator é apenas a configuração padrão.
-
Inherit: essa configuração adiciona o usuário que criou o Pool de DevOps Gerenciado como administrador do pool de agentes do Azure DevOps e define Inheritance como On nas configurações de segurança do pool de agentes.
-
SpecificAccounts: Você pode usar essa configuração para especificar as contas que deseja adicionar como administradores do pool de agentes no Azure DevOps. Por padrão, o criador do pool está incluído. Forneça um único endereço de e-mail ou uma lista de endereços de e-mail para a users propriedade. Caso contrário, omita users.
organizationProfile: {
organizations: [...]
permissionProfile: {
kind: 'SpecificAccounts'
users: ['User1@fabrikam.com', 'User2@fabrikam.com']
}
kind: 'AzureDevOps'
}
Os Pools de DevOps Gerenciados oferecem a capacidade de buscar certificados de um cofre de chaves do Azure durante o provisionamento. Os certificados já existem na máquina no momento em que ela executa seus pipelines.
Para usar esse recurso, você deve:
Configure uma identidade no seu pool. Você deve dar a esta identidade Key Vault Secrets permissão de usuário para buscar o segredo do seu cofre de chaves. Para atribuir sua identidade à função Usuário de Segredos do Cofre de Chaves , consulte Fornecer acesso a chaves, certificados e segredos do cofre de chaves com um controle de acesso baseado em função do Azure.
A entidade principal que define as configurações de integração do cofre de chaves (a sua conta, se estiver a definir as configurações do cofre de chaves) deve ter a atribuição da função Usuário do Certificado do Cofre de Chaves no cofre de chaves onde os certificados estão armazenados.
Para impor o isolamento de rede da sua instância Azure Key Vault para permitir apenas o acesso a recursos autorizados, deve adicionar os seguintes endereços IP à sua lista de permissões do Azure Key Vault. Os seguintes intervalos de endereços IP estão em uma marca de serviço do Azure chamada DevOpsInfrastructure.
| Localização |
Intervalo de endereços IP |
| AustráliaLeste |
4.198.194.192/28 |
| BrasilSul |
74.163.143.32/28 |
| CanadáCentral |
130.107.66.0/28 |
| Índia Central |
98.70.255.112/28 |
| centralus |
72.152.33.16/28 |
| Eastus2 |
72.153.21.192/28 |
| AlemanhaCentro-Oeste |
131.189.121.128/28 |
| Europa do Norte |
72.145.24.48/28 |
| Sudeste Asiático |
135.171.33.48/28 |
| SuíçaNorte |
74.161.82.192/28 |
| UKSOUTH |
131.145.107.64/28 |
| Westus3 |
57.154.125.208/28 |
Nota
A partir de api-version 2025-01-21, se você usar esse recurso, poderá usar apenas uma única identidade no pool.
Você pode usar apenas uma identidade para buscar segredos no cofre de chaves.
Você define as configurações de certificado dos Pools de DevOps Gerenciados no nível do pool e algumas das configurações são específicas para Windows ou Linux. Se o seu fluxo de trabalho exigir imagens do Linux e do Windows, talvez seja necessário dividi-las em vários pools se não conseguir encontrar um conjunto comum de configurações de certificado que funcionem para Windows e Linux.
As configurações a seguir configuram os certificados recuperados do repositório de chaves:
-
Certificados (
observedCertificates): Esta configuração especifica os certificados a serem buscados no cofre de chaves e instalados em todas as máquinas do pool.
-
Local de armazenamento de certificados (
certificateStoreLocation): Esta configuração especifica o local para instalar os certificados em seu agente.
-
Agentes do Windows: especifique
LocalMachine ou CurrentUser.
-
Agentes Linux: A configuração Localização do armazenamento de certificados só é suportada em distribuições do Ubuntu. Especifique o caminho do disco para armazenar os certificados (por exemplo,
/var/lib/waagent/Microsoft.Azure.KeyVault/app1).
Para distribuições do Ubuntu, se você especificar o local de armazenamento confiável (por exemplo, /usr/local/share/ca-certificates), o certificado será adicionado a esse repositório de certificados como root. Para obter mais informações, consulte Instalar um certificado de autoridade de certificação raiz no repositório de confiança.
-
Nome do repositório de certificados (
certificateStoreName)
-
Agentes do Windows: essa configuração especifica o nome do repositório de certificados. É ou
My (armazenamento de certificados local, que é o padrão se nenhum nome for especificado) ou Root (local raiz de confiança).
-
Agentes Linux: Esta configuração não é usada em agentes Linux.
-
Chaves privadas exportáveis (
keyExportable): Esta configuração especifica se a chave dos certificados é exportável. A predefinição é false.
Você pode configurar a integração do cofre de chaves em Configurações>de segurança.
Você pode definir as configurações de integração do cofre de chaves somente depois de criar o pool. Não é possível definir as configurações de integração do cofre de chaves ao criar o pool. Eles não são exibidos na guia Segurança durante a criação do pool.
Você pode configurar o Azure Key Vault na seção osProfile da propriedade fabricProfile. Configure secretManagementSettings para poder aceder ao certificado desejado.
Nota
A propriedade osProfile.certificateStoreName está disponível apenas em apiVersion 2025-01-21 nas versões posteriores.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"fabricProfile": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {
"certificateStoreLocation": "LocalMachine",
"certificateStoreName": "Root",
"observedCertificates": [
"https://<keyvault-uri>/secrets/<certificate-name>"
],
"keyExportable": false
}
},
"storageProfile": {...},
"kind": "Vmss"
}
}
]
}
Você pode configurar o Azure Key Vault na seção da propriedade osProfile ao fabricProfile ou atualizar um pool. Defina o secretManagementSettings para poder acessar o certificado desejado.
az mdp pool create \
--fabric-profile fabric-profile.json
# other parameters omitted for space
O exemplo a seguir mostra a osProfile seção do arquivo fabric-profile.json com secretsManagementSettings configurado.
{
"vmss": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {
"certificateStoreLocation": "LocalMachine",
"observedCertificates": [
"https://<keyvault-uri>/secrets/<certificate-name>"
],
"keyExportable": false
},
"logonType": "Interactive"
},
"storageProfile": {...}
}
}
Você pode configurar o Azure Key Vault na seção osProfile da propriedade fabricProfile. Configure secretManagementSettings para poder aceder ao certificado desejado.
Nota
A propriedade osProfile.certificateStoreName está disponível apenas em apiVersion 2025-01-21 nas versões posteriores.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
fabricProfile: {
sku: {...}
images: [...]
osProfile: {
secretsManagementSettings: {
certificateStoreLocation: 'LocalMachine'
certificateStoreName: 'Root'
observedCertificates: 'https://<keyvault-uri>/secrets/<certificate-name>'
keyExportable: false
}
}
kind: 'Vmss'
}
}
}
Os certificados recuperados usando o SecretManagementSettings no pool são sincronizados automaticamente com as versões mais recentes publicadas no cofre de chaves. Esses segredos estão na máquina no momento em que ela executa a sua primeira pipeline, o que significa que você pode economizar tempo e eliminar tarefas de obtenção de certificados.
Importante
O provisionamento das máquinas virtuais do agente falhará se o segredo não puder ser buscado no cofre de chaves devido a um problema de permissões ou de rede.
Para Windows, você pode definir o valor Local do Repositório de Certificados como LocalMachine ou CurrentUser. Essa configuração garante que o segredo seja instalado nesse local na máquina. Para obter um comportamento específico de como funciona a recuperação secreta, consulte Extensão do Azure Key Vault para Windows.
Para Linux, você pode definir o valor de Local de Armazenamento de Certificados para qualquer diretório na máquina, e os certificados são baixados e sincronizados com esse local. Para obter detalhes sobre configurações padrão e comportamento secreto, consulte Extensão de máquina virtual do Azure Key Vault para Linux.
Conteúdo relacionado