기존 실행 계정에서 관리 ID로 마이그레이션

Important

클래식 실행 계정을 포함한 Azure Automation 실행 계정은 2023년 9월 30일에 사용 중지되었으며 관리 ID로 대체되었습니다. 더 이상 Azure Portal을 통해 실행 계정을 만들거나 갱신할 수 없습니다.

실행 계정 만들기 및 인증서 갱신의 마이그레이션 주기 및 지원 타임라인에 대한 자세한 내용은 FAQ를 참조하세요.

Azure Automation의 실행 계정은 Azure Resource Manager 또는 클래식 배포 모델을 통해 배포된 리소스를 관리하기 위한 인증을 제공합니다. 실행 계정을 만들 때마다 Microsoft Entra 애플리케이션이 등록되고 자체 서명된 인증서가 생성됩니다. 인증서는 1개월 동안 유효합니다. 만료되기 전에 매달 인증서를 갱신하면 Automation 계정이 계속 작동하지만 오버헤드가 추가됩니다.

이제 Automation 계정을 만드는 경우 기본 옵션인 관리 ID를 사용하도록 Automation 계정을 구성할 수 있습니다. 이 기능을 통해 Automation 계정은 자격 증명을 교환할 필요 없이 Azure 리소스에 인증할 수 있습니다. 관리 ID는 인증서를 갱신하거나 서비스 주체를 관리하는 오버헤드를 제거합니다.

관리 ID는 시스템 할당 또는 사용자 할당일 수 있습니다. 새 Automation 계정이 만들어지면 시스템 할당 관리 ID가 사용하도록 설정됩니다.

필수 조건

실행 계정 또는 클래식 실행 계정에서 관리 ID로 마이그레이션하기 전에 다음을 수행합니다.

  1. 시스템 할당 또는 사용자 할당 관리 ID를 만들거나 두 유형을 모두 만듭니다. 이들 간의 차이점에 대해 자세히 알아보려면 관리 ID 형식을 참조하세요.

    참고 항목

    • 사용자가 할당한 ID는 클라우드 작업에서만 지원됩니다. Hybrid Runbook Worker에서는 Automation 계정의 사용자 관리 ID를 사용할 수 없습니다. 하이브리드 작업을 사용하려면 시스템 할당 ID를 만들어야 합니다.
    • Hybrid Runbook Worker 스크립트에서 관리 ID를 사용하는 두 가지 방법, 즉 Automation 계정에 대한 시스템이 할당한 관리 ID 또는 Hybrid Runbook Worker로 실행되는 Azure VM 계정에 대한 VM(가상 머신) 관리 ID가 있습니다.
    • VM의 사용자가 할당한 관리 ID 및 VM의 시스템이 할당한 관리 ID는 Automation 계정의 관리 ID로 구성된 Automation 계정에서 작동하지 않습니다. Automation 계정의 관리 ID를 사용하도록 설정하면 VM 관리 ID가 아닌 Automation 계정의 시스템이 할당한 관리 ID만 사용할 수 있습니다. 자세한 내용은 관리 ID를 통한 Runbook 인증 사용을 참조하세요.
  2. 실행 계정과 일치하는 Azure 리소스에 액세스하려면 관리 ID에 동일한 역할을 할당합니다. 이 스크립트를 사용하여 Automation 계정에서 시스템 할당 ID를 사용하도록 설정하고, Azure Automation 실행 계정에 있는 동일한 권한 집합을 Automation 계정의 시스템 할당 ID에 할당합니다.

    예를 들어 Automation 계정이 Azure VM을 시작하거나 중지하는 데만 필요한 경우 실행 계정에 할당된 권한은 VM을 시작하거나 중지하는 데만 필요합니다. 마찬가지로 Runbook에서 Azure Blob Storage로부터 읽는 경우 읽기 전용 권한을 할당합니다. 자세한 내용은 Azure Automation 보안 지침을 참조하세요.

  3. 클래식 실행 계정을 사용하는 경우 클래식 배포 모델을 통해 배포된 리소스를 Azure Resource Manager로 마이그레이션했는지 확인합니다.

  4. 실행 계정을 사용 중인 Automation 계정을 찾으려면 이 스크립트를 사용합니다. Azure Automation 계정에 실행 계정이 포함되어 있으면 기본 제공 기여자 역할이 기본적으로 할당됩니다. 스크립트를 사용하여 Azure Automation 실행 계정을 확인하고 해당 역할 할당이 기본 역할인지 또는 다른 역할 정의로 변경되었는지 확인할 수 있습니다.

  5. 이 스크립트를 사용하여 Automation 계정의 모든 Runbook이 실행 계정을 사용하고 있는지 확인합니다.

