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.
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
Carreira desenvolvida na área de tecnologia da informação, com ampla experiência em Cloud
Computing e Cloud Security.
Forte atuação em projetos de Cloud Security no Microsoft Azure e com tecnologias de
segurança do Microsoft 365.
Tenho Experiência em Microsoft Azure, Microsoft 365, AWS e Windows Server.
Sou Microsoft MVP na categoria Microsoft Azure, AWS Communit Builder Security & Identity e
MCT.