# Plataforma FinOps Pier - Configurações Básicas Azure EA

## Processo de Configurações Básicas para a Plataforma FinOps da Pier Cloud

#### Bem-vindo à Pier Cloud!

Esse documento possui como objetivo, ser um guia para que você possa preparar o ambiente, a fim de que a Pier Cloud realize a instalação dos produtos da Plataforma em sua conta.

O processo irá permitir à Pier Cloud informação de leitura de billing sem qualquer possibilidade de alteração ou deleção de dados de sua conta (Lighthouse). E também, acessos de leitura e edição de itens relacionados à otimização (CCA/Autofix).

As configurações presentes nesta documentação servem para habilitar os módulos: Lighthouse, CCA e Autofix para Azure.

### Configurações do Produto:

* Lighthouse

#### Pré Requisito e Configuração - API Gerenciamento de Custos:

Este passo deve ser realizado por um usuário com a role de Enterprise Administrator.

Para verificar quem possui essa role, siga os passos abaixo no console Azure:

1. Acesse Cost Management + Billing;
2. Navegue até Access Control (IAM);
3. Na listagem de usuários, identifique quem tem a role de Enterprise Administrator.

Observação: Na imagem ilustrada abaixo, você pode tanto adicionar um Enterprise Administrator quanto verificar quais usuários já possuem essa permissão.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FezBTbpR286rhEXn1kVOI%2Fimage.png?alt=media&#x26;token=b7dbbf25-91f9-43cc-90b5-60187aa29a6a" alt=""><figcaption></figcaption></figure>

