管理 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 入口網站 建立新的認證資產
從您的自動化帳戶,在左側窗格中,選取 [共用資源 ] 下的 [認證 ]。
在 [ 認證] 頁面上,選取 [新增認證 ]。
在 [新增認證] 窗格中,輸入您的命名標準之後,輸入適當的認證名稱。
在 [ 使用者名稱 ] 欄位中輸入您的存取識別碼。
針對這兩個密碼欄位,輸入您的秘密存取金鑰。
如果核取 [多重要素驗證] 方塊,請取消核取。
按一下 [建立 ] 以儲存新的認證資產。
注意
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。
下圖顯示在圖形化 Runbook 中使用認證的範例。 在此情況下,認證會提供 Runbook 對 Azure 資源的驗證,如在 Azure 自動化 中使用 Microsoft Entra ID 向 Azure 進行驗證中所述 。 第一個活動會擷取可存取 Azure 訂用帳戶的認證。 帳戶連線活動接著會使用此認證來為之後的任何活動提供驗證。 因為預期有單一物件,因此會在這裡 Get-AutomationPSCredential
使用管線連結 。
在 DSC 設定中使用認證
雖然 Azure 自動化 中的 DSC 組態可以使用 認證資產 Get-AutomationPSCredential
,但它們也可以透過參數傳遞認證資產。 如需詳細資訊,請參閱 編譯 Azure 自動化 DSC 中的組態。
下一步
- 若要深入瞭解用來存取憑證的 Cmdlet,請參閱 管理Azure 自動化 中的模組。
- 如需 Runbook 的一般資訊,請參閱 runbook Azure 自動化中的 Runbook 執行。
- 如需 DSC 組態的詳細資訊,請參閱 Azure 自動化 狀態設定概觀 。