管理 Azure 自動化中的認證
自動化認證資產將保存包含安全性認證的物件,例如使用者名稱和密碼。 Runbook 和 DSC 組態會使用接受 PSCredential 物件進行驗證的 Cmdlet。 或者,其可以解壓縮 PSCredential
物件的使用者名稱和密碼,以提供給某些需要驗證的應用程式或服務。
注意
Azure 自動化中的安全資產包括認證、憑證、連接和加密的變數。 這些資產都會經過加密,並使用為每個自動化帳戶產生的唯一金鑰,儲存在 Azure 自動化中。 Azure 自動化會將金鑰儲存在系統管理的 Key Vault 中。 在儲存安全資產之前,自動化會從 Key Vault 載入金鑰,然後將其用來加密資產。
注意
如需檢視或刪除個人資料的詳細資訊,請參閱GDPR的一般數據主體要求、GDPR的 Azure 數據主體要求或 GDPR 的 Windows 數據主體要求,視您的特定區域和需求而定。 如需 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-AutomationPSCredential
的 Name
參數中使用變數。 其使用可能會在設計階段將 Runbook 或 DSC 組態與認證資產之間的相依性探索變得複雜。
存取認證的 Python 函式
下表中的函式用於存取 Pytho 2 和 3 Runbook 中的認證。 Python 3 Runbook 目前為預覽狀態。
函式 | 描述 |
---|---|
automationassets.get_automation_credential |
擷取認證資產的相關資訊。 |
注意
在 Python Runbook 的頂端匯入 automationassets
模組,才能存取資產函式。
建立新的認證資產
您可以使用 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 使用。 您也可以擷取要個別使用的認證物件的屬性。 物件具有使用者名稱和安全密碼的屬性。
注意
Get-AzAutomationCredential
Cmdlet 不會擷取可用於驗證的 PSCredential
物件。 其只提供有關認證的資訊。 如果您需要在 Runbook 中使用認證,則必須使用 Get-AutomationPSCredential
將其擷取做為 PSCredential
物件。
或者,您可以使用 GetNetworkCredential 方法來擷取代表不安全密碼版本的 NetworkCredential 物件。
文字式 Runbook 範例
- PowerShell
- Python 2
- Python 3 \(英文\)
下列範例示範如何在 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。
下圖顯示在圖形化 Runbook 中使用認證的範例。 在此情況下,認證會向 Azure 資源提供 Runbook 的驗證,如在 Azure 自動化中使用 Microsoft Entra ID 對 Azure 進行驗證 (部分機器翻譯) 中所述。 第一個活動會擷取可存取 Azure 訂用帳戶的認證。 接著,帳戶連線活動會使用這個認證為隨後的任何活動提供驗證。 在此處使用管線連結,因為 Get-AutomationPSCredential
預期的是單一物件。
在 DSC 組態中使用認證
雖然 Azure 自動化中的 DSC 組態可以使用 Get-AutomationPSCredential
來處理認證資產,但也可以透過參數傳遞認證資產。 如需詳細資訊,請參閱 編譯 Azure Automation DSC 中的設定。
下一步
- 若要深入了解用來存取憑證的 Cmdlet,請參閱管理 Azure 自動化中的模組。
- 如需 Runbook 的一般資訊,請參閱 Azure 自動化中的 Runbook 執行。
- 如需 DSC 設定的詳細資料,請參閱 Azure 自動化狀態設定概觀。