Azure PowerShell 컨텍스트 개체
Azure PowerShell은 Azure PowerShell 컨텍스트 개체(Azure 컨텍스트)를 사용하여 구독 및 인증 정보를 보관합니다. 여러 구독에 액세스할 수 있는 경우 Azure 컨텍스트를 사용하여 Azure PowerShell cmdlet을 실행할 구독을 선택할 수 있습니다. Azure 컨텍스트는 여러 PowerShell 세션에서 로그인 정보를 저장하고 백그라운드 작업을 실행하는 데도 사용됩니다.
이 문서에서는 구독 또는 계정 관리가 아닌 Azure 컨텍스트 관리에 대해 설명합니다. 사용자, 구독, 테넌트 또는 기타 계정 정보를 관리하려면 Microsoft Entra ID 설명서를 참조하세요. 백그라운드 또는 병렬 작업을 실행하기 위한 컨텍스트 사용에 대한 자세한 내용은 Azure 컨텍스트에 익숙해진 후 PowerShell 작업 에서 Azure PowerShell cmdlet 실행을 참조하세요.
Azure 컨텍스트 개체 개요
Azure 컨텍스트는 명령을 실행할 활성 구독과 Azure Cloud에 연결하는 데 필요한 인증 정보를 나타내는 PowerShell 개체입니다. Azure 컨텍스트를 사용하면 구독을 전환할 때마다 Azure PowerShell에서 계정을 다시 인증할 필요가 없습니다. 컨텍스트는 다음과 같이 구성됩니다.
Connect-AzAccount
를 사용하여 Azure에 로그인하는 데 사용된 계정입니다. Azure 컨텍스트는 계정 관점에서 사용자, 애플리케이션 ID 및 서비스 주체를 동일하게 처리합니다.- 테넌트와 연결된 Azure 리소스를 만들고 실행하기 위한 Microsoft와의 서비스 계약인 활성 구독. 테넌트는 설명서 또는 Microsoft Entra 작업에서 종종 조직이라고 불립니다.
- Azure Cloud에 액세스하기 위해 저장된 인증 토큰인 토큰 캐시에 대한 참조입니다. 컨텍스트 자동 저장 설정은 토큰이 저장되는 위치와 유지되는 기간을 결정합니다.
이러한 용어에 대한 자세한 내용은 Microsoft Entra 용어를 참조하세요. Azure 컨텍스트에서 사용되는 인증 토큰은 영구 세션의 일부인 다른 저장된 토큰과 동일합니다.
Connect-AzAccount
에 로그인하면 기본 구독에 대해 하나 이상의 Azure 컨텍스트가 생성됩니다. Connect-AzAccount
에 의해 반환된 개체는 PowerShell 세션의 나머지 부분에 사용되는 기본 Azure 컨텍스트입니다.
Azure 컨텍스트 가져오기
사용 가능한 Azure 컨텍스트는 Get-AzContext
cmdlet을 사용하여 검색됩니다. ListAvailable 매개 변수를 사용하여 사용 가능한 컨텍스트를 나열합니다.
Get-AzContext -ListAvailable
또는 이름별로 컨텍스트를 가져옵니다.
Get-AzContext -Name MyContextName
컨텍스트 이름은 연결된 구독의 이름과 다를 수 있습니다. 컨텍스트 이름을 확인하려면 기본적으로 표시되지 않는 Name 속성 값을 사용합니다.
Get-AzContext -ListAvailable | Select-Object -Property *
Important
사용 가능한 Azure 컨텍스트가 항상 사용 가능한 구독은 아닙니다. Azure 컨텍스트는 로컬에 저장된 정보만 표시합니다. Get-AzSubscription
cmdlet을 사용하여 구독을 가져올 수 있습니다.
구독 정보에서 새 Azure 컨텍스트 만들기
Set-AzContext
cmdlet은 새 Azure 컨텍스트를 만들고 활성 컨텍스트로 설정하는 데 사용됩니다. 새 Azure 컨텍스트를 만드는 가장 쉬운 방법은 기존 구독 정보를 사용하는 것입니다. 이 Set-AzContext
cmdlet은 Get-AzSubscription
의 출력 개체를 파이프된 값으로 사용하고 새 Azure 컨텍스트를 구성하도록 디자인되었습니다.
Get-AzSubscription -SubscriptionName MySubscriptionName |
Set-AzContext -Name MyContextName
또는 필요한 경우 구독 이름 또는 ID와 테넌트 ID를 지정합니다.
Set-AzContext -Name MyContextName -Subscription MySubscriptionName -Tenant 00000000-0000-0000-0000-000000000000
Name 매개 변수가 생략되면 구독의 이름과 ID는 Subscription Name (subscription-id)
형식의 컨텍스트 이름으로 사용됩니다.
활성 Azure 컨텍스트 변경
Set-AzContext
와 Select-AzContext
는 모두 활성 Azure 컨텍스트를 변경하는 데 사용할 수 있습니다. 새 Azure 컨텍스트 만들기에 설명된 대로 Set-AzContext
는 구독에 대한 Azure 컨텍스트가 없는 경우 새로 하나 만든 다음, 활성 컨텍스트를 해당 컨텍스트로 전환합니다.
Select-AzContext
는 기존 Azure 컨텍스트에서만 사용하도록 되어 있으며 Set-AzContext -Context
를 사용하는 것과 유사하게 작동하지만 파이프와 함께 사용하도록 디자인되었습니다.
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
Azure PowerShell의 다른 많은 계정 및 컨텍스트 관리 명령과 마찬가지로 Set-AzContext
및 Select-AzContext
는 컨텍스트가 활성 상태인 시간을 제어할 수 있도록 Scope 매개 변수를 지원합니다. Scope를 사용하면 기본값을 변경하지 않고 단일 세션의 활성 컨텍스트를 변경할 수 있습니다.
Get-AzContext -Name MyContextName | Select-AzContext -Scope Process
PowerShell 세션 전체에 대한 컨텍스트 전환을 방지하기 위해 AzContext 매개 변수가 있는 Azure PowerShell 명령을 지정된 컨텍스트에 대해 실행할 수 있습니다.
$context = Get-AzContext -Name MyContextName
New-AzVM -Name ExampleVM -AzContext $context
Azure PowerShell cmdlet에서 컨텍스트를 사용하는 또 다른 주요 용도는 백그라운드 명령을 실행하는 것입니다. Azure PowerShell을 사용하여 PowerShell 작업을 실행하는 방법에 대한 자세한 내용은 PowerShell 작업에서 Azure PowerShell cmdlet 실행을 참조하세요.
PowerShell 세션에서 Azure 컨텍스트 저장
기본적으로 Azure 컨텍스트는 PowerShell 세션 간에 사용하기 위해 저장됩니다. 다음과 같은 방법으로 이 동작을 변경할 수 있습니다.
Connect-AzAccount
와 함께-Scope Process
를 사용하여 로그인Connect-AzAccount -Scope Process
이 로그인의 일부로 반환된 Azure 컨텍스트는 현재 세션에 대해서만 유효하며 Azure PowerShell 컨텍스트 자동 저장 설정에 관계없이 자동으로 저장되지 않습니다.
Disable-AzContextAutosave
cmdlet을 사용하여 Azure PowerShell에서 컨텍스트 자동 저장을 사용하지 않도록 설정합니다. 컨텍스트 자동 저장을 사용하지 않으면 저장된 토큰이 지워지지 않습니다. 저장된 Azure 컨텍스트 정보를 지우는 방법을 알아보려면 Azure 컨텍스트 및 저장된 자격 증명 제거를 참조하세요.Enable-AzContextAutosave
cmdlet을 사용하여 Azure 컨텍스트 자동 저장을 명시적으로 사용하도록 설정할 수 있습니다. 자동 저장을 사용하도록 설정하면 사용자의 컨텍스트가 나중에 PowerShell 세션에서 사용할 수 있도록 로컬에 저장됩니다.Save-AzContext
를 사용하여 향후 PowerShell 세션에서 사용할 컨텍스트를 수동으로 저장하고Import-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
Warning
컨텍스트 자동 저장을 사용하지 않으면 저장된 모든 컨텍스트 정보는 지워지지 않습니다. 저장된 정보를 제거하려면 Clear-AzContext
cmdlet을 사용합니다. 저장된 컨텍스트를 제거하는 방법에 대한 자세한 내용은 Azure 컨텍스트 및 저장된 자격 증명 제거를 참조하세요.
이러한 각각의 명령은 Scope 매개 변수를 지원하며, 현재 실행중인 프로세스에만 적용되는 Process
값을 취합니다. 예를 들어, PowerShell 세션을 종료한 후 새로 만든 컨텍스트가 저장되지 않도록 하기 위해
Disable-AzContextAutosave -Scope Process
Set-AzContext -Subscription 'Subscription ID or Name' -Tenant 00000000-0000-0000-0000-000000000000
컨텍스트 정보 및 토큰은 Windows의 $env:USERPROFILE\.Azure
디렉토리 및 다른 플랫폼의 $HOME/.Azure
에 저장됩니다. 구독 ID 및 테넌트 ID와 같은 중요한 정보가 로그 또는 저장된 컨텍스트를 통해 저장된 정보에 계속 노출될 수 있습니다. 저장된 정보를 지우는 방법을 알아보려면 Azure 컨텍스트 및 저장된 자격 증명 제거를 참조하세요.
Azure 컨텍스트 및 저장된 자격 증명 제거
Azure 컨텍스트 및 로그인 자격 증명을 지우기 위해
Disconnect-AzAccount
계정에서 로그아웃합니다. 계정 또는 컨텍스트별로 계정에서 로그아웃할 수 있습니다.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
연결을 끊으면 항상 저장된 인증 토큰이 제거되고 연결이 끊어진 사용자 또는 컨텍스트와 관련된 저장된 컨텍스트가 지워집니다.
Clear-AzContext
을 사용합니다. 이 cmdlet은 항상 저장된 컨텍스트, 인증 토큰을 제거하고 로그인합니다.Remove-AzContext
를 사용하여 컨텍스트를 제거합니다.Remove-AzContext -Name MyContextName # Remove by name Get-AzContext -Name MyContextName | Remove-AzContext # Remove by piping an Azure context object
활성 컨텍스트를 제거하면 Azure에서 연결이 끊어지고
Connect-AzAccount
를 사용하여 다시 인증해야 합니다.
참고 항목
Azure PowerShell