Automation 실행 계정에서 관리 ID로 마이그레이션

Runbook 인증을 위해 Automation 실행 계정 또는 클래식 실행 계정에서 관리 ID로 마이그레이션하려면 다음 단계를 수행합니다.

  1. 관리 ID를 사용하도록 Runbook 코드를 변경합니다.

    프로덕션 Runbook의 복사본을 만들어 Runbook이 예상대로 작동하는지 확인하기 위해 관리 ID를 테스트하는 것이 좋습니다. 관리 ID를 사용하여 인증하도록 테스트 Runbook 코드를 업데이트합니다. 이 방법을 사용하면 프로덕션 Runbook에서 AzureRunAsConnection을 재정의하지 않고 기존 Automation 인스턴스를 중단하지 않습니다. Runbook 코드가 관리 ID를 통해 예상대로 실행된다고 확인되면 관리 ID를 사용하도록 프로덕션 Runbook을 업데이트합니다.

    관리 ID 지원의 경우 Connect-AzAccount cmdlet을 사용합니다. 이 cmdlet에 대한 자세한 내용은 PowerShell 참조에서 Connect-AzAccount를 참조하세요.

    • Az 모듈을 사용하는 경우 Azure PowerShell 모듈 업데이트 문서의 단계에 따라 최신 버전으로 업데이트합니다.
    • AzureRM 모듈을 사용하는 경우 AzureRM.Profile을 최신 버전으로 업데이트하고 Add-AzureRMAccount cmdlet을 Connect-AzureRMAccount –Identity로 바꿉니다.

    관리 ID를 사용하기 전에 필요한 Runbook 코드의 변경 내용을 이해하려면 샘플 스크립트를 사용합니다.

  2. 관리 ID를 사용하여 Runbook이 성공적으로 실행되고 있다고 확인되는 경우 다른 Runbook에서 해당 계정을 사용하지 않으면 실행 계정 계정을 안전하게 삭제할 수 있습니다.

샘플 스크립트

다음 Runbook 스크립트 예제에서는 실행 계정(서비스 주체) 및 관리 ID를 사용하여 Resource Manager 리소스를 가져옵니다. Runbook이 리소스에 대해 인증을 받는 Runbook의 시작 부분에서 Runbook 코드의 차이점을 확인할 수 있습니다.

참고 항목

적절한 RBAC 권한을 이 Automation 계정의 시스템 ID에 사용하도록 설정합니다. 그렇지 않으면 Runbook이 실패할 수 있습니다.

try
{
    "Logging in to Azure..."
    Connect-AzAccount -Identity
}
catch {
    Write-Error -Message $_.Exception
    throw $_.Exception
}

#Get all Resource Manager resources from all resource groups
$ResourceGroups = Get-AzResourceGroup

foreach ($ResourceGroup in $ResourceGroups)
{    
    Write-Output ("Showing resources in resource group " + $ResourceGroup.ResourceGroupName)
    $Resources = Get-AzResource -ResourceGroupName $ResourceGroup.ResourceGroupName
    foreach ($Resource in $Resources)
    {
        Write-Output ($Resource.Name + " of type " +  $Resource.ResourceType)
    }
    Write-Output ("")
}

사용자 할당 ID의 클라이언트 ID 보기

  1. Automation 계정의 계정 설정에서 ID를 선택합니다.

  2. 사용자 할당 탭에서 사용자 할당 ID를 선택합니다.

    Screenshot that shows the navigation path to view client ID.

  3. 개요>필수 항목으로 이동하여 클라이언트 ID를 확인합니다.

    Screenshot that shows how to view a client ID.

