Como gerenciar as assinaturas do Azure com a CLI do Azure
A CLI do Azure ajuda a gerenciar a assinatura do Azure, a criar grupos de gerenciamento e a bloquear assinaturas. Pode ser que você tenha 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 assinaturas, cobrança e gerenciamento de custos, confira a documentação sobre cobrança e gerenciamento de 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á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 se conectam ao Azure para criar, gerenciar e usar recursos. Um usuário pode acessar vários locatários e assinaturas.
As assinaturas são contratos com a Microsoft para usar os serviços de nuvem, incluindo o Azure. Cada recurso é associado a uma assinatura. As assinaturas contêm grupos de recursos.
Um grupo de recursos do Azure é um contêiner que mantém os recursos relacionados a 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 locatário ativo
Use az account tenant list ou az account show para obter a ID do locatário ativo.
az account tenant list
az account show
Alterar o locatário ativo
Você tem duas opções para alternar entre locatários.
Conectar-se como um usuário ao 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...
Ao usar o comando alternativo
az login --tenant
, você será solicitado a abrir uma página HTTPS e inserir 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 funciona em uma assinatura. Você pode especificar em qual assinatura deseja trabalhar usando o parâmetro --subscription
no comando. Se você não especificar uma assinatura, o comando usará sua assinatura ativa atual.
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. Acesse Saiba como usar o Bash com a CLI do Azure para conferir mais exemplos de maneiras de usar esses comandos.
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 as 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 valor table 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. Este é 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ê mudar para uma assinatura presente em um locatário diferente, você também mudará o locatário ativo. Para saber como adicionar uma nova assinatura ao seu locatário do Microsoft Entra, confira Associar ou adicionar uma assinatura do Azure ao seu locatário do Microsoft Entra.
Se você receber um erro de "Assinatura de... não existe...", consulte a Solução de problemas para obter 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 forma de gerenciar o acesso, as políticas e a conformidade para essas assinaturas. Para obter mais informações, confira O que são grupos de gerenciamento do Azure.
Use os comandos az account management-group para criar e gerenciar os grupos de gerenciamento do Azure.
Crie um grupo de gerenciamento para várias das 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 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
A remoção de uma assinatura ou a exclusão de um grupo de gerenciamento não exclui nem desativa uma assinatura.
Definir um bloqueio de assinatura do Azure
Como administrador, você poderá precisar bloquear uma assinatura para impedir que os usuários a excluam ou modifiquem. Para obter mais informações, confira 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
Observação
Você precisa ter contributor
permissões em uma assinatura para criar ou alterar bloqueios.
Para ver os bloqueios atuais na 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 a atribuir permissões da função Leitor a todos os usuários. Para saber mais sobre como definir permissões para funções e usuários individuais, confira 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"
Solução de problemas
A assinatura não existe
Além de um erro tipográfico, você pode receber esse erro quando houver um problema em relação ao tempo das permissões. Por exemplo, se você recebe permissões para novas assinaturas enquanto a janela do terminal atual está aberta, pode ocorrer esse erro. A solução é fechar e reabrir a janela do terminal ou usar az logout
e, em seguida, az login
para atualizar a sua lista de assinaturas disponíveis.
Confira este script para ajudar 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