Incluir um cliente no Azure Lighthouse
Este artigo explica como você, como provedor de serviços, pode integrar um cliente ao Azure Lighthouse. Quando você faz isso, os recursos delegados (assinaturas e/ou grupos de recursos) no locatário do Microsoft Entra do cliente podem ser gerenciados por usuários em seu locatário por meio do gerenciamento de recursos delegados do Azure.
Gorjeta
Embora nos referimos a provedores de serviços e clientes neste tópico, as empresas que gerenciam vários locatários podem usar o mesmo processo para configurar o Azure Lighthouse e consolidar sua experiência de gerenciamento.
Você pode repetir o processo de integração para vários clientes. Quando um usuário com as permissões apropriadas entra em seu locatário de gerenciamento, esse usuário é autorizado a executar operações de gerenciamento em escopos de locação de cliente, sem precisar entrar em cada locatário de cliente individual.
Nota
Como alternativa, os clientes podem ser integrados ao Azure Lighthouse quando compram uma oferta de Serviço Gerenciado (pública ou privada) que você publica no Azure Marketplace. Também pode utilizar o processo de integração descrito aqui em conjunto com as ofertas publicadas no Azure Marketplace.
O processo de integração requer que as ações sejam tomadas tanto do locatário do provedor de serviços quanto do locatário do cliente. Todas essas etapas são descritas neste artigo.
Reunir detalhes do locatário e da assinatura
Para integrar o locatário de um cliente, ele deve ter uma assinatura ativa do Azure. Ao criar um modelo manualmente, você precisará saber o seguinte:
- O ID do inquilino do fornecedor de serviços (onde vai gerir os recursos do cliente).
- O ID do inquilino do cliente (que terá recursos geridos pelo fornecedor de serviços).
- Os IDs de cada subscrição específica no inquilino do cliente que serão geridas pelo fornecedor de serviços (ou que contém os grupos de recursos que serão geridos pelo fornecedor de serviços).
Se não sabe qual é o ID de um inquilino, poderá obtê-lo ao utilizar o portal do Azure, o Azure PowerShell ou a CLI do Azure.
Se você criar seu modelo no portal do Azure, sua ID de locatário será fornecida automaticamente. Você não precisa saber os detalhes do locatário ou da assinatura do cliente para criar seu modelo no portal do Azure. No entanto, se você planeja integrar um ou mais grupos de recursos no locatário do cliente (em vez da assinatura inteira), precisará saber os nomes de cada grupo de recursos.
Definir funções e permissões
Como um provedor de serviços, você pode querer executar várias tarefas para um único cliente, exigindo acesso diferente para escopos diferentes. Pode definir as autorizações necessárias para atribuir as funções incorporadas do Azure adequadas. Cada autorização inclui um principalId
que se refere a um usuário, grupo ou entidade de serviço do Microsoft Entra no locatário de gerenciamento.
Nota
A menos que explicitamente especificado, as referências a um "usuário" na documentação do Azure Lighthouse podem se aplicar a um usuário, grupo ou entidade de serviço do Microsoft Entra em uma autorização.
Para definir autorizações em seu modelo, você deve incluir os valores de ID para cada usuário, grupo de usuários ou entidade de serviço no locatário de gerenciamento ao qual deseja conceder acesso. Você também precisará incluir a ID de definição de função para cada função interna que deseja atribuir. Ao criar seu modelo no portal do Azure, você pode selecionar a conta de usuário e a função, e esses valores de ID serão adicionados automaticamente. Se você estiver criando um modelo manualmente, poderá recuperar IDs de usuário usando o portal do Azure, o Azure PowerShell ou a CLI do Azure de dentro do locatário de gerenciamento.
Gorjeta
Recomendamos atribuir a Função de Exclusão de Atribuição de Registro de Serviços Gerenciados ao integrar um cliente, para que os usuários em seu locatário possam remover o acesso à delegação posteriormente, se necessário. Se essa função não for atribuída, os recursos delegados só poderão ser removidos por um usuário no locatário do cliente.
Sempre que possível, recomendamos o uso de grupos de usuários do Microsoft Entra para cada atribuição sempre que possível, em vez de usuários individuais. Terá, assim, a flexibilidade de adicionar ou remover utilizadores individuais ao grupo que tem acesso, para não ter de repetir o processo de inclusão para fazer alterações aos utilizadores. Também pode atribuir funções a um principal de serviço, que pode ser útil para cenários de automatização.
Importante
Para adicionar permissões para um grupo do Microsoft Entra, o tipo de grupo deve ser definido como Segurança. Esta opção é selecionada quando o grupo é criado. Para obter mais informações, consulte Saiba mais sobre grupos e direitos de acesso no Microsoft Entra ID.
Ao definir as autorizações, garanta que segue o princípio do menor privilégio para que os utilizadores tenham apenas as permissões necessárias para concluir o trabalho atribuído. Para obter informações sobre as funções e as melhores práticas suportadas, veja Inquilinos, utilizadores e funções em cenários do Azure Lighthouse.
Gorjeta
Você também pode criar autorizações qualificadas que permitem que os usuários em seu locatário de gerenciamento elevem temporariamente sua função. Este recurso tem requisitos de licenciamento específicos. Para obter mais informações, consulte Criar autorizações qualificadas.
Para acompanhar seu impacto nos compromissos com os clientes e receber reconhecimento, associe sua ID do Programa de Parceiros do Microsoft Cloud a pelo menos uma conta de usuário que tenha acesso a cada uma de suas assinaturas integradas. Precisará de fazer esta associação no inquilino do fornecedor de serviços. Recomendamos a criação de uma conta principal de serviço em seu locatário que esteja associada ao seu ID de parceiro e, em seguida, inclua essa entidade de serviço sempre que você integrar um cliente. Para saber mais, veja Vincular um ID de parceiro.
Criar um modelo do Azure Resource Manager
Para integrar o cliente, terá de criar um modelo do Azure Resource Manager para a sua oferta com as seguintes informações. Os mspOfferName
valores e mspOfferDescription
ficarão visíveis para o cliente na página Provedores de serviços do portal do Azure assim que o modelo for implantado no locatário do cliente.
Campo | Definição |
---|---|
mspOfferName |
Um nome a descrever esta definição. Este valor é apresentado ao cliente como o título da oferta e deve ser um valor exclusivo. |
mspOfferDescription |
Uma breve descrição da oferta (por exemplo, “Oferta de gestão da VM Contoso”). Este campo é opcional, mas recomendado para que os clientes tenham uma compreensão clara da oferta. |
managedByTenantId |
O ID do inquilino. |
authorizations |
Os principalId valores para os usuários/grupos/SPNs do seu locatário, cada um com um principalIdDisplayName para ajudar o cliente a entender a finalidade da autorização, e mapeados para um valor interno roleDefinitionId para especificar o nível de acesso. |
Pode criar este modelo no portal do Azure ou ao modificar manualmente os modelos disponibilizados no nosso repositório de amostras.
Importante
O processo descrito aqui requer uma implantação separada para cada assinatura que está sendo integrada, mesmo que você esteja integrando assinaturas no mesmo locatário do cliente. Implantações separadas também são necessárias se você estiver integrando vários grupos de recursos em assinaturas diferentes no mesmo locatário do cliente. No entanto, a integração de vários grupos de recursos em uma única assinatura pode ser feita em uma implantação.
Implantações separadas também são necessárias para várias ofertas que estão sendo aplicadas à mesma assinatura (ou grupos de recursos dentro de uma assinatura). Cada oferta candidata deve utilizar um mspOfferName
ficheiro .
Crie seu modelo no portal do Azure
Para criar seu modelo no portal do Azure, vá para Meus clientes e selecione Criar modelo ARM na página de visão geral.
Na página de oferta Criar modelo ARM, forneça seu Nome e uma Descrição opcional. Esses valores serão usados para o e mspOfferDescription
em seu modelo, e eles podem ser visíveis para o mspOfferName
seu cliente. O managedByTenantId
valor será fornecido automaticamente, com base no locatário do Microsoft Entra no qual você está conectado.
Em seguida, selecione Assinatura ou Grupo de recursos, dependendo do escopo do cliente que você deseja integrar. Se você selecionar Grupo de recursos, precisará fornecer o nome do grupo de recursos a ser integrado. Você pode selecionar o + ícone para adicionar grupos de recursos adicionais na mesma assinatura, se necessário. (Para integrar grupos de recursos adicionais em uma assinatura diferente, você deve criar e implantar um modelo separado para essa assinatura.)
Por fim, crie suas autorizações selecionando + Adicionar autorização. Para cada uma das suas autorizações, forneça os seguintes detalhes:
- Selecione o tipo Principal dependendo do tipo de conta que você deseja incluir na autorização. Pode ser Usuário, Grupo ou Entidade de serviço. Neste exemplo, escolheremos Usuário.
- Selecione o link + Selecionar usuário para abrir o painel de seleção. Você pode usar o campo de pesquisa para encontrar o usuário que deseja adicionar. Depois de fazer isso, clique em Selecionar. O ID Principal do usuário será preenchido automaticamente.
- Revise o campo Nome para exibição (preenchido com base no usuário selecionado) e faça alterações, se desejar.
- Selecione a Função a atribuir a este utilizador.
- Para Tipo de acesso , selecione Permanente ou Elegível. Se você escolher Elegível, precisará especificar opções para duração máxima, autenticação multifator e se a aprovação é necessária ou não. Para obter mais informações sobre essas opções, consulte Criar autorizações qualificadas. O recurso de autorizações qualificadas não pode ser usado com entidades de serviço.
- Selecione Adicionar para criar sua autorização.
Depois de selecionar Adicionar, você retornará à tela de oferta Criar modelo ARM. Você pode selecionar + Adicionar autorização novamente para adicionar quantas autorizações forem necessárias.
Quando tiver adicionado todas as suas autorizações, selecione Ver modelo. Nesta tela, você verá um arquivo .json que corresponde aos valores inseridos. Selecione Download para salvar uma cópia deste arquivo .json. Esse modelo pode ser implantado no locatário do cliente. Você também pode editá-lo manualmente se precisar fazer alterações.
Importante
O arquivo de modelo gerado não é armazenado no portal do Azure. Certifique-se de baixar uma cópia antes de sair da tela Mostrar modelo .
Criar o modelo manualmente
Você pode criar seu modelo usando um modelo do Azure Resource Manager (fornecido em nosso repositório de exemplos) e um arquivo de parâmetro correspondente que você modifica para corresponder à sua configuração e definir suas autorizações. Se preferir, você pode incluir todas as informações diretamente no modelo, em vez de usar um arquivo de parâmetro separado.
O modelo escolhido dependerá se você está integrando uma assinatura inteira, um grupo de recursos ou vários grupos de recursos dentro de uma assinatura. Também fornecemos um modelo que pode ser usado para clientes que compraram uma oferta de serviço gerenciado que você publicou no Azure Marketplace, se preferir integrar sua(s) assinatura(s) dessa maneira.
Para integrar este | Usar este modelo do Azure Resource Manager | E modificar este arquivo de parâmetro |
---|---|---|
Subscrição | subscription.json | subscription.parameters.json |
Grupo de recursos | rg.json | rg.parameters.json |
Múltiplos grupos de recursos numa subscrição | multi-rg.json | multiple-rg.parameters.json |
Subscrição (ao utilizar uma oferta publicada no Azure Marketplace) | marketplaceDelegatedResourceManagement.json | marketplaceDelegatedResourceManagement.parameters.json |
Se você quiser incluir autorizações qualificadas, selecione o modelo correspondente na seção delegated-resource-management-eligible-authorizations do nosso repositório de amostras.
Gorjeta
Embora não seja possível integrar um grupo de gerenciamento inteiro em uma implantação, você pode implantar uma política para integrar cada assinatura em um grupo de gerenciamento. Em seguida, você terá acesso a todas as assinaturas no grupo de gerenciamento, embora tenha que trabalhar nelas como assinaturas individuais (em vez de executar ações diretamente no recurso do grupo de gerenciamento).
O exemplo a seguir mostra um arquivo de subscription.parameters.json modificado que pode ser usado para integrar uma assinatura. Os arquivos de parâmetro do grupo de recursos (localizados na pasta rg-delegated-resource-management ) têm um formato semelhante, mas também incluem um rgName
parâmetro para identificar o(s) grupo(s) de recursos específico(s) a ser integrado(s).
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mspOfferName": {
"value": "Fabrikam Managed Services - Interstellar"
},
"mspOfferDescription": {
"value": "Fabrikam Managed Services - Interstellar"
},
"managedByTenantId": {
"value": "00000000-0000-0000-0000-000000000000"
},
"authorizations": {
"value": [
{
"principalId": "00000000-0000-0000-0000-000000000000",
"principalIdDisplayName": "Tier 1 Support",
"roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
},
{
"principalId": "00000000-0000-0000-0000-000000000000",
"principalIdDisplayName": "Tier 1 Support",
"roleDefinitionId": "36243c78-bf99-498c-9df9-86d9f8d28608"
},
{
"principalId": "00000000-0000-0000-0000-000000000000",
"principalIdDisplayName": "Tier 2 Support",
"roleDefinitionId": "acdd72a7-3385-48ef-bd42-f606fba81ae7"
},
{
"principalId": "00000000-0000-0000-0000-000000000000",
"principalIdDisplayName": "Service Automation Account",
"roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
},
{
"principalId": "00000000-0000-0000-0000-000000000000",
"principalIdDisplayName": "Policy Automation Account",
"roleDefinitionId": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
"delegatedRoleDefinitionIds": [
"b24988ac-6180-42a0-ab88-20f7382dd24c",
"92aaf0da-9dab-42b6-94a3-d43ce8d16293"
]
}
]
}
}
}
A última autorização no exemplo acima adiciona um principalId
com a função de Administrador de Acesso de Usuário (18d7d88d-d35e-4fb5-a5c3-7773c20a72d9). Ao atribuir essa função, você deve incluir a delegatedRoleDefinitionIds
propriedade e uma ou mais funções internas do Azure com suporte. O usuário criado nesta autorização poderá atribuir essas funções a identidades gerenciadas no locatário do cliente, o que é necessário para implantar políticas que podem ser corrigidas. O usuário também é capaz de criar incidentes de suporte. Nenhuma outra permissão normalmente associada à função de Administrador de Acesso de Usuário será aplicada a este principalId
.
Implantar o modelo do Azure Resource Manager
Depois de criar seu modelo, um usuário no locatário do cliente deve implantá-lo em seu locatário. É necessária uma implementação separada para cada subscrição que quer integrar (ou para cada subscrição que contenha grupos de recursos que queira integrar).
Ao integrar uma subscrição (ou um ou mais grupos de recursos dentro de uma subscrição) através do processo aqui descrito, o fornecedor de recursos Microsoft.ManagedServices será registado nessa subscrição.
Importante
Essa implantação deve ser feita por uma conta não convidada no locatário do cliente que tenha uma função com a Microsoft.Authorization/roleAssignments/write
permissão, como Proprietário, para a assinatura que está sendo integrada (ou que contenha os grupos de recursos que estão sendo integrados). Para localizar usuários que podem delegar a assinatura, um usuário no locatário do cliente pode selecionar a assinatura no portal do Azure, abrir o controle de acesso (IAM) e exibir todos os usuários com a função Proprietário.
Se a assinatura tiver sido criada por meio do programa CSP (Provedor de Soluções na Nuvem), qualquer usuário que tenha a função de Agente Administrador no locatário do provedor de serviços poderá executar a implantação.
A implantação pode ser feita usando o PowerShell, usando a CLI do Azure ou no portal do Azure, conforme mostrado abaixo.
Implantar usando o PowerShell
Para implantar um único modelo:
# Log in first with Connect-AzAccount if you're not using Cloud Shell
# Deploy Azure Resource Manager template using template and parameter file locally
New-AzSubscriptionDeployment -Name <deploymentName> `
-Location <AzureRegion> `
-TemplateFile <pathToTemplateFile> `
-Verbose
# Deploy Azure Resource Manager template that is located externally
New-AzSubscriptionDeployment -Name <deploymentName> `
-Location <AzureRegion> `
-TemplateUri <templateUri> `
-Verbose
Para implantar um modelo com um arquivo de parâmetro separado:
# Log in first with Connect-AzAccount if you're not using Cloud Shell
# Deploy Azure Resource Manager template using template and parameter file locally
New-AzSubscriptionDeployment -Name <deploymentName> `
-Location <AzureRegion> `
-TemplateFile <pathToTemplateFile> `
-TemplateParameterFile <pathToParameterFile> `
-Verbose
# Deploy Azure Resource Manager template that is located externally
New-AzSubscriptionDeployment -Name <deploymentName> `
-Location <AzureRegion> `
-TemplateUri <templateUri> `
-TemplateParameterUri <parameterUri> `
-Verbose
Implementar com a CLI do Azure
Para implantar um único modelo:
# Log in first with az login if you're not using Cloud Shell
# Deploy Azure Resource Manager template using template and parameter file locally
az deployment sub create --name <deploymentName> \
--location <AzureRegion> \
--template-file <pathToTemplateFile> \
--verbose
# Deploy external Azure Resource Manager template, with local parameter file
az deployment sub create --name <deploymentName> \
--location <AzureRegion> \
--template-uri <templateUri> \
--verbose
Para implantar um modelo com um arquivo de parâmetro separado:
# Log in first with az login if you're not using Cloud Shell
# Deploy Azure Resource Manager template using template and parameter file locally
az deployment sub create --name <deploymentName> \
--location <AzureRegion> \
--template-file <pathToTemplateFile> \
--parameters <parameters/parameterFile> \
--verbose
# Deploy external Azure Resource Manager template, with local parameter file
az deployment sub create --name <deploymentName> \
--location <AzureRegion> \
--template-uri <templateUri> \
--parameters <parameterFile> \
--verbose
Implantar no portal do Azure
Para implantar um modelo no portal do Azure, siga o processo descrito abaixo. Essas etapas devem ser feitas por um usuário no locatário do cliente com a função Proprietário (ou outra função com a Microsoft.Authorization/roleAssignments/write
permissão).
Na página Provedores de serviços no portal do Azure, selecione Ofertas do provedor de servidor.
Perto da parte superior do ecrã, selecione a seta junto a Adicionar oferta e, em seguida, selecione Adicionar através do modelo.
Carregue o modelo arrastando-o e soltando-o, ou selecione Procurar arquivos para localizar e carregar o modelo.
Se aplicável, selecione a caixa Eu tenho um arquivo de parâmetro separado e, em seguida, carregue seu arquivo de parâmetro.
Depois de carregar o modelo (e o arquivo de parâmetros, se necessário), selecione Carregar.
Na tela Implantação personalizada, revise os detalhes exibidos. Se necessário, você pode fazer alterações nesses valores nesta tela ou selecionando Editar parâmetros.
Selecione Rever e criar e, em seguida, selecione Criar.
Após alguns minutos, você verá uma notificação de que a implantação foi concluída.
Gorjeta
Como alternativa, em nosso repositório GitHub, selecione o botão Implantar no Azure mostrado ao lado do modelo que você deseja usar (na coluna Implantação automática). O modelo de exemplo será aberto no portal do Azure. Se você usar esse processo, deverá atualizar os valores de Nome da Oferta do Msp, Descrição da Oferta do Msp, Gerenciado pela ID do Locatário e Autorizações antes de selecionar Revisar e criar.
Confirme a integração bem-sucedida
Quando uma assinatura de cliente tiver sido integrada com êxito ao Azure Lighthouse, os usuários no locatário do provedor de serviços poderão ver a assinatura e seus recursos (se tiverem recebido acesso a ela por meio do processo acima, individualmente ou como membro de um grupo do Microsoft Entra com as permissões apropriadas). Para confirmar, verifique se a subscrição aparece de uma das seguintes formas.
Confirmar no portal do Azure
No locatário do provedor de serviços:
- Navegue até a página Meus clientes.
- Selecione Clientes.
- Confirme que pode ver a(s) subscrição(ões) com o nome da oferta que forneceu no modelo do Resource Manager.
Importante
Para ver a assinatura delegada em Meus clientes, os usuários no locatário do provedor de serviços devem ter recebido a função Leitor (ou outra função interna que inclua acesso de Leitor) quando a assinatura foi integrada.
No inquilino do cliente:
- Navegue até a página Provedores de serviços.
- Selecione Ofertas de fornecedores de serviços.
- Confirme que pode ver a(s) subscrição(ões) com o nome da oferta que forneceu no modelo do Resource Manager.
Nota
Pode levar até 15 minutos após a conclusão da implantação para que as atualizações sejam refletidas no portal do Azure. Talvez você consiga ver as atualizações mais cedo se atualizar seu token do Azure Resource Manager atualizando o navegador, entrando e saindo ou solicitando um novo token.
Confirmar usando o PowerShell
# Log in first with Connect-AzAccount if you're not using Cloud Shell
Get-AzContext
# Confirm successful onboarding for Azure Lighthouse
Get-AzManagedServicesDefinition
Get-AzManagedServicesAssignment
Confirmar usando a CLI do Azure
# Log in first with az login if you're not using Cloud Shell
az account list
# Confirm successful onboarding for Azure Lighthouse
az managedservices definition list
az managedservices assignment list
Se você precisar fazer alterações depois que o cliente tiver sido integrado, você pode atualizar a delegação. Você também pode remover completamente o acesso à delegação .
Resolução de Problemas
Se você não conseguir integrar seu cliente com êxito ou se os usuários tiverem problemas para acessar os recursos delegados, verifique as dicas e os requisitos a seguir e tente novamente.
- Os usuários que precisam exibir recursos do cliente no portal do Azure devem ter recebido a função de Leitor (ou outra função interna que inclua acesso de Leitor) durante o processo de integração.
- O
managedbyTenantId
valor não deve ser o mesmo que o ID do locatário da assinatura que está sendo integrada. - Não é possível ter várias atribuições no mesmo escopo com o mesmo
mspOfferName
. - O provedor de recursos Microsoft.ManagedServices deve estar registrado para a assinatura delegada. Isso deve acontecer automaticamente durante a implantação, mas se não, você pode registrá-lo manualmente.
- As autorizações não devem incluir usuários com a função Proprietário, funções com DataActions ou funções que incluam ações restritas.
- Os grupos devem ser criados com o tipo de grupo definido como Segurança e não com o Microsoft 365.
- Se o acesso tiver sido concedido a um grupo, verifique se o utilizador é membro desse grupo. Se não estiverem, você pode adicioná-los ao grupo usando a ID do Microsoft Entra, sem precisar executar outra implantação. Tenha em atenção que os proprietários dos grupos não são necessariamente membros dos grupos que gerem e podem ter de ser adicionados para terem acesso.
- Pode haver um atraso adicional antes que o acesso seja habilitado para grupos aninhados.
- As funções internas do Azure que você inclui nas autorizações não devem incluir nenhuma função preterida. Se uma função incorporada no Azure for preterida, todos os utilizadores que tiverem sido integrados com essa função perderão o acesso e não será capaz de integrar delegações adicionais. Para corrigir esta situação, atualize o modelo para utilizar apenas funções incorporadas suportadas e, em seguida, execute uma nova implementação.
Próximos passos
- Saiba mais sobre as experiências de gerenciamento entre locatários.
- Exiba e gerencie clientes acessando Meus clientes no portal do Azure.
- Saiba como atualizar ou remover uma delegação.