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 클라우드에 연결하는 데 필요한 인증 정보를 나타내는 PowerShell 개체입니다. Azure 컨텍스트에서 Azure PowerShell은 구독을 전환할 때마다 계정을 다시 인증할 필요가 없습니다. Azure 컨텍스트는 다음으로 구성됩니다.
- Connect-AzAccount를 사용하여 Azure에 로그인하는 데 사용된 계정. Azure 컨텍스트는 계정 관점에서 사용자, 애플리케이션 ID 및 서비스 주체를 동일하게 처리합니다.
- 테넌트와 연결된 Azure 리소스를 만들고 실행하기 위한 Microsoft와의 서비스 계약인 활성 구독. 테넌트는 설명서에서 또는 Active Directory로 작업할 때 조직이라고도 합니다.
- Azure 클라우드에 액세스하기 위한 저장된 인증 토큰인 토큰 캐시에 대한 참조입니다. 이 토큰이 저장되는 위치와 지속 기간은 컨텍스트 자동 저장 설정에 의해 결정됩니다.
이러한 용어에 대한 자세한 내용은 Microsoft Entra Terminology를 참조하세요. Azure 컨텍스트에서 사용하는 인증 토큰은 영구 세션의 일부인 다른 저장된 토큰과 동일합니다.
로그인 Connect-AzAccount
하면 기본 구독에 대해 하나 이상의 Azure 컨텍스트가 만들어집니다. 반환되는 Connect-AzAccount
개체는 PowerShell 세션의 나머지 부분에 사용되는 기본 Azure 컨텍스트입니다.
Azure 컨텍스트 가져오기
사용 가능한 Azure 컨텍스트는 Get-AzContext cmdlet을 사용하여 검색됩니다. ListAvailable 매개 변수를 사용하여 사용 가능한 컨텍스트를 나열합니다.
Get-AzContext -ListAvailable
또는 이름별로 컨텍스트를 가져옵니다.
Get-AzContext -Name 'mycontext'
컨텍스트 이름은 연결된 구독의 이름과 다를 수 있습니다.
Important
사용 가능한 Azure 컨텍스트가 항상 사용 가능한 구독은 아닙니다. Azure 컨텍스트는 로컬로 저장된 정보만 나타냅니다. Get-AzSubscription cmdlet을 사용하여 구독을 가져올 수 있습니다.
구독 정보에서 새 Azure 컨텍스트 만들기
Set-AzContext cmdlet을 사용하여 새 Azure 컨텍스트를 만들고 활성 컨텍스트로 설정합니다. 새 Azure 컨텍스트를 만드는 가장 쉬운 방법은 기존 구독 정보를 사용하는 것입니다. 이 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-id) 형식의 컨텍스트 이름으로 사용됩니다.
활성 Azure 컨텍스트 변경
활성 Azure 컨텍스트를 변경하는 데 Select-AzContext와 Select-AzContext를 모두 Set-AzContext
사용할 수 있습니다. 새 Azure 컨텍스트 만들기에 설명된 대로 Set-AzContext
는 구독에 대한 Azure 컨텍스트가 없는 경우 새로 하나 만든 다음, 활성 컨텍스트를 해당 컨텍스트로 전환합니다.
Select-AzContext
는 기존 Azure 컨텍스트에서만 사용되며 사용 Set-AzContext -Context
과 유사하게 작동하지만 파이핑과 함께 사용하도록 설계되었습니다.
Set-AzContext -Context $(Get-AzContext -Name 'mycontext') # Set a context with an inline Azure context object
Get-AzContext -Name 'mycontext' | Select-AzContext # Set a context with a piped Azure context object
Azure PowerShell의 다른 많은 계정 및 컨텍스트 관리 명령과 Select-AzContext
마찬가지로 컨텍스트 Set-AzContext
가 활성 상태인 기간을 제어할 수 있도록 범위 매개 변수를 지원합니다. 범위를 사용하면 기본값을 변경하지 않고 단일 세션의 활성 컨텍스트를 변경할 수 있습니다.
Get-AzContext -Name 'mycontext' | Select-AzContext -Scope Process
전체 PowerShell 세션에 대한 컨텍스트를 전환하지 않도록 AzContext 매개 변수가 있는 Azure PowerShell 명령을 지정된 컨텍스트에 대해 실행할 수 있습니다.
$context = Get-AzContext -Name "mycontext"
New-AzVM -Name ExampleVM -AzContext $context
Azure PowerShell cmdlet에서 컨텍스트를 사용하는 기본 다른 방법은 백그라운드 명령을 실행하는 것입니다. Azure PowerShell을 사용하여 PowerShell 작업을 실행하는 방법에 대한 자세한 내용은 PowerShell 작업에서 Azure PowerShell cmdlet 실행을 참조하세요.
PowerShell 세션에서 Azure 컨텍스트 저장
기본적으로 Azure 컨텍스트는 PowerShell 세션 간에 사용하기 위해 저장됩니다. 다음과 같은 방법으로 이 동작을 변경합니다.
를 사용하여
-Scope Process
로그인합니다Connect-AzAccount
.Connect-AzAccount -Scope Process
이 로그인의 일부로 반환된 Azure 컨텍스트는 현재 세션 에만 유효하며 Azure PowerShell 컨텍스트 자동 저장 설정에 관계없이 자동으로 저장되지 않습니다.
Disable-AzContextAutosave cmdlet을 사용하여 Azure PowerShell에서 컨텍스트 자동 저장을 사용하지 않도록 설정합니다. 컨텍스트 자동 저장을 사용하지 않도록 설정해도 저장된 토큰은 지워지지 않습니다. 저장된 Azure 컨텍스트 정보를 지우는 방법을 알아보려면 Azure 컨텍스트 및 자격 증명 제거를 참조하세요.
Enable-AzContextAutosave cmdlet을 사용하여 명시적으로 Azure 컨텍스트 자동 저장을 사용하도록 설정할 수 있습니다. 자동 저장을 사용하도록 설정하면 사용자의 컨텍스트가 이후 PowerShell 세션에 대해 로컬로 저장됩니다.
Import-AzContext를 사용하여 로드할 수 있는 이후 PowerShell 세션에서 사용할 Save-AzContext를 사용하여 컨텍스트를 수동으로 저장합니다.
Save-AzContext -Path current-context.json # Save the current context Save-AzContext -Profile $profileObject -Path other-context.json # Save a context object Import-AzContext -Path other-context.json # Load the context from a file and set it to the current context
Warning
컨텍스트 자동 저장을 사용하지 않으면 저장된 모든 컨텍스트 정보는 지워지지 않습니다. 저장된 정보를 제거하려면 Clear-AzContext cmdlet을 사용합니다. 저장된 컨텍스트를 제거하는 자세한 내용은 컨텍스트 및 자격 증명 제거를 참조하세요.
이러한 각 명령은 현재 실행 중인 프로세스에만 적용할 값을 Process
사용할 수 있는 Scope 매개 변수를 지원합니다. 예를 들어 PowerShell 세션을 종료한 후 새로 만든 컨텍스트가 저장되지 않도록 하려면 다음을 수행합니다.
Disable-AzContextAutosave -Scope Process
$context2 = Set-AzContext -Subscription 'sub-id' -Tenant 'other-tenant'
컨텍스트 정보 및 토큰은 Windows의 $env:USERPROFILE\.Azure
디렉터리 및 다른 플랫폼에 $HOME/.Azure
저장됩니다. 구독 ID 및 테넌트 ID와 같은 중요한 정보는 로그 또는 저장된 컨텍스트를 통해 저장된 정보에 계속 노출될 수 있습니다. 저장된 정보를 지우는 방법을 알아보려면 컨텍스트 및 자격 증명 제거 섹션을 참조하세요.
Azure 컨텍스트 및 저장된 자격 증명 제거
Azure 컨텍스트 및 로그인 자격 증명을 지우기 위해
Disconnect-AzAccount를 사용하여 계정에서 로그아웃합니다. 계정 또는 컨텍스트를 통해 모든 계정에서 로그아웃할 수 있습니다.
Disconnect-AzAccount # Disconnect active account Disconnect-AzAccount -Username 'user@contoso.com' # Disconnect by account name Disconnect-AzAccount -ContextName 'subscription2' # Disconnect by context name Disconnect-AzAccount -AzureContext $contextObject # Disconnect using context object information
연결 해제는 항상 저장된 인증 토큰을 제거하고 연결이 끊긴 사용자 또는 컨텍스트와 연결된 저장된 컨텍스트를 지웁니다.
Clear-AzContext를 사용합니다. 이 cmdlet은 항상 저장된 컨텍스트, 인증 토큰을 제거하고 로그아웃합니다.
Remove-AzContext를 사용하여 컨텍스트 제거:
Remove-AzContext -Name 'mycontext' # Remove by name Get-AzContext -Name 'mycontext' | Remove-AzContext # Remove by piping Azure context object
활성 컨텍스트를 제거하면 Azure에서 연결이 끊어지고 다시 인증
Connect-AzAccount
해야 합니다.
참고 항목
Azure PowerShell
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기