Azure Automation에서 자격 증명 관리

Automation 자격 증명 자산은 사용자 이름과 비밀번호 등의 보안 자격 증명이 포함된 개체를 보유합니다. Runbook 및 DSC 구성에서는 인증을 위해 PSCredential 개체를 수락하는 cmdlet을 사용합니다. 또는 인증이 필요한 일부 애플리케이션이나 서비스에 제공할 PSCredential 개체의 사용자 이름과 암호를 추출할 수 있습니다.

참고 항목

Azure Automation의 보안 자산으로는 자격 증명, 인증서, 연결, 암호화된 변수가 있습니다. 이러한 자산은 각 Automation 계정에 대해 생성되는 고유 키를 사용하여 암호화되고 Azure Automation에 저장됩니다. Azure Automation은 시스템 관리 키 자격 증명 모음에 키를 저장합니다. 보안 자산을 저장하기 전에 Automation이 Key Vault에서 키를 로드한 다음, 자산을 암호화하는 데 사용합니다.

참고 항목

개인 데이터의 보기 또는 삭제에 대한 자세한 내용은 GDPR에 대한 Azure 데이터 주체 요청을 참조하세요. GDPR에 대한 자세한 내용은 Microsoft Trust Center의 GDPR 섹션Service Trust 포털의 GDPR 섹션을 참조하세요.

자격 증명에 액세스하는 데 사용되는 PowerShell cmdlet

다음 표에 나와 있는 cmdlet은 PowerShell을 사용하여 Automation 자격 증명을 만들고 관리합니다. Az 모듈의 일부로 제공됩니다.

cmdlet 설명
Get-AzAutomationCredential 자격 증명에 대한 메타데이터를 포함하는 CredentialInfo 개체를 검색합니다. Cmdlet은 PSCredential 개체 자체를 검색하지 않습니다.
New-AzAutomationCredential 새 Automation 자격 증명을 만듭니다.
Remove-AzAutomationCredential Automation 자격 증명을 제거합니다.
Set-AzAutomationCredential 기존 Automation 자격 증명에 대한 속성을 설정합니다.

자격 증명에 액세스하는 데 사용되는 기타 cmdlet

다음 표의 cmdlet은 Runbook 및 DSC 구성에서 자격 증명에 액세스하는 데 사용됩니다.

cmdlet 설명
Get-AutomationPSCredential Runbook 또는 DSC 구성에 사용하는 PSCredential 개체를 가져옵니다. Get-AzAutomationCredential cmdlet은 자격 증명 정보만 검색하기 때문에 대개 이 내부 cmdlet을 대신 사용합니다. 이 정보는 일반적으로 다른 cmdlet에 전달하는 데 유용하지 않습니다.
Get-Credential 사용자 이름 및 암호에 대한 프롬프트로 자격 증명을 가져옵니다. 이 cmdlet은 기본 Microsoft.PowerShell.Security 모듈의 일부입니다. 기본 모듈을 참조하세요.
New-AzureAutomationCredential 자격 증명을 만듭니다. 이 cmdlet은 기본 Azure 모듈의 일부입니다. 기본 모듈을 참조하세요.

코드에서 PSCredential 개체를 검색하려면 Orchestrator.AssetManagement.Cmdlets 모듈을 가져와야 합니다. 자세한 내용은 Azure Automation에서 모듈 관리를 참조하세요.

Import-Module Orchestrator.AssetManagement.Cmdlets -ErrorAction SilentlyContinue

참고 항목

Get-AutomationPSCredentialName 매개 변수에는 변수를 사용하면 안 됩니다. 변수를 사용하면 디자인 타임에 Runbook 또는 DSC 구성과 자격 증명 자산 간의 종속성 검색이 복잡해질 수 있습니다.

자격 증명에 액세스하는 Python 함수

다음 표의 함수는 Python 2 및 3 Runbook의 자격 증명에 액세스하는 데 사용됩니다. Python 3 Runbook은 현재 미리 보기로 제공됩니다.

함수 설명
automationassets.get_automation_credential 자격 증명 자산에 대한 정보를 검색합니다.

참고 항목

자산 함수에 액세스하려면 Python Runbook 맨 위에서 automationassets 모듈을 가져옵니다.

새 자격 증명 자산 만들기

Microsoft Azure Portal 또는 Windows PowerShell을 사용하여 새 자격 증명 자산을 만들 수 있습니다.

Microsoft Azure Portal을 사용하여 새 자격 증명 자산 만들기

  1. Automation 계정의 왼쪽 창에서 공유 리소스 아래에 있는 자격 증명을 선택합니다.

  2. 자격 증명 페이지에서 자격 증명 추가를 선택합니다.

  3. 새 자격 증명 창에서 이름 지정 표준에 따라 적절한 자격 증명 이름을 입력합니다.

  4. 사용자 이름 필드에 액세스 ID를 입력합니다.

  5. 두 암호 필드 모두에 비밀 액세스 키를 입력합니다.

    Create new credential

  6. 다단계 인증 확인란이 선택되어 있으면 선택을 취소합니다.

  7. 만들기 를 클릭하여 새 자격 증명 자산을 저장합니다.

