PowerShell 세션에서 사용자 자격 증명 유지
Warning
AzureRM PowerShell 모듈은 2024년 2월 29일부터 공식적으로 사용되지 않습니다. 사용자는 지속적인 지원 및 업데이트를 보장하기 위해 AzureRM에서 Az PowerShell 모듈로 마이그레이션하는 것이 좋습니다.
AzureRM 모듈은 여전히 작동할 수 있지만 더 이상 기본 또는 지원되지 않으므로 사용자의 재량에 따라 계속 사용할 수 있습니다. Az 모듈로 전환하는 방법에 대한 지침은 마이그레이션 리소스를 참조하세요.
Azure PowerShell은 Azure Context Autosave라고 하는 기능을 제공하며, 이는 다음과 같은 기능을 제공합니다.
- 새 PowerShell 세션에서 다시 사용할 로그인 정보의 보존입니다.
- 장기 실행 cmdlet을 실행하기 위해 백그라운드 작업을 더 쉽게 사용할 수 있습니다.
- 별도의 로그인 없이 계정, 구독 및 환경 간에 전환합니다.
- 동일한 PowerShell 세션에서 다른 자격 증명 및 구독을 동시에 사용하여 작업 실행.
정의된 Azure 컨텍스트
Azure 컨텍스트는 Azure PowerShell cmdlet의 대상을 정의하는 정보 집합입니다. 컨텍스트는 5개의 부분으로 구성됩니다.
- 계정 - Azure와의 통신을 인증하는 데 사용되는 사용자 이름 또는 서비스 주체
- 구독 - 동작하는 리소스를 포함하는 Azure 구독.
- 테넌트 - 구독을 포함하는 Microsoft Entra 테넌트입니다. 테넌트는 ServicePrincipal 인증에서 더 중요합니다.
- 환경 - 대상이 되는 특정 Azure 클라우드(일반적으로 Azure 글로벌 클라우드)입니다. 그러나 환경 설정을 사용하여 대상 국가, 정부 및 온-프레미스(Azure Stack) 클라우드도 대상으로 지정할 수 있습니다.
- 자격 증명 - Azure에서 사용자 ID를 확인하고 Azure의 리소스에 액세스하기 위한 사용자의 권한 부여를 확인하는 데 사용되는 정보
이전 릴리스에서는 새 PowerShell 세션을 열 때마다 Azure 컨텍스트를 만들어야 했습니다. Azure PowerShell v4.4.0부터 새 PowerShell 세션을 열 때마다 Azure 컨텍스트를 자동으로 저장할 수 있습니다.
다음 로그인에 대한 컨텍스트를 자동으로 저장
버전 6.3.0 이상에서 Azure PowerShell은 세션 간에 컨텍스트 정보를 자동으로 유지합니다. 컨텍스트 및 자격 증명 Disable-AzureRmContextAutoSave
을 잊도록 PowerShell을 설정하려면 . PowerShell 세션을 열 때마다 Azure에 로그인해야 합니다.
PowerShell 세션이 닫힌 후 Azure PowerShell에서 컨텍스트를 기억할 수 있도록 하려면 다음을 사용합니다 Enable-AzureRmContextAutosave
. 컨텍스트 및 자격 증명 정보는 사용자 디렉터리(%AppData%\Roaming\Windows Azure PowerShell
)의 특별한 숨겨진 폴더에 자동으로 저장됩니다. 각 새 PowerShell 세션은 마지막 세션에서 사용된 컨텍스트를 대상으로 합니다.
Azure 컨텍스트를 관리할 수 있는 cmdlet을 사용하면 세분화된 제어도 가능합니다. 변경 내용을 현재 PowerShell 세션(범위) 또는 모든 PowerShell 세션(Process
CurrentUser
범위)에만 적용하려는 경우 이러한 옵션은 컨텍스트 범위 사용에서 모드 세부 정보로 설명합니다.
Azure PowerShell cmdlet을 백그라운드 작업으로 실행
Azure 컨텍스트 자동 저장 기능을 사용하면 PowerShell 백그라운드 작업과 컨텍스트를 공유할 수도 있습니다. PowerShell을 사용하면 작업이 완료되기를 기다리지 않고도 장기 실행 작업을 백그라운드 작업으로 시작하고 모니터링할 수 있습니다. 다음과 같은 두 가지 방법으로 백그라운드 작업과 자격 증명을 공유할 수 있습니다.
컨텍스트를 인수로 전달
대부분의 AzureRM cmdlet을 사용하면 컨텍스트를 매개 변수로 cmdlet에 전달할 수 있습니다. 다음 예제와 같이 컨텍스트를 백그라운드 작업에 전달할 수 있습니다.
$job = Start-Job { param($ctx) New-AzureRmVm -AzureRmContext $ctx [... 추가 매개 변수 ...]} -ArgumentList(Get-AzureRmContext)
- Using the default context with Autosave enabled
If you have enabled **Context Autosave**, background jobs automatically use the default saved
context.
```powershell
$job = Start-Job { New-AzureRmVm [... Additional parameters ...]}
백그라운드 작업의 결과를 알아야 하는 경우 작업 상태 검사 Wait-Job
작업이 완료되기를 기다리는 데 사용합니다Get-Job
. 백그라운드 작업의 출력을 캡처하거나 표시하는 데 사용합니다 Receive-Job
. 자세한 내용은 about_Jobs 참조하세요.
컨텍스트 만들기, 선택, 이름 바꾸기 및 제거
컨텍스트를 작성하려면 Azure에 로그인해야 합니다. Connect-AzureRmAccount
cmdlet(또는 해당 별칭인 Login-AzureRmAccount
)은 Azure PowerShell cmdlet에서 사용하는 기본 컨텍스트를 설정하고, 사용자는 이를 통해 자격 증명에서 허용하는 모든 테넌트 또는 구독에 액세스할 수 있습니다.
로그인 후 새 컨텍스트를 추가하려면 (또는 해당 별칭)을 Select-AzureRmSubscription
사용합니다 Set-AzureRmContext
.
Set-AzureRMContext -Subscription 'Contoso Subscription 1' -Name 'Contoso1'
이전 예제에서는 현재 자격 증명을 사용하여 'Contoso 구독 1'을 대상으로 하는 새 컨텍스트를 추가합니다. 새 컨텍스트의 이름은 'Contoso1'입니다. 컨텍스트에 대한 이름을 제공하지 않은 경우 계정 ID 및 구독 ID를 사용하는 기본 이름이 사용됩니다.
기존 컨텍스트의 이름을 바꾸려면 cmdlet을 Rename-AzureRmContext
사용합니다. 예시:
Rename-AzureRmContext '[user1@contoso.org; 123456-7890-1234-564321]' 'Contoso2'
다음은 자동 이름을 [user1@contoso.org; 123456-7890-1234-564321]
가진 컨텍스트의 이름을 'Contoso2'라는 간단한 이름으로 바꾸는 예제입니다. 또한 컨텍스트를 관리하는 cmdlet에서 탭 완성 기능을 사용하면 컨텍스트를 빠르게 선택할 수 있습니다.
마지막으로 컨텍스트를 제거하려면 cmdlet을 Remove-AzureRmContext
사용합니다. 예시:
Remove-AzureRmContext Contoso2
이름이 'Contoso2'인 컨텍스트를 잊어버립니다. 를 사용하여 이 컨텍스트를 다시 만들 수 있습니다. Set-AzureRmContext
자격 증명 제거
(라고도 함)를 사용하여 Disconnect-AzureRmAccount
사용자 또는 서비스 주체에 대한 모든 자격 증명 및 관련 컨텍스트를 Logout-AzureRmAccount
제거할 수 있습니다. 매개 변수 Disconnect-AzureRmAccount
없이 실행되는 경우 cmdlet은 현재 컨텍스트에서 사용자 또는 서비스 주체와 연결된 모든 자격 증명 및 컨텍스트를 제거합니다. 사용자 이름, 서비스 주체 이름 또는 컨텍스트를 전달하여 특정 보안 주체를 대상으로 지정할 수 있습니다.
Disconnect-AzureRmAccount user1@contoso.org
컨텍스트 범위 사용
경우에 따라 다른 세션에 영향을 주지 않고 PowerShell 세션에서 컨텍스트를 선택, 변경 또는 제거할 수도 있습니다. 컨텍스트 cmdlet의 기본 동작을 변경하려면 매개 변수를 Scope
사용합니다. 범위는 Process
현재 세션에만 적용되도록 하여 기본 동작을 재정의합니다. 반대로 CurrentUser
범위는 현재 세션이 아닌 모든 세션의 컨텍스트를 변경합니다.
예를 들어 다른 창에 영향을 주지 않고 현재 PowerShell 세션의 기본 컨텍스트를 변경하거나 다음에 세션을 열 때 사용되는 컨텍스트를 변경하려면 다음을 사용합니다.
Select-AzureRmContext Contoso1 -Scope Process
컨텍스트 자동 저장 설정을 기억하는 방법
컨텍스트 자동 저장 설정은 사용자 Azure PowerShell 디렉터리(%AppData%\Roaming\Windows Azure PowerShell
)에 저장됩니다. 일부 종류의 컴퓨터 계정에는 이 디렉터리에 대한 액세스 권한이 없을 수 있습니다. 이러한 시나리오의 경우 환경 변수를 사용할 수 있습니다.
$env:AzureRmContextAutoSave=$true
설정 $true
하면 컨텍스트가 자동으로 저장됩니다. 설정 $false
하면 컨텍스트가 저장되지 않습니다.
AzureRM.Profile 모듈의 변경 내용
컨텍스트 관리를 위한 새 cmdlet
- Enable-AzureRmContextAutosave - Powershell 세션 간에 컨텍스트를 저장할 수 있습니다. 모든 변경 내용은 전역 컨텍스트를 변경합니다.
- Disable-AzureRmContextAutosave - 컨텍스트 자동 저장을 해제합니다. 각 새 PowerShell 세션은 다시 로그인해야 합니다.
- Select-AzureRmContext - 기본값으로 컨텍스트를 선택합니다. 모든 cmdlet은 인증을 위해 이 컨텍스트의 자격 증명을 사용합니다.
- Disconnect-AzureRmAccount - 계정과 연결된 모든 자격 증명 및 컨텍스트를 제거합니다.
- Remove-AzureRmContext - 명명된 컨텍스트를 제거합니다.
- Rename-AzureRmContext - 기존 컨텍스트의 이름을 바꿉니다.
기존 프로필 cmdlet에 대한 변경 내용
- Add-AzureRmAccount - 프로세스 또는 현재 사용자에 대한 로그인 범위 지정을 허용합니다 . 인증 후 기본 컨텍스트의 이름을 지정할 수 있습니다.
- Import-AzureRmContext - 프로세스 또는 현재 사용자에 대한 로그인 범위 지정을 허용합니다.
- Set-AzureRmContext - 기존 명명된 컨텍스트를 선택하고 프로세스 또는 현재 사용자에 대한 범위 변경을 허용합니다.