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

Concluído

Importante

Precisa da sua própria subscrição do Azure para executar este exercício e poderá incorrer em custos. Se ainda não tiver uma subscrição 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 uma entidade de serviço e conceder-lhe acesso ao seu ambiente do Azure. Neste exercício, você criará a entidade de serviço que usará para seu pipeline de implantação.

Durante o processo, você:

  • Crie um aplicativo, uma entidade de serviço e uma chave em uma única operação.
  • Manuseie a chave com segurança.
  • Verifique se a entidade de serviço funciona entrando no Azure usando suas credenciais.

Este exercício requer que você tenha permissão para criar aplicativos e entidades de serviço no diretório do Microsoft Entra. Se não conseguir cumprir este requisito com a sua conta atual do Azure, pode obter uma avaliação gratuita e criar uma nova subscrição e inquilino do Azure. Como alternativa, você pode pular este exercício.

Iniciar sessão no Azure

Para trabalhar com entidades de serviço no Azure, tem de iniciar sessão na sua conta do Azure a partir do terminal de código do Visual Studio.

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

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

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

  2. Selecione a lista suspensa Iniciar perfil e, em seguida, selecione Azure Cloud Shell (Bash).

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

    Um novo shell se abre.

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 browser que se abre, inicie sessão na sua conta do Azure.

Para implantar esse modelo no Azure, entre em sua conta do Azure a partir do terminal do Visual Studio Code.

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

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

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

  2. Selecione a lista suspensa Iniciar perfil e, em seguida, selecione Azure Cloud Shell (PowerShell).

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

    Um novo shell se abre.

Iniciar sessão no Azure com o Azure PowerShell

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

    Connect-AzAccount
    
  2. No browser que se abre, inicie sessão na sua conta do Azure.

Criar 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 mostrar um erro dizendo que outro aplicativo tem o mesmo nome para 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 --name valor para algo único. Isso não afetará a forma como você acompanha o resto dos exercícios.

  2. Observe a saída JSON do comando anterior. Inclui as seguintes propriedades:

    • appId: O 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.

    Copie esses valores em algum lugar seguro. Você vai usá-los em breve.

  1. Execute estes comandos do Azure PowerShell no terminal do Visual Studio Code para criar uma entidade 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 a ID do locatário do Microsoft Entra:

    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ê vai usá-los em breve.

Aviso

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

Testar 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 do Visual Studio Code para entrar usando as credenciais da entidade de serviço. Substitua os espaços reservados pelos valores copiados na etapa anterior.

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

    Observe que você inclui o --allow-no-subscriptions argumento. Normalmente, quando você executa o az login comando, 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, então você usa o --allow-no-subscriptions argumento 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 user propriedade com a ID do aplicativo da entidade de serviço. Essas informações indicam que a entidade de serviço entrou 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 de código do Visual Studio para solicitar com segurança as credenciais da entidade de serviço. Use o ID do aplicativo e a chave da entidade de serviço da etapa anterior para o nome de usuário e a senha, respectivamente.

    $credential = Get-Credential
    
  2. Execute este comando do Azure PowerShell no terminal de código do Visual Studio 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 Account propriedade com a ID do aplicativo da entidade de serviço e um valor em branco SubscriptionName . Essas informações indicam que a entidade de serviço entrou 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 em funcionamento, pode passar para a próxima etapa: autorizá-la a acessar seu ambiente do Azure.