在 Azure Stack Hub 中使用具特殊許可權的端點
身為 Azure Stack Hub 操作員,您應該針對大部分的日常管理工作使用系統管理員入口網站、PowerShell 或 Azure Resource Manager API。 不過,針對一些較不常見的作業,您必須使用 Privileged Endpoint (PEP)。 PEP 是預先設定的遠端 PowerShell 控制台,可提供您足夠的功能來協助您執行必要的工作。 端點會使用 PowerShell JEA (Just Enough Administration) 只公開一組受限制的 Cmdlet。 若要存取 PEP 並叫用受限制的 Cmdlet 集合,則會使用低許可權帳戶。 不需要系統管理員帳戶。 基於其他安全性,不允許編寫腳本。
您可以使用 PEP 來執行下列工作:
- 低階工作,例如收集診斷記錄 。
- 許多整合式系統的部署後數據中心整合工作,例如在部署後新增域名系統 (DNS) 轉寄站、設定 Microsoft Graph 整合、Active Directory 同盟服務 (AD FS) 整合、憑證輪替等等。
- 與支持人員合作,以獲得整合系統的高階暫時存取權,方便進行深入問題排除。
PEP 會記錄您在 PowerShell 工作階段中執行的每個動作(及其對應的輸出)。 這提供作業的完整透明度和完整的稽核。 您可以保留這些記錄檔以供日後稽核。
注意
在 Azure Stack 開發工具套件 (ASDK) 中,您可以直接從開發工具包主機上的 PowerShell 工作階段執行 PEP 中提供的一些命令。 不過,您可能想要使用 PEP 來測試某些作業,例如記錄收集,因為這是在整合系統環境中執行特定作業的唯一方法。
注意
您也可以使用 OAW(操作員存取工作站)來存取特殊權限端點(PEP)、系統管理員入口網站,用於支援案例,以及 Azure Stack Hub GitHub 工具。 如需詳細資訊,請參閱 Azure Stack Hub 操作員存取工作站。
存取具特殊許可權的端點
您可以透過主機 PEP 的虛擬機 (VM) 上的遠端 PowerShell 會話來存取 PEP。 在 ASDK 中,此 VM 名為 azS-ERCS01。 如果您使用整合式系統,在 VM 內各有三個 PEP 實例(Prefix-ERCS01、Prefix-ERCS02 或 Prefix-ERCS03)在不同的主機上執行,以進行復原。
在針對整合系統開始此程式之前,請確定您可以透過IP位址或透過 DNS 存取 PEP。 在 Azure Stack Hub 的初始部署之後,您只能透過 IP 位址存取 PEP,因為尚未設定 DNS 整合。 OEM 硬體廠商提供名為 AzureStackStampDeploymentInfo JSON 檔案,其中包含 PEP IP 位址。
您也可以在 Azure Stack Hub 系統管理員入口網站中找到 IP 位址。 開啟入口網站;例如,https://adminportal.local.azurestack.external
。 選擇 [區域管理]>[屬性]。
當您執行特殊許可權端點時,您必須將目前的文化特性設定為 en-US
,否則 Test-AzureStack
或 Get-AzureStackLog
等 Cmdlet 將無法如預期般運作。
注意
基於安全性考量,我們要求您僅從運行於硬體生命週期主機上的強化虛擬機,或從例如 特權存取工作站這類專用且安全的電腦連線至 PEP。 硬體生命週期主機的原始組態不得從原始設定修改(包括安裝新軟體),或用來連線到 PEP。
建立信任。
在整合式系統上,從提升許可權的 Windows PowerShell 會話執行下列命令,在硬體生命週期主機或特殊許可權存取工作站上執行的強化 VM 上,將 PEP 新增為受信任的主機:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '<IP Address of Privileged Endpoint>' -Concatenate
如果您執行 ASDK,請登入開發工具套件主機。
在硬體生命週期主機或特殊許可權存取工作站上執行的強化 VM 上,開啟 Windows PowerShell 會話。 執行下列命令,在裝載 PEP 的 VM 上建立遠端會話:
在整合的系統中:
$cred = Get-Credential $pep = New-PSSession -ComputerName <IP_address_of_ERCS> -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US) Enter-PSSession $pep
ComputerName
參數可以是IP位址或裝載 PEP 之其中一個 VM 的 DNS 名稱。注意
驗證 PEP 認證時,Azure Stack Hub 不會進行遠端呼叫。 它依賴本機儲存的 RSA 公鑰來執行此動作。
如果您執行 ASDK:
$cred = Get-Credential $pep = New-PSSession -ComputerName azs-ercs01 -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US) Enter-PSSession $pep
出現提示時,請使用下列認證:
- 使用者名稱:指定 CloudAdmin 帳戶,格式 <Azure Stack Hub 網域>\cloudadmin。
- 密碼:輸入 AzureStackAdmin 網域系統管理員帳戶安裝期間所提供的相同密碼。
注意
如果您無法連線到 ERCS 端點,請使用另一個 ERCS VM IP 位址重試步驟一和兩個。
聯機之後,提示會變更 為 [IP 位址或 ERCS VM 名稱]:P S> 或 [azs-ercs01]:P S>,視環境而定。 從這裡執行
Get-Command
,以檢視可用的 Cmdlet 清單。您可以在 Azure Stack Hub 特權端點參考 中找到 cmdlet 的參考
其中許多 Cmdlet 僅適用於整合系統環境(例如與資料中心整合相關的 Cmdlet)。 在 ASDK 中,已驗證下列 Cmdlet:
- Clear-Host
- Close-PrivilegedEndpoint
- Exit-PSSession
- Get-AzureStackLog
- Get-AzureStackStampInformation
- Get-Command
- Get-FormatData
- Get-Help
- Get-ThirdPartyNotices
- Measure-Object
- New-CloudAdminUser
- Out-Default
- Remove-CloudAdminUser
- Select-Object
- Set-CloudAdminUserPassword
- Test-AzureStack
- Stop-AzureStack
- Get-ClusterLog
如何使用具特殊許可權的端點
如上所述,PEP 是 PowerShell JEA 端點。 在提供強大的安全層時,JEA 端點會限制一些基本的 PowerShell 功能,例如腳本撰寫或自動完成功能。 如果您嘗試任何類型的文稿作業,作業會失敗,並發生錯誤,ScriptsNotAllowed。 此失敗是預期的行為。
例如,若要取得指定 Cmdlet 的參數清單,請執行下列命令:
Get-Command <cmdlet_name> -Syntax
或者,您可以使用 Import-PSSession cmdlet,將所有 PEP cmdlet 匯入本機電腦上的目前會話。 PEP 的 Cmdlet 和函式現在可在本機電腦上使用,並且具有自動完成功能,整體上更加適合腳本編寫。 您也可以執行 Get-Help 模組,以檢閱 Cmdlet 指示。
若要在本機計算機上匯入 PEP 工作階段,請執行下列步驟:
建立信任。
在整合式系統上,從提升權限的 Windows PowerShell 會話執行下列命令,將 PEP 新增為在硬體生命周期主機或特權訪問工作站上運行的安全加固 VM 的受信任主機。
winrm s winrm/config/client '@{TrustedHosts="<IP Address of Privileged Endpoint>"}'
如果您正在執行 ASDK,請登入開發工具套件主機。
在硬體生命週期主機或特殊許可權存取工作站上執行的強化 VM 上,開啟 Windows PowerShell 會話。 執行下列命令,在裝載 PEP 的虛擬機上建立遠端會話:
在整合的系統中:
$cred = Get-Credential $session = New-PSSession -ComputerName <IP_address_of_ERCS> ` -ConfigurationName PrivilegedEndpoint -Credential $cred ` -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
ComputerName
參數可以是IP位址或裝載 PEP 之其中一個 VM 的 DNS 名稱。如果您正在執行 ASDK:
$cred = Get-Credential $session = New-PSSession -ComputerName azs-ercs01 ` -ConfigurationName PrivilegedEndpoint -Credential $cred ` -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
出現提示時,請使用下列認證:
使用者名稱:指定 CloudAdmin 帳戶,格式 <Azure Stack Hub 網域>\cloudadmin。 (針對 ASDK,使用者名稱 azurestack\cloudadmin。
密碼:輸入 AzureStackAdmin 網域系統管理員帳戶安裝期間所提供的相同密碼。
將 PEP 會議記錄匯入到您的本機電腦中:
Import-PSSession $session
現在,您可以在本機 PowerShell 會話中使用 Tab 完成功能,並如常編寫腳本,利用 PEP 的所有功能和 Cmdlet,同時又不會降低 Azure Stack Hub 的安全性。 好好享受吧!
關閉具特殊許可權的端點會話
如先前所述,PEP 會記錄您在PowerShell工作階段中執行的每個動作(及其對應的輸出)。 您必須使用 Close-PrivilegedEndpoint
Cmdlet 來關閉工作階段。 此 Cmdlet 會正確關閉端點,並將記錄檔傳輸至外部檔案共用以供保留。
若要關閉端點工作階段:
建立 PEP 可存取的外部檔案分享。 在開發工具包環境中,您只要在開發工具包主機上建立檔案共用即可。
執行下列 cmdlet:
Close-PrivilegedEndpoint -TranscriptsPathDestination "\\fileshareIP\SharedFolder" -Credential Get-Credential
Cmdlet 會使用下表中的參數:
參數 描述 類型 必填 TranscriptsPathDestination 定義為 「fileshareIP\sharefoldername」 的外部檔案共享路徑 字串 是的 認證 存取檔案共享的認證 SecureString 是的
成功將文字記錄檔傳輸至檔案共享之後,系統會自動從 PEP 中刪除這些記錄檔。
注意
如果您使用 cmdlet Exit-PSSession
或 Exit
關閉 PEP 工作階段,或您只要關閉 PowerShell 控制台,文字記錄就不會傳輸至檔案共用。 他們留在 PEP 中。 下次執行 Close-PrivilegedEndpoint
並包含檔案共用時,來自上一個會話的文字記錄檔也會傳輸。 請勿使用 Exit-PSSession
或 Exit
來關閉 PEP 會話;請改用 Close-PrivilegedEndpoint
。
針對支援場景解鎖高權限端點
在支援案例中,Microsoft 支援工程師可能需要提升特權端點的 PowerShell 會話,以存取 Azure Stack Hub 基礎結構的內部。 此過程有時非正式地稱為「打破玻璃」或「解鎖 PEP」。 PEP 會話提升過程是一個有兩步驟、兩人參與、兩個組織的驗證過程。 解除鎖定程式是由 Azure Stack Hub 操作員所起始,該操作員會隨時保留其環境的控制權。 操作員會存取 PEP 並執行此 cmdlet:
Get-SupportSessionToken
Cmdlet 會傳回支援會話要求令牌,這是很長的英數位元字串。 然後,操作員會透過選擇的媒體(例如聊天、電子郵件)將要求令牌傳遞給Microsoft支持工程師。 Microsoft支援工程師會使用要求令牌來產生有效的支援會話授權令牌,並將其傳回 Azure Stack Hub 操作員。 在相同的 PEP PowerShell 工作階段上,操作員接著會將授權令牌當做輸入傳遞給此 Cmdlet:
unlock-supportsession
cmdlet Unlock-SupportSession at command pipeline position 1
Supply values for the following parameters:
ResponseToken:
如果授權令牌有效,PEP PowerShell 會話會藉由提供完整的系統管理員功能和基礎結構的完整可觸達性來提升。
注意
在提權的 PEP 會話中執行的所有作業和 cmdlet,都必須在 Microsoft 支援工程師的嚴格監督下執行。 若無法這麼做,可能會導致嚴重的停機時間、數據遺失,而且可能需要完整重新部署 Azure Stack Hub 環境。
終止支援會話之後,請務必使用 Close-PrivilegedEndpoint Cmdlet 關閉提升許可權的 PEP 會話,如上一節所述。 其中一個 PEP 會話已終止,解除鎖定令牌已不再有效,因此無法重複使用來再次解除鎖定 PEP 會話。 提升許可權的 PEP 會話的有效時間為 8 小時,之後若未終止,提升許可權的 PEP 會話將會自動鎖定回一般 PEP 會話。
特殊許可權端點令牌的內容
PEP 支援會話要求和授權令牌會利用密碼編譯來保護存取,並確保只有授權的令牌可以解除鎖定 PEP 會話。 令牌的設計目的是以密碼編譯方式保證回應令牌只能由產生要求令牌的 PEP 會話接受。 PEP 令牌不包含任何可唯一識別 Azure Stack Hub 環境或客戶的資訊。 它們完全匿名。 以下是每個令牌內容的詳細數據。
支援會話請求令牌
PEP 支援會話要求令牌是由三個物件所組成:
- 隨機產生的會話標識碼。
- 產生一個自我簽署的憑證,其目的是要生成一組公開/私鑰對,只供一次性使用。 憑證不包含環境的任何資訊。
- 標示請求令牌到期的時間戳記。
然後,要求令牌會使用 Azure Stack Hub 環境註冊的 Azure 雲端公鑰進行加密。
支援會話授權回應令牌
PEP 支援授權回應令牌是由兩個對象所組成:
- 從要求令牌擷取的隨機產生的會話識別碼。
- 表示回應令牌到期的時間戳。
然後,回應令牌會使用要求令牌中包含的自我簽署憑證進行加密。 自我簽署憑證已使用與 Azure Stack Hub 環境註冊所在的 Azure 雲端相關聯的私鑰解密。