管理 Azure 自動化中的認證

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

注意

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

注意

如需檢視或刪除個人資料的相關資訊,請參閱 GDPR 的 Azure 資料主體要求。 如需 GDPR 的詳細資訊,請參閱 服務信任入口 網站的 Microsoft 信任中心和 GDPR 一節的 GDPR 一節。

用來存取認證的 PowerShell Cmdlet

下表中的 Cmdlet 會使用 PowerShell 建立和管理自動化認證。 它們會隨附于 Az 模組中。

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

用來存取認證的其他 Cmdlet

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

Cmdlet 描述
Get-AutomationPSCredential PSCredential取得要用於 Runbook 或 DSC 組態的物件。 通常,您應該使用此 內部 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-AutomationPSCredential 參數中使用 Name 變數。 其使用可能會使在設計階段探索 Runbook 或 DSC 組態和認證資產之間的相依性複雜化。

存取認證的 Python 函式

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

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

注意

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

建立新的認證資產

您可以使用 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 使用。 您也可以擷取認證物件的屬性,以個別使用。 物件具有使用者名稱和安全密碼的屬性。

注意

Cmdlet Get-AzAutomationCredential 不會擷取 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

您也可以在先 使用受控識別 連線之後,使用 連線-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 中使用認證的範例。 在此情況下,認證會提供 Runbook 對 Azure 資源的驗證,如在 Azure 自動化 中使用 Microsoft Entra ID 向 Azure 進行驗證中所述 。 第一個活動會擷取可存取 Azure 訂用帳戶的認證。 帳戶連線活動接著會使用此認證來為之後的任何活動提供驗證。 因為預期有單一物件,因此會在這裡 Get-AutomationPSCredential 使用管線連結

Credential workflow with pipeline link example

在 DSC 設定中使用認證

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

下一步