Integrar um cliente ao Azure Lighthouse
Este artigo explica como você, como provedor de serviços, pode integrar um cliente ao Azure Lighthouse. Ao fazer isso, os recursos delegados (assinaturas e/ou grupos de recursos) no locatário do Microsoft Entra do cliente podem ser gerenciados pelos usuários no locatário por meio do gerenciamento de recursos delegados do Azure.
Dica
Embora sejam feitas referências a provedores de serviços e clientes, 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 autorizado entra no seu locatário de gerenciamento, ele é autorizado a executar operações de gerenciamento nos escopos de locação do cliente sem precisar entrar em cada locatário individual.
Observação
Como alternativa, os clientes podem ser integrados ao Azure Lighthouse ao comprar uma oferta de Serviço Gerenciado (pública ou privada) que você publica no Azure Marketplace. Você também pode usar o processo de integração descrito aqui com ofertas publicadas no Azure Marketplace.
O processo de integração requer que as ações sejam executadas dentro do locatário do provedor de serviços e 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:
- A ID do locatário do provedor de serviços (em que você gerenciará os recursos do cliente).
- A ID do locatário do cliente (cujos recursos serão gerenciados pelo provedor de serviços).
- As IDs de cada assinatura específica no locatário do cliente que serão gerenciadas pelo provedor de serviços (ou que contém os grupos de recursos que o provedor de serviços vai gerenciar).
Se você não souber a ID de um locatário, poderá recuperar usando o portal do Azure, o Azure PowerShell ou o CLI do Azure.
Se você criar seu modelo no portal do Azure, a ID do 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 de toda a assinatura), precisará saber os nomes de cada grupo de recursos.
Definir funções e permissões do administrador
Como provedor de serviços, talvez você queira executar várias tarefas para um único cliente, o que exige acesso diferente para escopos diferentes. Você pode definir quantas autorizações precisar para atribuir as funções internas do Azure apropriadas. 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.
Observação
A menos que seja especificado explicitamente, as referências a um "usuário" na documentação do Azure Lighthouse podem ser aplicadas a um usuário, grupo ou entidade de serviço do Microsoft Entra em uma autorização.
Para definir autorizações no modelo, você precisará incluir os valores de ID de cada usuário, grupo de usuários ou entidade de serviço no locatário de gerenciamento para o qual você quer 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.
Dica
É recomendável atribuir a Função de Exclusão da Atribuição de Registro de Serviços Gerenciados ao integrar um cliente, assim os usuários em seu locatário podem remover o acesso à delegação mais tarde, 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, é recomendável usar grupos de usuários do Microsoft Entra para cada atribuição, em vez de usuários individuais. Isso oferece a flexibilidade de adicionar ou remover usuários individuais do grupo que tem acesso, para que não seja preciso repetir o processo de integração ao fazer alterações de usuário. Você também pode atribuir funções a uma entidade de serviço, o que pode ser útil para cenários de automação.
Importante
Para adicionar permissões para um grupo do Microsoft Entra, o Tipo de grupo deve ser definido como Segurança. Essa 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 suas autorizações, siga o princípio de privilégios mínimos para que os usuários tenham apenas as permissões necessárias para concluir seu trabalho. Para saber mais e obter recomendações sobre as funções compatíveis, consulte Locatários, usuários e funções em cenários do Azure Lighthouse.
Dica
Você também pode criar autorizações qualificadas que permitem que os usuários no locatário de gerenciamento elevem temporariamente a função. Este recurso possui requisitos de licenciamento específicos. Para obter mais informações, confira Criar as autorizações qualificadas.
Para acompanhar o impacto nas participações do cliente e receber reconhecimento, associe a ID Programa de Parceiro do Microsoft Cloud a pelo menos uma conta de usuário que tenha acesso a cada uma das assinaturas integradas. Essa associação deve ser feita locatário de seu provedor de serviços. Recomenda-se criar uma conta de entidade de serviço no locatário associada ao ID do parceiro e, em seguida, incluir essa entidade a cada integração de cliente. Para obter mais informações, consulte Vincular uma ID de parceiro.
Criar um modelo do Azure Resource Manager
Para integrar seu cliente, você precisará criar um modelo do Azure Resource Manager para sua oferta com as seguintes informações. Os valores mspOfferName
e mspOfferDescription
ficarão visíveis ao cliente napágina Provedores de serviço do portal do Azure quando o modelo for implantado no locatário do cliente.
Campo | Definição |
---|---|
mspOfferName |
Um nome que descreve essa definição. Esse valor é exibido ao cliente como o título da oferta e deve ser exclusivo. |
mspOfferDescription |
Uma breve descrição da sua oferta (por exemplo, "oferta de gerenciamento de VM da Contoso"). Esse campo é opcional, mas recomendado para que os clientes tenham uma compreensão clara da sua oferta. |
managedByTenantId |
ID do locatário. |
authorizations |
Os valores de principalId dos usuários/grupos/SPNs do seu locatário, cada um com um principalIdDisplayName para ajudar seu cliente a entender a finalidade da autorização, mapeados no valor interno de roleDefinitionId para especificar o nível de acesso. |
Você pode criar esse modelo no portal do Azure ou modificando manualmente os modelos fornecidos em nosso repositório de exemplos.
Importante
O processo descrito aqui requer uma implantação distinta para cada assinatura integrada, mesmo quando elas estão sendo integradas ao mesmo locatário do cliente. Também serão necessárias implantações separadas se você estiver integrando vários grupos de recursos em assinaturas diferentes no mesmo locatário do cliente. No entanto, a integração de múltiplos 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 aplicada deve usar um mspOfferName
diferente.
Criar seu template no portal do Azure
Para criar seu modelo no portal do Azure, acesse Meus clientes e, em seguida, selecione Criar modelo ARM na página Visão geral.
Na página Criar oferta de modelo ARM, forneça seu Nome e uma Descriçãoopcional. Esses valores serão usados para mspOfferName
e mspOfferDescription
em seu modelo e podem estar visíveis para o cliente. O valor managedByTenantId
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 para integração. 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 de suas autorizações, forneça os seguintes detalhes:
- Selecione o Tipo de entidade de segurança dependendo do tipo de conta que você deseja incluir na autorização. Pode serUsuá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 localizar o usuário que deseja adicionar. Depois de fazer isso, clique em Selecionar. A ID da entidade de segurança do usuário será populada automaticamente.
- Examine o campo Nome de exibição (populado com base no usuário selecionado) e faça as alterações, se desejar.
- Selecione a Função para atribuir ao usuário.
- Para tipo de acesso, selecione permanente ou qualificado. Se você escolher qualificado, será necessário especificar as opções de 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, confira 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 Criar modelo do 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 Exibir modelo. Nesta tela, você verá um arquivo .json que corresponde aos valores inseridos. Selecione Baixar para salvar uma cópia desse arquivo .json. Esse modelo pode ser implantado no locatário do cliente. Você também poderá 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 navegar para longe da tela Mostrar modelo.
Criar seu modelo manualmente
Você pode criar seu modelo por meio de um modelo do Azure Resource Manager (fornecido em nosso repositório de exemplos) e um arquivo de parâmetros correspondentes que você modifica para corresponder a sua configuração e definir suas autorizações. Se preferir, você poderá 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 múltiplos grupos de recursos em uma assinatura. Também fornecemos um modelo que pode ser usado por clientes que compraram uma oferta de serviço gerenciado que você publicou no Azure Marketplace, se você preferir integrar suas assinaturas dessa maneira.
Para fazer essa integração | use este modelo do Azure Resource Manager | e altere esse arquivo de parâmetros |
---|---|---|
Subscription | subscription.json | subscription.parameters.json |
Resource group | rg.json | rg.parameters.json |
Múltiplos grupos de recursos em uma assinatura | multi-rg.json | multiple-rg.parameters.json |
Assinatura (ao usar 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 repositório de amostras.
Dica
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 grupo de gerenciamento. Em seguida, você terá acesso a todas as assinaturas no grupo de gerenciamento, embora precise trabalhar nelas como assinaturas individuais (em vez de realizar diretamente ações no grupo de gerenciamento como um todo).
O exemplo a seguir mostra um arquivo 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 formato semelhante, mas também incluem um parâmetro rgName
para identificar os grupos de recursos específicos a integrar.
{
"$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 principalId
com a função de Administrador de Acesso do Usuário (18d7d88d-d35e-4fb5-a5c3-7773c20a72d9). Ao atribuir essa função, inclua a propriedade delegatedRoleDefinitionIds
e uma ou mais funções internas do Azure com suporte. O usuário criado nessa autorização pode atribuir essas funções internas às identidades gerenciadas no locatário do cliente, o que é necessário para implantar políticas que possam ser corrigidas. O usuário também pode criar incidentes de suporte. Nenhuma outra permissão normalmente associada à função Administrador de Acesso de Usuário será aplicada a esse principalId
.
Implantar o modelo do Azure Resource Manager
Depois que você tiver criado o seu modelo, um usuário no locatário do cliente deve implantá-lo no locatário dele. Uma implantação distinta é necessária para cada assinatura que será integrada (ou que contém grupos de recursos que serão).
Ao integrar uma assinatura (ou um ou mais grupos de recursos dentro de uma assinatura) usando o processo descrito aqui, o provedor de recursos Microsoft.ManagedServices será registrado nessa assinatura.
Importante
A implantação deve ser feita por uma conta do locatário do cliente que não seja convidada e que tenha a permissão Microsoft.Authorization/roleAssignments/write
, como Proprietário, para a assinatura que será integrada (ou que contém os grupos de recursos que serão). Para ver os usuários que podem delegar a assinatura, um usuário do locatário do cliente pode selecionar a assinatura no portal do Azure, abrir Controle de acesso (IAM) e Exibir todos os usuários com a função Proprietário.
Se a assinatura foi criada por meio do programa CSP (provedor de soluções na nuvem), qualquer usuário que tenha a função de Agente de administração no locatário do provedor de serviços pode executar a implantação.
A implantação pode ser feita com o portal do Azure, o PowerShell ou a CLI 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
Implantar usando 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 permissão Microsoft.Authorization/roleAssignments/write
).
Na página Provedores de Serviço no portal do Azure, selecione Ofertas de provedor de servidor.
Perto da parte superior da tela, selecione a seta ao lado de Adicionar oferta e selecione Adicionar por meio do modelo.
Carregue o modelo arrastando e soltando-o ou selecione Procurar arquivos para localizar e carregar o modelo.
Se aplicável, selecione a caixa Tenho um arquivo de parâmetro separado e carregue o arquivo de parâmetro.
Depois de carregar o modelo (e o arquivo de parâmetro, se necessário), selecione Carregar.
Na tela Implantação personalizada, examine os detalhes que aparecem. Se necessário, você pode fazer alterações nesses valores nesta tela ou selecionando Editar parâmetros.
Selecione Revisar e criar e Criar.
Após alguns minutos, você deve ver uma notificação indicando que a implantação foi concluída.
Dica
Como alternativa, no repositório GitHub, selecione o botão Implantar no Azure mostrado ao lado do modelo que você deseja usar (na coluna Implantar automaticamente). O modelo de exemplo será aberto no portal do Azure. Se você usar esse processo, deverá atualizar os valores para Nome da Oferta Msp, Descrição da Oferta do Msp, Gerenciado por ID do Locatário e Autorizações antes de selecionar Examinar e criar.
Confirmar integração bem-sucedida
Quando uma assinatura de cliente é integrada com sucesso ao Azure Lighthouse, os usuários no locatário do provedor de serviços podem visualizar a assinatura e os recursos dela (caso tenham recebido acesso a eles por meio do processo acima, seja individualmente ou como membros de um grupo do Microsoft Entra com as permissões apropriadas). Para confirmar, verifique se a assinatura é exibida de uma das maneiras a seguir.
Confirmar no portal do Azure
No locatário do provedor de serviços:
- Navegue até a página Meus clientes.
- Selecione Clientes.
- Confirme que você consegue ver as assinaturas com o nome da oferta fornecido 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 de Leitor (ou outra função interna que inclua o acesso de Leitor) quando a assinatura foi integrada.
No locatário do cliente:
- Navegue até a página Provedores de serviços.
- Selecione Ofertas do provedor de serviços.
- Confirme que você consegue ver as assinaturas com o nome da oferta fornecido no modelo do Resource Manager.
Observação
Pode demorar até 15 minutos depois da conclusão da implantação para que as atualizações sejam refletidas no portal do Azure. Você pode ver as atualizações mais cedo ao atualizar seu token do Azure Resource Manager por meio da atualização do navegador, da conexão e desconexão ou da solicitação de 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
Gerenciar 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
Para fazer alterações depois da integração do cliente, atualize a delegação. Você também pode remover o acesso à delegação completamente.
Solução de problemas
Se não for possível integrar o cliente ou os usuários tiverem problemas para acessar os recursos delegados, verifique as seguintes dicas e requisitos e tente novamente.
- Os usuários que precisam exibir os 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 valor
managedbyTenantId
não deve ser igual ao ID de 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 ser registrado para a assinatura delegada. Isso deve acontecer automaticamente durante a implantação, mas caso não aconteça, você pode registrá-lo manualmente.
- As autorizações não devem incluir nenhum usuário com a função Proprietário, quaisquer funções com DataActions ou quaisquer funções que incluam ações restritas.
- Os grupos devem ser criados com Tipo de grupo definido como Segurança, não como Microsoft 365.
- Se o acesso foi concedido a um grupo, confira se o usuário é membro desse grupo. Caso não seja, você poderá adicioná-lo ao grupo usando o Microsoft Entra ID, sem precisar executar outra implantação. Observe que os proprietários do grupo não são necessariamente membros dos grupos que eles gerenciam, e podem precisar ser adicionados para terem acesso.
- Pode haver um atraso adicional antes da habilitação do acesso 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 interna do Azure for preterida, todos os usuários que foram integrados a ela perderão o acesso e não será possível integrar delegações adicionais. Para corrigir isso, atualize seu modelo para usar apenas funções internas com suporte e execute uma nova implantação.
Próximas etapas
- 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.