管理 Azure 自動化中的認證

自動化認證資產將保存包含安全性認證的物件,例如使用者名稱和密碼。 Runbook 和 DSC 組態會使用接受 PSCredential 物件進行驗證的 Cmdlet。 或者,其可以解壓縮 PSCredential 物件的使用者名稱和密碼,以提供給某些需要驗證的應用程式或服務。

注意

Azure 自動化中的安全資產包括認證、憑證、連接和加密的變數。 這些資產都會經過加密,並使用為每個自動化帳戶產生的唯一金鑰,儲存在 Azure 自動化中。 Azure 自動化會將金鑰儲存在系統管理的 Key Vault 中。 在儲存安全資產之前,自動化會從 Key Vault 載入金鑰,然後將其用來加密資產。

注意

如需檢視或刪除個人資料的詳細資訊,請參閱 適用於 GDPR 的 Azure 資料主體要求。 如需 GDPR 的詳細資訊,請參閱 Microsoft 信任中心的 GDPR 區段服務信任入口網站的 GDPR 區段

用來存取認證的 PowerShell Cmdlet

下表中的 Cmdlet 會使用 PowerShell 來建立及管理自動化認證。 其會隨附於 Az 模組。

指令程式 描述
Get-AzAutomationCredential 擷取包含認證相關中繼資料的 CredentialInfo 物件。 Cmdlet 不會擷取 PSCredential 物件本身。
New-AzAutomationCredential 建立新的自動化認證。
Remove-AzAutomationCredential 移除自動化認證。
Set-AzAutomationCredential 設定現有自動化認證的屬性。

用來存取認證的其他 Cmdlet

下表中的 Cmdlet 用來存取您 Runbook 和 DSC 組態中的認證。

指令程式 描述
Get-AutomationPSCredential 取得要在 Runbook 或 DSC 組態中使用的 PSCredential 物件。 最常見的情況是,您應該使用此內部 Cmdlet 而不是 Get-AzAutomationCredential Cmdlet,因為後者只會擷取認證資訊。 這項資訊傳遞給另一個 Cmdlet 通常沒有幫助。
Get-Credential 取得具有使用者名稱和密碼提示的認證。 此 Cmdlet 是預設 Microsoft.PowerShell.Security 模組的一部分。 請參閱預設模組
New-AzureAutomationCredential 建立認證資產。 此 Cmdlet 是預設 Azure 模組的一部分。 請參閱預設模組

若要在程式碼中擷取 PSCredential 物件,您必須匯入 Orchestrator.AssetManagement.Cmdlets 模組。 如需詳細資訊,請參閱在 Azure 自動化中管理模組

Import-Module Orchestrator.AssetManagement.Cmdlets -ErrorAction SilentlyContinue

注意

您應該避免在 Get-AutomationPSCredentialName 參數中使用變數。 其使用可能會在設計階段將 Runbook 或 DSC 組態與認證資產之間的相依性探索變得複雜。

存取認證的 Python 函式

下表中的函式用於存取 Pytho 2 和 3 Runbook 中的認證。 Python 3 Runbook 目前為預覽狀態。

函式 描述
automationassets.get_automation_credential 擷取認證資產的相關資訊。

注意

在 Python Runbook 的頂端匯入 automationassets 模組,才能存取資產函式。

建立新的認證資產

您可以使用 Azure 入口網站或使用 Windows PowerShell 來建立新的認證資產。

使用 Azure 入口網站建立新的認證資產

  1. 從您的自動化帳戶,在左側窗格中,選取 [共用資源] 下的 [認證]

  2. 在 [認證] 頁面上,選取 [新增認證]

  3. 在 [新增認證] 窗格中,按照您的命名標準輸入適當的認證名稱。

  4. 在 [使用者名稱] 欄位中輸入您的存取識別碼。

  5. 在兩個 [密碼] 欄位中,輸入您的祕密存取金鑰。

    Create new credential

  6. 若已核取 [多重要素驗證] 方塊,請將其取消選取。

  7. 按一下 [建立] 以儲存新的憑證資產。

注意

「Azure 自動化」不支援使用多重要素驗證的使用者帳戶。

使用 Windows PowerShell 建立新的認證資產

下列範例示範如何建立新的自動化認證資產。 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 會取得 PSCredential 物件,可供您搭配需要認證的 Cmdlet 使用。 您也可以擷取要個別使用的認證物件的屬性。 物件具有使用者名稱和安全密碼的屬性。

注意

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

您也可以先使用受控識別進行連線之後,再使用 Connect-AzAccount 向 Azure 進行認證驗證。 此範例使用系統指派的受控識別

# 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 資源提供 Runbook 的驗證,如在 Azure 自動化中使用 Microsoft Entra ID 對 Azure 進行驗證 (部分機器翻譯) 中所述。 第一個活動會擷取可存取 Azure 訂用帳戶的認證。 接著,帳戶連線活動會使用這個認證為隨後的任何活動提供驗證。 在此處使用管線連結,因為 Get-AutomationPSCredential 預期的是單一物件。

Credential workflow with pipeline link example

在 DSC 組態中使用認證

雖然 Azure 自動化中的 DSC 組態可以使用 Get-AutomationPSCredential 來處理認證資產,但也可以透過參數傳遞認證資產。 如需詳細資訊,請參閱 編譯 Azure Automation DSC 中的設定

下一步