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 determinados recursos entre agrupamentos. A CLI do Azure dá suporte à seleção de uma assinatura globalmente e por comando.

Para obter informações detalhadas sobre subscrições, faturação e gestão de custos, veja a documentação sobre a gestão da faturação e dos custos.

Terminologia

Um locatário é uma instância do Microsoft Entra ID na qual residem informações sobre uma única organização. Uma organização multilocatária é 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 utilizadores são as contas que iniciam sessão no Azure para criar, gerir e utilizar recursos. Um usuário pode ter acesso a vários locatários e assinaturas.

As subscrições são os contratos com a Microsoft para utilizar serviços na nuvem, incluindo o Azure. Cada recurso está associado a uma subscrição. 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, consulte Como gerenciar grupos de recursos do Azure com a CLI do Azure

Obter o inquilino ativo

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

az account tenant list

az account show

Alterar o inquilino ativo

Para mudar de inquilino, 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 a sua organização exigir autenticação multifator, poderá receber este erro ao utilizar 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...
    

    Usando o 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 subscrição

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

Para ver a subscrição que está a utilizar atualmente ou para obter uma lista de subscrições disponíveis, execute o comando az account show ou az account list . Vá para Aprenda a usar o Bash com a CLI do Azure para ver mais exemplos de maneiras de usar esses comandos.

Eis alguns exemplos que mostram como obter informações de subscrição:

# 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

Gorjeta

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

Alterar a subscrição ativa

As assinaturas do Azure têm um nome e uma ID. Você pode alternar para uma assinatura diferente usando az account set especificando o ID ou nome de 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. Segue-se 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, também estará alterando o locatário ativo. Para saber como adicionar uma nova subscrição ao seu inquilino do Microsoft Entra, consulte Associar ou adicionar uma subscrição do Azure ao seu inquilino do Microsoft Entra.

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

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 seus 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 remover :

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 nem 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. Para obter mais informações, veja Bloquear recursos para impedir alterações inesperadas.

Na CLI do Azure, use os comandos az account lock . 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

Nota

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ê tornar 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"

Resolução de Problemas

A subscrição não existe

Além de um erro tipográfico, você pode receber esse erro quando há um problema de tempo de permissões. Por exemplo, se você recebeu permissões para uma nova assinatura enquanto a janela do terminal atual está aberta, esse erro pode ocorrer. A solução é fechar e reabrir a janela do terminal ou usá-la az logout para az login atualizar a 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

# 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