참고 항목

다단계 인증을 사용하는 사용자 계정은 Azure Automation에서 지원되지 않습니다.

Windows PowerShell을 사용하여 새 자격 증명 자산 만들기

다음 예제에서는 새 Automation 자격 증명 자산을 만드는 방법을 보여줍니다. 먼저 이름 및 암호를 사용하여 PSCredential 개체를 만든 다음, 이를 사용하여 자격 증명 자산을 만듭니다. 대신 Get-Credential cmdlet을 사용하여 사용자에게 이름과 암호를 입력하라는 메시지를 표시할 수 있습니다.

$user = "MyDomain\MyUser"
$pw = ConvertTo-SecureString "PassWord!" -AsPlainText -Force
$cred = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $user, $pw
New-AzureAutomationCredential -AutomationAccountName "MyAutomationAccount" -Name "MyCredential" -Value $cred

자격 증명 자산 가져오기

Runbook 또는 DSC 구성은 내부 Get-AutomationPSCredential cmdlet을 사용하여 자격 증명 자산을 검색합니다. 이 cmdlet은 자격 증명이 필요한 cmdlet에 사용할 수 있는 PSCredential 개체를 가져옵니다. 자격 증명 개체의 속성을 검색하여 개별적으로 사용할 수도 있습니다. 개체에는 사용자 이름과 보안 암호에 대한 속성이 있습니다.

참고 항목

Get-AzAutomationCredential cmdlet은 인증에 사용할 수 있는 PSCredential 개체를 검색하지 않습니다. 자격 증명에 대한 정보만 제공합니다. Runbook에서 자격 증명을 사용해야 하는 경우 Get-AutomationPSCredential을 사용하여 PSCredential 개체로 검색해야 합니다.

또는 GetNetworkCredential 메서드를 사용하여 보안되지 않은 버전의 암호를 나타내는 NetworkCredential 개체를 검색할 수 있습니다.

텍스트 Runbook 예

다음 예제에서는 Runbook에서 PowerShell 자격 증명을 사용하는 방법을 보여줍니다. 자격 증명을 검색하고 해당 사용자 이름과 암호를 변수에 할당합니다.

$myCredential = Get-AutomationPSCredential -Name 'MyCredential'
$userName = $myCredential.UserName
$securePassword = $myCredential.Password
$password = $myCredential.GetNetworkCredential().Password

또한 자격 증명을 사용하여 먼저 관리 ID와 연결한 후 Connect-AzAccount를 사용하여 Azure에 인증할 수 있습니다. 이 예제에서는 시스템이 할당한 관리 ID를 사용합니다.

# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process

# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context

# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext

# Get credential
$myCred = Get-AutomationPSCredential -Name "MyCredential"
$userName = $myCred.UserName
$securePassword = $myCred.Password
$password = $myCred.GetNetworkCredential().Password

$myPsCred = New-Object System.Management.Automation.PSCredential ($userName,$securePassword)

# Connect to Azure with credential
$AzureContext = (Connect-AzAccount -Credential $myPsCred -TenantId $AzureContext.Subscription.TenantId).context

# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
    -TenantId $AzureContext.Subscription.TenantId `
    -DefaultProfile $AzureContext

그래픽 Runbook 예제

그래픽 편집기의 라이브러리 창에서 자격 증명을 마우스 오른쪽 단추로 클릭하고 캔버스에 추가를 선택하여 내부 Get-AutomationPSCredential cmdlet에 대한 활동을 그래픽 Runbook에 추가할 수 있습니다.

Add credential cmdlet to canvas

다음 그림에서는 그래픽 Runbook에서 자격 증명을 사용하는 예제를 보여 줍니다. 이 경우 자격 증명은 Azure Automation에서 Microsoft Entra ID를 사용하여 Azure에 인증에 설명된 대로 Runbook에 대한 인증을 Azure 리소스에 제공합니다. 첫 번째 활동에서는 Azure 구독에 액세스할 수 있는 자격 증명을 검색합니다. 그런 다음, 계정 연결 활동에서 이 자격 증명을 사용하여 이후의 모든 활동에 대한 인증을 제공합니다. Get-AutomationPSCredential에는 단일 개체가 필요하기 때문에 파이프라인 링크가 여기에 사용됩니다.

Credential workflow with pipeline link example

DSC 구성에서 자격 증명 사용

Azure Automation의 DSC 구성은 Get-AutomationPSCredential을 사용하여 자격 증명 자산에서 작동할 수 있지만 매개 변수를 통해 자격 증명 자산을 전달할 수도 있습니다. 자세한 내용은 Azure Automation DSC에서 구성을 컴파일을 참조하세요.

다음 단계