Compartilhar via


Como gerenciar assinaturas do Azure com a CLI do Azure

A CLI do Azure ajuda você a gerenciar sua assinatura do Azure, criar grupos de gerenciamento e bloquear assinaturas. Você pode ter várias assinaturas no Azure. Você pode fazer parte de mais de uma organização ou sua organização pode dividir o acesso a recursos específicos entre agrupamentos. A CLI do Azure dá suporte à seleção de uma assinatura global e por comando.

Para obter informações detalhadas sobre assinaturas, cobrança e gerenciamento de custos, consulte a documentação de gerenciamento de custos e cobrança .

Terminologia

Um locatário é uma instância de Microsoft Entra ID na qual residem informações sobre uma única organização. Uma organização multilocatário é uma organização que tem mais de uma instância do Microsoft Entra ID. Um locatário tem uma ou mais assinaturas e usuários.

Os usuários são as contas que fazem logon no Azure para criar, gerenciar e usar recursos. Um usuário pode ter acesso a vários inquilinos e assinaturas.

Assinaturas são contratos com a Microsoft para usar serviços de nuvem, incluindo o Azure. Cada recurso está associado a uma assinatura. As assinaturas contêm grupos de recursos.

Um grupo de recursos do Azure é um contêiner que contém recursos relacionados para uma solução do Azure. Para saber como gerenciar grupos de recursos em sua assinatura, confira Como gerenciar grupos de recursos do Azure com a CLI do Azure

Obter o locatário ativo

Use az account tenant list ou az account show para obter o ID do locatário ativo.

az account tenant list

az account show

Alterar o locatário ativo

Para alternar locatários, você tem duas opções.

  • Altere a assinatura ativa.

  • Entre como um usuário dentro do locatário desejado. Use az login para alterar o locatário ativo e atualizar a lista de assinaturas à qual você pertence.

    # sign in as a different user
    az login --user <myAlias@myCompany.com> --password <myPassword>
    
    # sign in with a different tenant
    az login --tenant <myTenantID>
    

    Se sua organização exigir autenticação multifator, você poderá receber esse erro ao usar az login --user:

    Due to a configuration change made by your administrator, or because you moved to a new
    ___location, you must use multi-factor authentication to access...
    

    O uso do comando alternativo az login --tenant solicita que você abra uma página HTTPS e insira o código fornecido. Em seguida, você pode usar a autenticação multifator e entrar com êxito. Para saber mais sobre as opções de entrada com a CLI do Azure, consulte Entrar com a CLI do Azure.

Obter informações de assinatura

A maioria dos comandos da CLI do Azure atua em uma assinatura. Você pode especificar em qual assinatura trabalhar usando o parâmetro --subscription em seu comando. Se você não especificar uma assinatura, o comando usará sua assinatura atual e ativa.

Para ver a assinatura que você está usando ou para obter uma lista de assinaturas disponíveis, execute o comando az account show ou az account list . Para obter mais exemplos de maneiras de usar esses comandos, consulte Saiba como usar o Bash com a CLI do Azure.

Aqui estão exemplos mostrando como obter informações de assinatura:

# get the current default subscription using show
az account show --output table

# get the current default subscription using list
az account list --query "[?isDefault]"

# get a subscription that contains search words or phrases
az account list --query "[?contains(name,'search phrase')].{SubscriptionName:name, SubscriptionID:id, TenantID:tenantId}" --output table

Você também pode armazenar informações de assinatura em uma variável para uso em um script.

# store the default subscription in a variable
subscriptionId="$(az account list --query "[?isDefault].id" --output tsv)"
echo $subscriptionId

# store a subscription of certain name in a variable
subscriptionId="$(az account list --query "[?name=='my case sensitive subscription full name'].id" --output tsv)"
echo $subscriptionId

Dica

O parâmetro --output é um parâmetro global, disponível para todos os comandos. O table valor apresenta a saída em um formato amigável. Para obter mais informações, confira Formatos de saída para comandos da CLI do Azure.

Alterar a assinatura ativa

As assinaturas do Azure têm um nome e uma ID. Você pode alternar para uma assinatura diferente usando az account set, especificando a ID ou o nome da assinatura desejado.

# change the active subscription using the subscription name
az account set --subscription "My Demos"

# change the active subscription using the subscription ID
az account set --subscription "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Você também pode alterar sua assinatura usando uma variável. Veja um exemplo:

# change the active subscription using a variable
subscriptionId="$(az account list --query "[?name=='my case sensitive subscription full name'].id" --output tsv)"
az account set --subscription $subscriptionId

Se você alterar para uma assinatura que esteja em um locatário diferente, você também alterará o locatário ativo. Para saber como adicionar uma nova assinatura ao locatário do Microsoft Entra, consulte Associar ou adicionar uma assinatura do Azure ao seu locatário do Microsoft Entra.

Se você receber um erro de "A assinatura de... não existe...", consulte Solução de problemas para possíveis soluções.

Limpe o cache da assinatura

Para atualizar sua lista de assinaturas, use o comando az account clear . Você deve entrar novamente para ver a lista atualizada.

az account clear

az login

Limpar o cache de assinatura não é tecnicamente o mesmo processo que sair do Azure. No entanto, quando você limpa o cache de assinatura, não é possível executar comandos da CLI do Azure, incluindo az account set, até entrar novamente.

Criar grupos de gerenciamento do Azure

Os grupos de gerenciamento do Azure contêm assinaturas. Os grupos de gerenciamento fornecem uma maneira de gerenciar o acesso, as políticas e a conformidade dessas assinaturas. Para obter mais informações, consulte O que são grupos de gerenciamento do Azure.

Use os comandos az account management-group para criar e gerenciar grupos de gerenciamento do Azure.

Você pode criar um grupo de gerenciamento para várias de suas assinaturas usando o comando az account management-group create :

az account management-group create --name Contoso01

Para ver todos os grupos de gerenciamento, use o comando az account management-group list :

az account management-group list

Adicione assinaturas ao seu novo grupo usando o comando az account management-group subscription add :

az account management-group subscription add --name Contoso01 --subscription "My Demos"
az account management-group subscription add --name Contoso01 --subscription "My Second Demos"

Para remover uma assinatura, use o comando az account management-group subscription remove :

az account management-group subscription remove --name Contoso01 --subscription "My Demos"

Para remover um grupo de gerenciamento, execute o comando az account management-group delete :

az account management-group delete --name Contoso01

Remover uma assinatura ou excluir um grupo de gerenciamento não exclui ou desativa uma assinatura.

Definir um bloqueio de assinatura do Azure

Como administrador, talvez seja necessário bloquear uma assinatura para impedir que os usuários a excluam ou modifiquem.

Na CLI do Azure, use os comandos de bloqueio de conta az . Por exemplo, o comando az account lock create pode impedir que os usuários excluam uma assinatura:

az account lock create --name "Cannot delete subscription" --lock-type CanNotDelete

Observação

Você precisa ter contributor permissões em uma assinatura para criar ou alterar bloqueios.

Para ver os bloqueios atuais em sua assinatura, use o comando az account lock list :

az account lock list --output table

Se você fizer uma conta somente leitura, o resultado será semelhante à atribuição de permissões da função Leitor a todos os usuários. Para saber mais sobre como definir permissões para usuários e funções individuais, consulte Adicionar ou remover atribuições de função do Azure usando a CLI do Azure.

Para ver os detalhes de um bloqueio, use o comando az account lock show :

az account lock show --name "Cannot delete subscription"

Você pode remover um bloqueio usando o comando az account lock delete :

az account lock delete --name "Cannot delete subscription"

Para obter mais informações, consulte Bloquear recursos para evitar alterações inesperadas.

Resolução de problemas

A assinatura não existe

Além de um erro tipográfico, você pode receber esse erro quando houver um problema de tempo de permissões. Por exemplo, se você receber permissões para uma nova assinatura enquanto a janela do terminal atual estiver aberta, esse erro poderá ocorrer. A solução é fechar e reabrir a janela do terminal ou usar az logout e az login atualizar sua lista de assinaturas disponíveis.

Aqui está um script para ajudá-lo a encontrar e alterar uma assinatura.

# See what subscription you are currently using.
az account show

# Get a list of available subscriptions.
az account list --output table

# If the subscription you are seeking is not in the list
#   close and reopen your terminal window,
#   or logout and then sign in again.
az logout
az login

# You can also clear your cache to refresh the
#    available subscription list
az account clear
az login

# Did your available subscription list change?
az account list --output table

# If the subscription you are seeking is still not in the list,
#    contact your system administrator. You cannot change your
#    subscription to an ID that is not in the list.

# If the subscription you are seeking is now in the list,
#   change your subscription.
az account set --subscription 00000000-0000-0000-0000-00000000000

Consulte também