Como criar Service Principal no Azure utilizando o Portal e PowerShell

Este artigo mostra como criar um service principal  que pode ser usado com o controle de acesso baseado em função. Quando você tem aplicativos, serviços hospedados ou ferramentas automatizadas que precisam acessar ou modificar recursos, pode criar uma identidade para o aplicativo. Essa identidade é conhecida como service principal. O acesso aos recursos é restrito pelas funções atribuídas  ao service principal, dando a você controle sobre quais recursos podem ser acessados e em que nível. Por motivos de segurança, é sempre recomendável usar service principal com ferramentas automatizadas, em vez de permitir que façam login com uma identidade de usuário.

Podemos utilizar o service principal para autenticar no Azure sem precisar utilizar uma conta de usuário, podemos utilizar o service principal por exemplo com o Terraform para autenticar no Azure e provisionar recursos.

Passo a Passo

01 – Faça login no portal do Azure.

02 – No portal pesquise por Azure Active Directory.

03 – Em Manage clique em  App registrations.

04 – Na tela App registrations clique em + New registration.

05 – Na tela Register an application, em Name crie um nome para o service principal, em Supported account types selecione Accounts in this organizational directory only em seguida clique em Register.

06 – Como podemos observar o service principal foi criado com sucesso.

07 – Selecione o serviceprincipal-teste, quando estiver utilizando o service principal para autenticação, como por exemplo utilizando o Terraform, vamos precisar do Application (client) ID e do Directory (tenant) ID.

08 – Em Manage, clique em Certificates & secrets.

09 – Em serviceprincipal-teste | Certificates & secrets clique em + New cliente secret, atente-se para essa configuração porque será necessário na utilização com soluções como o Terraform.

Uma secret é usada para provar sua identidade ao solicitar um token. Também pode ser referida como senha do aplicativo.

10 – Na tela Add a client secret, em Description digite um descrição para o secret, para a opção Experies podemos selecionar uma data de expiração para esse secret temos algumas opções definidas e podemos customizar a data de expiração, vamos selecionar 3 months em seguida clique em Add.

11 – Como podemos observar o secret foi criado com sucesso, guarde o valor do secret porque para autenticar no azure com soluções como o Terraform vamos precisar dessa informação.

Permissão na Subscription

Agora que já criamos nosso service principal para utilizarmos na autenticação do Azure, vamos precisar dar permissão ao service principal para criar recursos em nossa assinatura.

12 – No portal do Azure pesquise por Subscriptions.

13 – Na tela Subscriptions, seleciona a assinatura desejada.

14 – Após selecionar a subscription clique em Access control (IAM).

15 – Na tela Access control (IAM), clique em + Add e Add role assignment.

16 – Na tela Add role assignment, em Role selecione Contributor, em Assign access to deixe selecionado User, group, or service principal, em Select pesquise o service principal que criamos e clique em Save.

17 – Na tela Access control (IAM), clique em Role assignments e observe que nosso service principal foi adicionado com a permissão de Contributor.

Criar service principal com PowerShell

18 – O Script abaixo criar um service principal e secret, e atribui a função de Contributor ao service principal na subscripton.

Para executar o script em seu computador é necessários que o módulo Azure PowerShell já tenha sido instalado, caso deseje o script também pode ser executado no Azure Cloud Shell.

Para baixar os módulos do Azure PowerShell acesse o link abaixo:

https://docs.microsoft.com/pt-br/powershell/azure/install-az-ps?view=azps-6.4.0

# Fazer Login no Azure
Connect-AzAccount

# Exibir o ID da Assinatura do Azure
Get-AzSubscription

# Variável com o ID da assinatura
$subscriptionId = ‘958g-bc74-4f32-9ef1-91a123’

# Criar Service Principal
New-AzADServicePrincipal -DisplayName “serviceprincipal-teste2” ` -Scope “/subscriptions/$subscriptionId” ` -Role Contributor ` -StartDate “26/08/2021” -EndDate “27/08/2052” -Verbose

OBESERVAÇÃO: O valor descrito na variável subscription é um valor apenas para demonstração esse valor não pertence a nenhuma assinatura existente.

19 – Como podemos observar na imagem abaixo o service principal foi criado com sucesso.

20 – No portal do Azure em Azure Active Directory, App registrations observe que o service principal foi criado.

21 – Selecione o service principal, em Certificates & secrets observe que o secret foi criado com sucesso.

21 – No portal do Azure em Subscription, Access control (IAM –> Role assignments, observe o serivce principal foi adicionado com a role de Contributor.

Comente suas sugestões e observações! 

Forte abraço, obrigado e até o próximo post

Deixe um comentário

O seu endereço de e-mail não será publicado.