그래픽 Runbook

실행 계정 계정이 그래픽 Runbook에서 사용되는지 확인

  1. Runbook 내의 각 작업을 확인하여 로그온 cmdlet 또는 별칭을 호출할 때(예: Add-AzRmAccount/Connect-AzRmAccount/Add-AzAccount/Connect-AzAccount) 실행 계정 계정을 사용하는지 확인합니다.

    Screenshot that illustrates checking if a graphical runbook uses a Run As account.

  2. cmdlet에서 사용하는 매개 변수를 검사합니다.

    Screenshot that shows examining the parameters used by a cmdlet.

    실행 계정에서 사용하기 위해 cmdlet은 ApplicationId로 설정된 ServicePrinicipalCertificate 매개 변수를 사용합니다. CertificateThumbprintRunAsAccountConnection에서 제공됩니다.

    Screenshot that shows parameter sets.

관리 ID를 사용하도록 그래픽 Runbook 편집

관리 ID를 테스트하여 그래픽 Runbook이 예상대로 작동하는지 확인해야 합니다. 관리 ID를 사용할 프로덕션 Runbook의 복사본을 만든 다음, 관리 ID를 사용하여 인증하도록 테스트 그래픽 Runbook 코드를 업데이트합니다. Connect-AzAccount cmdlet을 추가하여 이 기능을 그래픽 Runbook에 추가할 수 있습니다.

다음 단계에는 실행 계정을 사용하는 그래픽 Runbook에서 관리 ID를 사용할 수 있는 방법을 보여 주는 예제가 포함되어 있습니다.

  1. Azure Portal에 로그인합니다.

  2. Automation 계정을 연 다음, 프로세스 자동화>Runbook을 선택합니다.

  3. Runbook을 선택합니다. 예를 들어 목록에서 Azure V2 VM 시작 Runbook을 선택한 다음, 편집을 선택하거나 갤러리 찾아보기로 가서 Azure V2 VM 시작을 선택합니다.

    Screenshot of editing a graphical runbook.

  4. AzureRunAsConnection을 사용하는 실행 계정 연결과 내부적으로 PowerShell Get-AutomationConnection cmdlet을 사용하는 연결 자산을 Connect-AzAccount cmdlet으로 바꿉니다.

  5. 삭제를 선택하여 Get Run As ConnectionConnect to Azure 활동을 삭제합니다.

    Screenshot to connect to the Azure activities.

  6. 왼쪽 패널의 Runbook 컨트롤 아래에서 코드를 선택한 다음 캔버스에 추가를 선택합니다.

    Screenshot to select code and add it to the canvas.

  7. 코드 작업을 편집하고, 적절한 레이블 이름을 할당하고, 작성자 작업 논리를 선택합니다.

    Screenshot to edit code activity.

  8. 코드 편집기 페이지에서 다음 PowerShell 코드를 입력하고 확인을 선택합니다.

    try 
    { 
       Write-Output ("Logging in to Azure...") 
       Connect-AzAccount -Identity 
    } 
    catch { 
       Write-Error -Message $_.Exception 
       throw $_.Exception 
    } 
    
  9. 이전에 Azure에 연결에 의해 연결된 작업에 새 작업을 연결하고 Runbook을 저장합니다.

    Screenshot to connect new activity to activities.

예를 들어 Runbook 갤러리의 Azure V2 VM 시작 Runbook에서 Get Run As ConnectionConnect to Azure 작업을 위에 설명된 대로 Connect-AzAccount cmdlet을 사용하는 코드 작업으로 바꿔야 합니다. 자세한 내용은 Automation 계정을 사용하여 만든 AzureAutomationTutorialWithIdentityGraphical이라는 샘플 Runbook을 참조하세요.

참고 항목

AzureRM PowerShell 모듈은 2024년 2월 29일에 사용 중지됩니다. 그래픽 Runbook에서 AzureRM PowerShell 모듈을 사용하는 경우 Az PowerShell 모듈을 사용하도록 업그레이드해야 합니다. 자세히 알아보기.

다음 단계