
Quando falamos em integrar o Azure com outras ferramentas e aplicações, como Grafana e Terraform, um dos principais desafios é a autenticação segura. Para contornar essa questão, o Azure disponibiliza o conceito de Service Principal, uma identidade especial que permite a comunicação entre serviços sem a necessidade de interações manuais.
Neste post, vamos explorar o que é um Service Principal e como configurá-lo no Azure. Ao final, você terá o conhecimento necessário para criar Service Principals e integrá-los com diversas ferramentas, garantindo segurança e praticidade no seu ambiente de nuvem.
O que é um Service Principal ?
Um Service Principal é uma identidade criada no Azure para permitir que aplicações ou ferramentas (como Grafana e Terraform) acessem recursos de forma segura e automatizada, sem precisar de credenciais de usuários. Isso é útil para integrações onde é necessário controle e segurança, evitando o uso de credenciais pessoais e limitando permissões ao necessário.
Sem mais teoria, vamos para a prática.
1° Configurar App registration no Microsoft Entra ID
- No portal do Azure, vá para Microsoft Entra ID > App registrations.


- Clique em New registration, defina um nome e registre a aplicação.


Criar uma Credencial (Client Secret)
- Em Certificates & secrets, crie um novo client secret.
- Importante:
- Anote o valor do client secret gerado, pois esse valor só pode ser visualizado na sua criação.
- A secret criada dentro do App Registration no Microsoft Entra ID atua como uma credencial, permitindo a autenticação segura o Azure e outras aplicações. Ela funcionará como uma ‘senha’ para o aplicativo. Por isso, é importante tomar cuidado ao gerenciar essa chave de acesso (client secret). Se ela for comprometida, qualquer pessoa com acesso à chave poderá realizar operações nos seus recursos.



2° Definir Permissões
Após criar o App Registration e gerar o Secret, daremos as permissões necessárias para o nosso Service Principal no recurso desejado.
Atenção ao Conceder Permissões ao Service Principal: Ao atribuir permissões ao Service Principal, é essencial entender que ele terá acesso aos recursos de acordo com o nível de permissão escolhido. Por exemplo, se você der a função de Contributor, ele poderá criar, editar e excluir recursos, o que representa um grande poder dentro do ambiente do Azure.
- No recurso desejado, vá em Access control (IAM) e atribua uma função ao Service Principal. No meu exemplo irei realizar a permissão de Contributor para toda minha assinatura.

Vá em Add > Add Role Assignment

Em role, selecione a permissão desejada, no nosso exemplo será Contributor.

Na aba Members, vá em Select members, localize o nome da aplicação criada anteriormente na primeira etapa e selecione-a.

Na aba Review + assign, finalize a atribuição da permissão.

Agora, nosso aplicativo já possui permissão de Contributor em toda a nossa assinatura.
3° Integração a Ferramentas Externas
Nessa ultima etapa não entrarei em detalhes, pois cada ferramenta externa pode ter sua particularidade, mas basicamente todas elas irão precisar das seguintes informações para integração:
Directory (tenant) ID e Application (client) ID : As informações podem ser adquiridas dentro do App Registration criado na primeira etapa.

Client Secret: O valor da Secret gerada e coletada na primeira etapa

Com essas informações em mão e as permissões adicionadas, estamos prontos para integrar o Azure com APIs Externas.
Conclusão
Configurar um Service Principal é uma etapa essencial para integrar o Azure com outras ferramentas de forma segura e automatizada. Com ele, é possível permitir que aplicações externas, como Grafana e Terraform, acessem e gerenciem recursos no Azure sem depender de credenciais de usuários.
Porém, é fundamental conceder apenas as permissões estritamente necessárias e armazenar as credenciais com segurança. Essa prática garante que o acesso aos recursos seja controlado, reduzindo riscos de segurança e facilitando a automação de processos no ambiente de nuvem.
Com essas dicas, você já tem o conhecimento necessário para configurar Service Principals de forma prática e segura, fortalecendo o seu ambiente Azure para integrações confiáveis e eficientes.
Seja o primeiro a comentar