1. Autentique-se no browser com o usuário Enterprise Admin, através do [console Azure](https://azure.microsoft.com/pt-br/get-started/azure-portal);
2. Acesse este link: [Role Assignments - Put - REST API (Azure Billing) | Microsoft Learn](https://learn.microsoft.com/en-us/rest/api/billing/2019-10-01-preview/role-assignments/put?tabs=HTTP) e clique em REST API Try It;
3. Ao clicar em Try It, se você tiver se autenticado anteriormente, será exibida a seguinte tela para confirmação. Caso esteja correto, continue.

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUeIeZoMRyE4cKm_K_avaz36sDAP61UNBpiE44nO2c0IuiJXB7tSxcALtutgCsEr_piRorb0vqid5ZvjrPfqdFnnxGbs4nrU_9pAbcQejWQh6jGWi5h_fHwr9HK3A1BhKzB4pdFPIrPAx4kV5DBr0jup07iu6r2Pg1hm6L9q83aDMw4Oz_AEnkA=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

3.1. Para configurar o passo 4, será necessário adquirir as informações que serão apresentadas no próximo passo e nos slides a seguir.

* BillingAccountName: Este parâmetro é o ID da conta de cobrança . Você pode encontrá-lo no portal do Azure na página de visão geral do Cost Management + Billing .

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FcoorPv3jW0c9D0GLoti5%2Fimage.png?alt=media&#x26;token=bd599104-b741-45d3-9f4b-c20305d05c96" alt="" width="563"><figcaption></figcaption></figure>

3.2. BillingRoleAssignmentName: Este parâmetro é um GUID exclusivo que você precisa fornecer. Você pode gerar um GUID usando o comando [New-Guid](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/new-guid) PowerShell. Você também pode usar o site [Online GUID / UUID Generator](https://guidgenerator.com/) para gerar um GUID exclusivo.\
Copie o código, conforme ilustrado na imagem abaixo.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FbhW7tKIaSs2ZGgViQ97i%2Fimage.png?alt=media&#x26;token=a592cd92-8eef-47ae-b95d-fa31acdee65a" alt=""><figcaption></figcaption></figure>

3.3. PrincipalId: Aqui onde encontramos o PincipalId, neste caso está identificado como Object ID , conforme ilustrado na imagem abaixo.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2F8S5cbFdIc1yB6UjG3mLK%2Fimage.png?alt=media&#x26;token=538c03f0-498c-4ddd-ae44-187c00ca1575" alt=""><figcaption></figcaption></figure>

3.4. Tenant ID: Aqui conseguimos obter a informação do Tenant ID, Conforme ilustrado na imagem abaixo:

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUf9Wgfmz-hHa3VBLnN6odAnybhjIf0U1DCKfmc53YvRBW8YiwneJXFgKfHw082rTJrrfjAbHklmDnXYXwzFM56-vktZ6Mp-jRgp2lMb9nyWkW4cHL3pAxuEf8B07GqZm7Sn7123m_NNRQZnjT94s2of3UWJg3D7XdTOSfG6BHQ-hg=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

4. Ao se autenticar, você será direcionado à seguinte tela, onde serão solicitadas as informações do Service Principal que terá acesso de leitura à API de Billing.

* Na imagem ao lado, os campos destacados em vermelho e numerados correspondem aos passos anteriores, indicando onde encontrar o ID de cada campo.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FFT7UL1BJCLnMCkbiX18j%2Fimage.png?alt=media&#x26;token=0fb7f899-6bd0-4e0a-af11-5a670bce80f4" alt=""><figcaption></figcaption></figure>

5. Insira as informações abaixo nos campos correspondentes:

**Parameters:**

* **billingAccountName:** O ID de sua conta de cobrança, pode ser obtido no portal Azure no Cost Management + Billing > Properties > Billing Account ID
* **billingRoleAssignmentName:** UUID único que pode ser gerado programaticamente ou através de um site como <https://www.uuidgenerator.net/> por exemplo.
* **api-version:** Mantenha a versão preenchida automaticamente - No momento de escrita desse documento é a versão 2019-10-01-preview

6. Copie as seguintes informações e anote:

* O principal ID, que será o **Object ID** da Enterprise Application.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUcw4aG2EfLdr92n2dXBa43l2-bWsa4R-CEgKirNBPe8VQQ9K4TZqbkxUSA096f0yxsRUPj0hx7HTUJPS5QYVcJAIhKb9yqBkdAaWs5eYn6hT2_ruHCsqSOPznNzgS2AcHIjY6CkAk3dRgokGvA1fxh5sRI__3U5SuQMrJaZ0s2Z3YbvcUMIVA=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

* O Tenant ID, que pode ser coletado na mesma tela de criação do Service Principal.
* Role Definition Id - Sempre será o seguinte: **/providers/Microsoft.Billing/billingAccounts/**<mark style="color:red;">**billingAccountName**</mark>**/billingRoleDefinitions/24f8edb6-1668-4659-b5e2-40bb5f3a7d7e**

7. Insira as informações nos campos correspondentes, conforme abaixo:

* **Body**: substitua os valores entre "aspas duplas" pelos dados coletados anteriormente.
* **Observação**: Os campos destacados em vermelho precisam ser substituídos pelos valores indicados. A numeração refere-se ao passo em que as informações foram obtidas, como ilustrado na imagem abaixo.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FU1nqMkhQScNKGsps9c4B%2Fimage.png?alt=media&#x26;token=e55de293-83a7-4e4b-87db-4ac98b52f999" alt=""><figcaption></figcaption></figure>

8. Remova as chaves e copie o bloco no espaço de Body na página:

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUccvpsf-5sFKpgToGyT6PM5TVNDz5vBBF0hnsLxueXXB82DjVTYD73BKCruXRoGoRQAH4DS7MMLSU0w7ZkVPWJM9bva1a7mfPM6GzmXRlT1BThctks3KdKz3Trsy4CATBIDMC75gbUDU3WyqbLIipCMpkYuyHlBGHsJjZOe4xE8wkX4TiIcoXs=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

9. Com todos os campos preenchidos, clique em Run > o retorno deve ser uma resposta HTTP 200 informando que a chamada ocorreu com sucesso.
10. Pronto, a configuração está concluída. Abaixo um resumo das informações que deverá enviar para a Pier Cloud.
    * Azure Tenant ID ([Link](https://learn.microsoft.com/en-us/azure/active-directory/fundamentals/how-to-find-tenant))
    * Billing Account ID - (Pode ser obtido no portal Azure no Cost Management + Billing > Properties > Billing Account ID)
    * Service Principal (Application Id, Secret) - Criado no passo anterior

### Acesso aos Compromissos de Reservas e Savings Plans

#### Permissões de Compromissos

Utilizaremos o mesmo Service Principal criado anteriormente. O adicionaremos em uma role com permissão Reader em cada Reservation/Savings Plans Order ID.  Com isso teremos a permissão para a leitura dos dados de utilização de Reservas ou Savings Plans.&#x20;

* Esse processo precisa ser realizado em cada uma das Reservas ou Savings Plans.

### Configurações dos Produtos:

* CCA - Cloud Compliance Analyzer
* Autofix

### &#x20;[Verifique suas permissões no Azure AD](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal#check-azure-ad-permissions)

* No Portal Azure, selecione o Microsoft Entra ID (Azure Active Directory também vai encontrar);
* Encontre sua função em Overview>My feed. Se sua função for de User, você deve se assegurar que outros perfis além de Administrador possa registrar aplicações;
* No painel lateral esquerdo, selecione Users e depois User settings;
* Verifique as configurações do App registrations setting. Esse valor só pode ser estabelecido pelo administrador. Se configurado como Yes, qualquer usuário no tenant Azure AD pode registrar um app.

**Atenção:** Se as configurações estiverem como NO, somente alguém no papel de administrador poderá fazer esta configuração.

1\. Entre na sua conta pelo [Portal](https://azure.microsoft.com/pt-br/get-started/azure-portal) e acesse o menu Microsoft Entra ID. Esse Service Principal poderá ser utilizado para o Lighthouse, CCA, Reservas e Savings Plans.

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUcu07i3dObwB2w6fEGnyZFGbEP-1Um5wRLrtHqCmxq7DnOBE3dl6Y1qJ4KQRGu-U2dI557XY456u9lSu24NflgnBq7DP2m4L2JKXep3wXsjExSYUlwT3mZEvfsiqM0-0h8CCFafgPfWu7flwWiawHCHEi5qk9AxzTGUGzF6JPOSN3rTveatlD4=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

2. Na seção Microsoft Entra ID selecione a opção App Registrations no menu lateral.

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUfT4pWO2WXe0JxfeFLBmLEraUsxXNAKU1x33mX3zduSDqIJt9WutuaAs-tBJA39nPue34tSWXo7Niqx4SRrhYuoPOF8kp_fIwDiLLKGr8mPn0rax64XxrBhp13oQ0A5gUIVlA97xx1HCy7kVTMY45v4qTTH_rPkyMjLQIzUetobVREF8wSK7V0=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

3. Clique no botão + Add, depois selecione a opção App Registration.

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUf-0Yfq5XXMp7FuvekhASdj2NuvcMmMf3abJB7ppIdy55IE30wC80h5-J-fBnyUeD6y7bJ3E8bJ08jHzOqs6wK3YhzQ2At6VgfQT8Zy4La7YH-uURGwHy9tnBsG4jn4bmegC4nQQZ6fa0BWCRnb-EiN8y386iezAJmD2XnB0p2j6RzE8cIbtTs=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

4. Informe o nome desejado para a Aplicação, na seção Supported account types escolha a opção Accounts in any organizational directory (Multitenant), finalize clicando em Register.

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUc8wtVWaZ4HORorRj3Vc-ep2XfawOsNniSpPwAbya7BPRAVpBCDtNnIfjhbLHhMtGB0Q8BrC0glgZBJAeEm2QmRLDBIS-eXJFS36sW9qseCWcRGYLsHL47ixgWDsHM8J1mV3wdyWDe0PyRDDNnpReEMt7u4tp9KKqtIk1EdSgj0HKF7HE3EMcY=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

5. Após a criação da aplicação, gere uma secret.

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUca31bS0rFKKmiNSXQFNOIIhLZZbI60L172J_xeyMd3BSjZV5YbDJ-8AhvrKUzmvtAD3gyYDmR7K2AciGsFYUhATHk6IJSATJXAcxuGUFS81DQgklOiGBGQdcOxflEFNVgewpRkVBYbXJbiD7RJ0vhyN7YS6fDe3_yjD8shSsa4A7QqHH_3b8M=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

6. Clique no botão + New client secret, no form ao lado clique no botão Add.

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUcCUrNJ1T_I2hGdH57ePrGOYgZuVoCR4c_XliRo16clYwDjfsuu6GGJCoknLKRKfbNEfn-r4OKuqjDBILaJys0TbZq-_Ef6uuczvm7TG7UOXdxicFTyK0BWbSxELztxKGwgXKuTK73eeKmqOVHFxGxqVRUx9OW1pzKjgKTZ4vNaOcKD4KwiGT4=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

7. Copie o valor da secret gerada, a data de expiração e salve em um bloco de notas.

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUezVnDFb6SDlSCvgakzgaeO0yxz8OdehIWTz0P-Z0C7fJRSpxeh2od__Mayk8X8dGTduSuDloPS7zsnxrSjvCjR8Ze4NNqJtXL96dS7XVFyV44C1OpfiKYvK90XOYOpSQBjXfjXITKDLwSATzyAPp97H6e-tBO_uKZ1kV-LbyurkA=s2048?key=AVTWtRTwiK6dWgQdJKVeiQ" alt=""><figcaption></figcaption></figure>

8. Clique em Overview e copie os valores Application (client) ID, Directory (tenant) ID e salve junto às informações anteriores.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2Fv7xqkyP7rdJlYj9veCog%2Fimage.png?alt=media&#x26;token=bce55f23-b543-4014-8822-2ca53327d6d2" alt=""><figcaption></figcaption></figure>

9. Agora que temos o Service principal criado, para finalizar o processo, será necessário criar uma Custom role, no Tenant Root. Na barra de busca, procure por Management Group e depois clique no Tenant Root.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2Fc6AqlhKxnFg9uo7imzeT%2Fimage.png?alt=media&#x26;token=4cfacbf2-438c-4770-923c-08aed86be199" alt=""><figcaption></figcaption></figure>

10. Agora, clique em Access control (IAM) e na sequência em + Add, Add custom role.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2F8HPPDtbVytG0tGrT2aXH%2Fimage.png?alt=media&#x26;token=7c92e50a-0aaa-4c0d-af61-c64e51286d9d" alt=""><figcaption></figcaption></figure>

11. Agora, clique em JSON

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FecGiNv3ltYejCrkkR0Lx%2Fimage.png?alt=media&#x26;token=ac76c1cc-daf0-42ac-a7ad-f0877b6716e2" alt=""><figcaption></figcaption></figure>

12. Aqui clique em Edit.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2F4snByn4xSQKqhLWMYqWN%2Fimage.png?alt=media&#x26;token=d4550269-38a7-4828-a821-f0e6f161fd64" alt=""><figcaption></figcaption></figure>

13. Nesse arquivo JSON, adicione o ID TENANT ROOT GROUP, da sua conta, copie o código e cole, no passo seguinte.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FYyJ49cQ9PDFNS5wvIrFQ%2Fimage.png?alt=media&#x26;token=c7127d36-1fc3-48b3-8c06-33eee58146e8" alt=""><figcaption></figcaption></figure>

14. Aqui cole o código, **salve** a configuração em seguida clique em **Review + create**, conforme imagem abaixo:

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FKV6gcGmaWYwbTyiw0XYM%2Fimage.png?alt=media&#x26;token=12f06621-dfae-41cc-9eb7-ca57ed8b2d2a" alt=""><figcaption></figcaption></figure>

15. Para finalizar clique em Create.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FrhFbzJc7UFtQPTpTBxh1%2Fimage.png?alt=media&#x26;token=660e68d8-2d25-4a8d-b926-e7ccd84f1854" alt=""><figcaption></figcaption></figure>

16. Agora, clique em **Access control (IAM)** e na sequência em **+ Add** e **Add role assignment**.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2F4hYcfUZwfFCgC2YClHmq%2Fimage.png?alt=media&#x26;token=b27c6aa0-fc7c-4d09-ad36-701586f05793" alt=""><figcaption></figcaption></figure>

17. Nesse passo na caixa de pesquisa, procure pelo nome da role que foi criada no passo anterior, em seguida selecione a role criada, depois clique em Next.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FNoHL5YtLA9yQ0OcM6E6w%2Fimage.png?alt=media&#x26;token=05ae7ee9-d4b1-4e8a-9478-43c0300b5d45" alt=""><figcaption></figcaption></figure>

18. Clique na opção **Select members**, ao abrir a caixa de pesquisa do lado direito, pesquise pelo service principal criado, em seguida clique em **Select** e **Next**.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2F74KAtY1hMe3xep7CFWnS%2Fimage.png?alt=media&#x26;token=fc1ea4b7-a604-44dd-ba35-50f2330beaca" alt=""><figcaption></figcaption></figure>

19. Para finalizar clique em **Review + assign**.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FStutEXOhVOAfXFgTizRM%2Fimage.png?alt=media&#x26;token=1d7a8086-13e2-4b49-8b17-7ae4821e27e5" alt=""><figcaption></figcaption></figure>

20. Abaixo estão as informações que deverão ser enviadas para a Pier Cloud:

* ClientID(Application ID);
* Secret - O value da Secret e o Secret ID;
* Expires - Data de expiração da secret;
* TenantID.

<br>

<br>
