Exercício - Criar uma entidade de serviço e uma chave

Concluído

Importante

Você precisa de sua própria assinatura do Azure para concluir este exercício e pode incorrer em encargos. Caso ainda não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.

Antes de criar o pipeline de implantação para o site da sua empresa de brinquedos, você precisará criar um "service principal" e conceder acesso a ele ao seu ambiente do Azure. Neste exercício, você criará a entidade de serviço que será usada para seu pipeline de implantação.

Durante o processo, você deverá:

  • Crie um aplicativo, uma principal de serviço e uma chave em uma única operação.
  • Manipule a chave com segurança.
  • Verifique se a entidade de serviço funciona conectando-se ao Azure usando suas credenciais.

Este exercício exige permissão para criar aplicativos e entidades de serviço em seu diretório do Microsoft Entra. Se você não puder atender a esse requisito com sua conta atual do Azure, você pode obter uma avaliação gratuita e criar uma nova assinatura e um novo locatário no Azure. Como alternativa, você pode ignorar este exercício.

Entrar no Azure

Para trabalhar com as entidades de serviço no Azure, será necessário entrar em sua conta do Azure no terminal do Visual Studio Code.

  1. No menu Terminal, selecione Novo Terminal. A janela do terminal geralmente é aberta na metade inferior da tela.

    O shell padrão normalmente é pwsh, conforme mostrado no lado direito da janela do terminal.

    Captura de tela da janela do terminal do Visual Studio Code, em que pwsh é mostrado como a opção de shell.

  2. Selecione a lista suspensa Perfil de Inicialização e, em seguida, selecione Azure Cloud Shell (Bash).

    Captura de tela da janela do terminal do Visual Studio Code. A lista suspensa do shell do terminal e o item de menu do Azure Cloud Shell (Bash) são mostrados.

    Um novo shell é aberto.

Entrar no Azure usando a CLI do Azure

  1. No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:

    az login
    
  2. No navegador que é aberto, entre em sua conta do Azure.

Para implantar esse modelo no Azure, entre na sua conta do Azure por meio do terminal do Visual Studio Code.

  1. No menu Terminal, selecione Novo Terminal. A janela do terminal geralmente é aberta na metade inferior da tela.

    O shell padrão normalmente é pwsh, conforme mostrado no lado direito da janela do terminal.

    Captura de tela da janela do terminal do Visual Studio Code, em que pwsh é mostrado como a opção de shell.

  2. Selecione a lista suspensa Perfil de Inicialização e, em seguida, selecione Azure Cloud Shell (PowerShell).

    Captura de tela da janela do terminal do Visual Studio Code. A lista suspensa do shell do terminal e o item de menu do Azure Cloud Shell (PowerShell) são mostrados.

    Um novo shell é aberto.

Entrar no Azure usando o Azure PowerShell

  1. No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:

    Connect-AzAccount
    
  2. No navegador que é aberto, entre em sua conta do Azure.

Crie uma entidade de serviço e uma chave

  1. Execute este comando da CLI do Azure no terminal do Visual Studio Code para criar uma entidade de serviço:

    az ad sp create-for-rbac --name ToyWebsitePipeline
    

    Se a CLI do Azure mostra um erro dizendo que outro aplicativo tem o mesmo nome de exibição, isso significa que outra pessoa que usa seu locatário do Microsoft Entra criou uma entidade de serviço com o mesmo nome. Altere o valor --name para algo exclusivo. Isso não afetará a maneira como você acompanha o restante dos exercícios.

  2. Veja a saída JSON do comando anterior. Ela inclui as seguintes propriedades:

    • appId: A ID do aplicativo da entidade de serviço.
    • password: A chave da entidade de serviço.
    • tenant: Seu ID de locatário do Microsoft Entra ID.

    Copie esses valores em algum lugar seguro. Você os usará em breve.

  1. Execute esses comandos do Azure PowerShell no terminal do Visual Studio Code para criar um principal de serviço:

    $servicePrincipal = New-AzADServicePrincipal `
      -DisplayName ToyWebsitePipeline
    
  2. Execute o seguinte comando para obter a chave da entidade de serviço:

    $servicePrincipalKey = $servicePrincipal.PasswordCredentials.SecretText
    
  3. Execute o seguinte comando para mostrar a ID do aplicativo da entidade de serviço, a chave e sua ID de locatário do Microsoft Entra ID:

    Write-Output "Service principal application ID: $($servicePrincipal.AppId)"
    Write-Output "Service principal key: $servicePrincipalKey"
    Write-Output "Your Azure AD tenant ID: $((Get-AzContext).Tenant.Id)"
    

    Copie os valores em algum lugar seguro. Você os usará em breve.

Aviso

As saídas dos comandos anteriores contêm a chave para sua entidade de serviço. Tenha cuidado com o local onde você executa esses comandos. Por exemplo, não execute-os em um ambiente onde alguém possa visualizá-los.

Teste a entidade de serviço

Agora que a entidade de serviço foi criada, você pode entrar usando suas credenciais para verificar se ela foi criada com êxito.

  1. Execute este comando da CLI do Azure no terminal Visual Studio Code para entrar usando as credenciais da entidade de serviço. Substitua os marcadores pelos valores que você copiou no passo anterior.

    az login --service-principal \
      --username APPLICATION_ID \
      --password PASSWORD \
      --tenant TENANT_ID \
      --allow-no-subscriptions
    

    Observe que você inclui o argumento --allow-no-subscriptions. Normalmente, quando você executar o comando az login, a CLI do Azure procura as assinaturas do Azure que você pode acessar. A entidade de serviço ainda não recebeu acesso a nada, portanto, use o argumento --allow-no-subscriptions para impedir que a CLI do Azure verifique a lista de assinaturas e mostre um erro.

  2. Verifique se a saída do comando anterior é um objeto JSON, que inclui uma propriedade user com a ID do aplicativo da entidade de serviço. Essa informação indica que a entidade de serviço se conectou com êxito.

  3. Saia da conta da entidade de serviço usando o seguinte comando:

    az logout
    
  1. Execute este comando do Azure PowerShell no terminal do Visual Studio Code para solicitar com segurança as credenciais da entidade de serviço. Use a ID do aplicativo da entidade de serviço e a chave da etapa anterior como nome de usuário e senha, respectivamente.

    $credential = Get-Credential
    
  2. Execute este comando do Azure PowerShell no terminal do Visual Studio Code para entrar usando as credenciais da entidade de serviço.

    Connect-AzAccount -ServicePrincipal `
      -Credential $credential `
      -Tenant TENANT_ID
    
  3. Verifique se a saída do comando anterior inclui uma propriedade Account com o ID do aplicativo da entidade de serviço e um valor SubscriptionName em branco. Essa informação indica que a entidade de serviço se conectou com êxito.

  4. Saia da conta da entidade de serviço usando o seguinte comando:

    Logout-AzAccount
    

Agora que você tem uma entidade de serviço pronta, você pode passar para a próxima etapa: autorizá-la a acessar seu ambiente do Azure.