Objetos de contexto do Azure PowerShell
O Azure PowerShell utiliza objetos de contexto do Azure PowerShell (contextos do Azure) para manter as informações de subscrição e autenticação. Se você tiver acesso a várias assinaturas, os contextos do Azure permitem que você selecione a assinatura na qual executar cmdlets do Azure PowerShell. Os contextos do Azure também servem para armazenar informações de início de sessão em várias sessões do PowerShell e executar tarefas em segundo plano.
Este artigo aborda a gestão de contextos do Azure, não a gestão de subscrições ou contas. Se pretender gerir utilizadores, subscrições, inquilinos ou outras informações da conta, consulte a documentação do Microsoft Entra ID . Para saber mais sobre como usar contextos para executar tarefas em segundo plano ou paralelas, consulte Executar cmdlets do Azure PowerShell em Trabalhos do PowerShell depois de se familiarizar com os contextos do Azure.
Descrição geral dos objetos de contexto do Azure
Os contextos do Azure são objetos do PowerShell que representam sua assinatura ativa para executar comandos e as informações de autenticação necessárias para se conectar a uma nuvem do Azure. Com os contextos do Azure, o Azure PowerShell não precisa de reautenticar a sua conta sempre que muda de subscrição. Um contexto do Azure é composto por:
- A conta que foi usada para entrar no Azure com
Connect-AzAccount
o . Os contextos do Azure tratam os utilizadores, IDs de aplicação e principais de serviço da mesma forma de uma perspetiva de conta. - A subscrição ativa, um contrato de serviço com a Microsoft para criar e executar recursos do Azure, que estão associados a um inquilino. Os locatários são frequentemente referidos como organizações na documentação ou quando trabalham com o Microsoft Entra.
- Uma referência a uma cache de tokens, um token de autenticação armazenado para aceder a uma cloud do Azure. As configurações de salvamento automático de contexto determinam onde o token é armazenado e por quanto tempo ele persiste.
Para obter mais informações sobre esses termos, consulte Terminologia do Microsoft Entra. Os tokens de autenticação utilizados pelos contextos do Azure são os mesmos que outros tokens armazenados que fazem parte de uma sessão persistente.
Quando inicia sessão com Connect-AzAccount
, pelo menos um contexto do Azure é criado para a sua subscrição predefinida. O objeto devolvido por Connect-AzAccount
é o contexto predefinido do Azure utilizado durante o resto da sessão do PowerShell.
Obter contextos do Azure
Os contextos disponíveis do Azure são recuperados com o Get-AzContext
cmdlet. Liste os contextos disponíveis com o parâmetro ListAvailable :
Get-AzContext -ListAvailable
Ou obtenha um contexto por nome:
Get-AzContext -Name MyContextName
Os nomes dos contextos podem ser diferentes do nome da subscrição associada. Para determinar o nome do contexto, use o valor da propriedade Name , que não é exibida por padrão.
Get-AzContext -ListAvailable | Select-Object -Property *
Importante
Os contextos do Azure disponíveis não são sempre as suas subscrições disponíveis. Os contextos do Azure representam apenas informações armazenadas localmente. Você pode obter suas assinaturas com o Get-AzSubscription
cmdlet.
Criar um novo contexto do Azure a partir de informações de subscrição
O Set-AzContext
cmdlet é usado para criar e definir novos contextos do Azure como o contexto ativo. A forma mais fácil de criar um novo contexto do Azure é utilizar as informações de subscrição existentes. O Set-AzContext
cmdlet foi projetado para tomar o objeto de saída como um valor canalizado e configurar um novo contexto do Get-AzSubscription
Azure:
Get-AzSubscription -SubscriptionName MySubscriptionName |
Set-AzContext -Name MyContextName
Ou indique o ID ou nome da subscrição e o ID do inquilino, se necessário:
Set-AzContext -Name MyContextName -Subscription MySubscriptionName -Tenant 00000000-0000-0000-0000-000000000000
Se o parâmetro Name for omitido, o nome e a ID da assinatura serão usados como o nome do contexto no formato Subscription Name (subscription-id)
.
Alterar o contexto ativo do Azure
Ambos Set-AzContext
e Select-AzContext
podem ser usados para alterar o contexto ativo do Azure. Conforme descrito em Criar um novo contexto do Azure, cria um novo contexto do Azure para uma assinatura, se não existir, e, em seguida, Set-AzContext
alterna o contexto ativo para esse.
Select-AzContext
destina-se a ser usado apenas com contextos existentes do Azure e funciona de forma semelhante ao uso do Set-AzContext -Context
, mas foi projetado para uso com tubulação:
Set-AzContext -Context (Get-AzContext -Name MyContextName) # Set a context with an inline Azure context object
Get-AzContext -Name MyContextName | Select-AzContext # Set a context with a piped Azure context object
Como muitos outros comandos de gerenciamento de conta e contexto no Azure PowerShell, Set-AzContext
e Select-AzContext
dão suporte ao parâmetro Scope para que você possa controlar por quanto tempo o contexto está ativo. O escopo permite alterar o contexto ativo de uma única sessão sem alterar o padrão:
Get-AzContext -Name MyContextName | Select-AzContext -Scope Process
Para evitar alternar contextos para uma sessão inteira do PowerShell, os comandos do Azure PowerShell com um parâmetro AzContext podem ser executados em um determinado contexto:
$context = Get-AzContext -Name MyContextName
New-AzVM -Name ExampleVM -AzContext $context
O outro uso principal de contextos com cmdlets do Azure PowerShell é executar comandos em segundo plano. Para obter mais informações sobre a execução de Tarefas do PowerShell com o Azure PowerShell, veja Executar cmdlets do Azure PowerShell em Tarefas do PowerShell.
Guardar contextos do Azure entre sessões do PowerShell
Por predefinição, os contextos do Azure são guardados para serem utilizados entre as sessões do PowerShell. Você pode alterar esse comportamento das seguintes maneiras:
Iniciar sessão com
-Scope Process
comConnect-AzAccount
.Connect-AzAccount -Scope Process
O contexto do Azure retornado como parte dessa entrada é válido apenas para a sessão atual e não é salvo automaticamente, independentemente da configuração de salvamento automático de contexto do Azure PowerShell.
Desabilite o salvamento automático de contexto no Azure PowerShell com o
Disable-AzContextAutosave
cmdlet. A desativação da gravação automática do contexto não limpa os tokens armazenados. Para saber como limpar informações de contexto armazenadas do Azure, consulte Remover contextos do Azure e credenciais armazenadas.Habilitar explicitamente o salvamento automático de contexto do Azure pode ser habilitado com o
Enable-AzContextAutosave
cmdlet. Com o salvamento automático habilitado, os contextos de um usuário são armazenados localmente para sessões posteriores do PowerShell.Salve manualmente contextos com
Save-AzContext
para serem usados em futuras sessões do PowerShell, onde eles podem ser carregados comImport-AzContext
:Save-AzContext -Path current-context.json # Save the current context Import-AzContext -Path other-context.json # Load the context from a file and set it to the current context
Aviso
Desativar a gravação automática do contexto não limpa as informações de contexto armazenadas que foram guardadas. Para remover informações armazenadas, use o Clear-AzContext
cmdlet. Para saber mais sobre como remover contextos salvos, consulte Remover contextos do Azure e credenciais armazenadas.
Cada um desses comandos suporta o parâmetro Scope , que pode ter um valor de para se aplicar apenas ao processo em Process
execução atual. Por exemplo, para garantir que os contextos recém-criados não são guardados depois de sair de uma sessão do PowerShell:
Disable-AzContextAutosave -Scope Process
Set-AzContext -Subscription 'Subscription ID or Name' -Tenant 00000000-0000-0000-0000-000000000000
Informações de $env:USERPROFILE\.Azure
contexto e tokens são armazenados no diretório no Windows e $HOME/.Azure
em outras plataformas. Informações confidenciais, como IDs de assinatura e IDs de locatário, ainda podem ser expostas em informações armazenadas, por meio de logs ou contextos salvos. Para saber como limpar informações armazenadas, consulte Remover contextos do Azure e credenciais armazenadas.
Remover credenciais armazenadas e contextos do Azure
Para limpar as credenciais e os contextos do Azure:
Saia de uma conta com
Disconnect-AzAccount
o . Pode terminar sessão de qualquer conta através da conta ou do contexto:Disconnect-AzAccount # Disconnect active account Disconnect-AzAccount -Username 'user@contoso.com' # Disconnect by account name Disconnect-AzAccount -ContextName MyContextName # Disconnect by context name $context = Get-AzContext Disconnect-AzAccount -AzureContext $context # Disconnect using context object information
Desligar remove sempre os tokens de autenticação armazenados e limpa os contextos guardados associados ao contexto ou utilizador desligado.
Clear-AzContext
Utilize. Esse cmdlet sempre remove contextos armazenados e tokens de autenticação e desconecta você.Remover um contexto com
Remove-AzContext
:Remove-AzContext -Name MyContextName # Remove by name Get-AzContext -Name MyContextName | Remove-AzContext # Remove by piping an Azure context object
Se você remover o contexto ativo, será desconectado do Azure e precisará autenticar novamente com
Connect-AzAccount
o .