共用方式為


對保護應用程式密碼的建議

適用於此 Power Platform Well-Architected 安全檢查表建議:

東南:07 透過強化其儲存體、限制存取和操作,以及稽核這些動作來保護應用程式密碼。 執行可靠且定期的輪換流程,可以在緊急情況下即興輪換。

本指南會說明在工作負載中保護敏感資訊安全的建議。 正確管理密碼對於維護應用程式、工作負載和相關資料的安全性和完整性至關重要。 密碼處理不當可能會導致資料外洩、服務中斷、違反法規和其他問題。

API 金鑰、Open Authorization()OAuth 令牌和安全外殼 (SSH) 金鑰等憑據是金鑰。 合規性要求可能會導致通常不被視為密碼的配置設定被視為應用程式密碼。

定義

詞彙 定義
憑證 保存公開金鑰以進行加密或解密的數位檔案。
認證 用於驗證通訊管道中發佈者或使用者身份的資訊。
認證掃描 驗證原始程式碼以確保未納入密碼的過程。
加密 使資料變得不可讀且被密碼鎖定的過程。
機碼 用於鎖定或解鎖加密資料的密碼。
最少權限存取 一種零信任原則,旨在最小化完成工作職能的一組權限。
受控識別 指派給資源並由 Azure 管理的識別。
非密碼 洩露時不會危及工作負載安全性態勢的資訊。
輪換 定期更新密碼的過程,如此一來,即使密碼遭到損害,也僅在有限的時間內可用。
祕密 系統的機密元件,用於輔助工作負載元件之間的通訊。 如果洩露,密碼可能會造成破口。
X.509 定義公開金鑰憑證格式的標準。

重要

不要把非密碼當成密碼看待。 密碼在作業需要很縝密,這對於非密碼來說是不必要的,並可能會導致額外的成本。

非密碼的應用程式設定 (例如應用程式所需之 API 的 URL) 應與應用程式代碼或應用程式密碼分開保存。 若要儲存應用程式設定,請考慮使用自訂連接器或環境變數。 另一種選項是使用 Dataverse 表格來儲存有關應用程式設定的中繼資料。 但是,您將需要找到一種在新環境中填入此資料的方法,例如將設定資料從開發傳輸到測試或生產。 您可以使用資料流程來完成此目的。

關鍵設計原則

在儲存和管理密碼之前,請考慮以下需要注意的部分:

  • 建立的密碼應保存在具有嚴格存取控制的安全儲存體中。
  • 密碼輪換是主動作業,而撤銷是被動作業。
  • 只有受信任的身份才能存取密碼。
  • 您應維護稽核線索以檢查和驗證對密碼的存取。

圍繞這些要點組建原則,以協助防止身份盜用、避免拒絕,並最大限度地減少不必要的資訊暴露。

密碼管理的安全做法

我們建議金鑰具有三個不同的角色:使用者、系統管理員和稽核員。 角色區分有助於確保只有受信任的識別才能存取具有適當權限等級的密碼。 向開發人員、系統管理員和其他相關人員介紹密碼管理和安全性最佳做法的重要性。

預共用金鑰

您可以透過為每個使用者建立不同的金鑰來控制存取。 例如,用戶端 (如應用程式或流程) 使用預共用金鑰與第三方 API 通訊。 如果另一個用戶端需要存取同一 API,則必須使用另一個金鑰。 即使兩個使用者具有相同的存取模式或角色,也不能共用金鑰。 使用者範圍可能會隨時間而變化,且在共用金鑰後,無法獨立更新權限或區分使用模式。 獨特存取權也讓撤銷變得比較容易。 如果使用者的金鑰遭到洩露,則可以更輕鬆地撤銷或輪換該金鑰,而不會影響其他消費者。

本指南適用於不同的環境。 同一金鑰不應同時用於預生產和實際執行環境。 如果您負責建立預共用金鑰,請務必建立多個金鑰以支援多個用戶端。

如需詳細資訊,請參閱對身分識別和存取管理的建議

密碼存放區

使用機密管理系統(如 Azure Key Vault)將機密存儲在強化環境中,對靜態和傳輸中進行加密,以及審核對機密的訪問和更改。 如果您需要儲存應用程式密碼,請將其保留在原始程式碼之外,以便於輪換。

專用密碼管理系統可輕鬆儲存、分發和控制對應用程式密碼的存取。 只有經過授權的身分識別和服務才有權存取密碼存放區。 可以透過權限來限制對系統的存取。 指派權限時始終套用最低權限方法。

您還需要在密碼等級控制存取。 每個密碼應只能存取單一資源範圍。 建立隔離界線,以便元件只能使用所需的密碼。 如果隔離的元件遭到入侵,它將無法控制其他密碼,甚至可能無法控制整個工作負載。 隔離密碼的一種方法是使用多個金鑰保存庫。 建立額外的金鑰保存庫不會產生額外費用。

對密碼存取實施稽核和監視。 記錄存取密碼的人員以及識別未經授權或可疑的活動的時機。 有關從安全性角度進行記錄的資訊,請參閱對監視和威脅偵測的建議

密碼輪換

制定一個保持密碼乾淨的流程。 長期使用一組密碼會影響該密碼的管理。 為了減少攻擊媒介,應盡可能頻繁地汰除密碼並替換為新密碼。

謹慎處理 OAuth 訪問令牌,同時考慮其存留時間。 請考慮是否需要將曝光窗口調整為較短的時間。 重新整理權杖必須安全地儲存,並有限地暴露應用程式。 續訂的憑證也應使用新密碼。 有關刷新令牌的資訊,請參閱 Secure OAuth 2.0 On-Behalf-Of 刷新令牌

在密碼生命周期結束、工作負載不再使用或密碼已洩露後,替換密碼。 相反地,除非是緊急情況,否則不要停用使用中的密碼。 您可以透過查看存取紀錄來確定密碼的狀態。 密碼輪換過程不應影響工作負載的可靠性或效能。 使用在密碼、使用者和存取方法中組建冗餘的策略來實現平穩輪換。

使用密碼的安全做法

作為密碼產生器或操作員,您應該能夠以安全的方式分發密碼。 許多組織使用工具在組織內部和外部安全地與合作夥伴共享密碼。 如果沒有工具,請具備一個正確將認證移交給授權收件人的過程。 您的災害恢復原計畫應包括密碼復原過程。 針對金鑰受損或洩露且需要按需求重新生產生的情況制定流程。 使用密碼時,請考慮下列安全性的最佳做法:

避免硬編碼

不要在代碼專案 (如雲端流和畫布應用程式、配置檔和構建部署管道) 中將機密硬編碼為靜態文本 。 這種高風險的做法使代碼容易受到攻擊,因為密碼會向具有讀取存取權的每個人公開。

使用定期檢測應用程式代碼中公開的金鑰 並構建構件的工具。 您可以將這些工具新增為部署管線的一部分,以便在原始程式碼提交部署之前掃描認證。 定期檢閱和清理應用程式記錄檔,以幫助確保不會無意中記錄密碼。 您還可以透過同儕檢閱來加強偵測。

注意

如果掃描工具發現密碼,則必須將該密碼視為已受損。 它應該被撤銷。

回覆密碼輪換

作為工作負載負責人,您需要了解密鑰輪換計畫和原則,以便可以在對使用者造成最小干擾的情況下,納入新密碼。輪換密碼時,當舊密碼無效但新密碼尚未到位時,可能會出現一個空窗期。 在該空窗期內,工作負載嘗試存取的元件不會知道請求。 您可以透過在代碼中組建重試邏輯來將這些問題降到最少。 您也可以使用並行存取模式,這些模式允許您擁有多個認證,而這些認證可以安全地變更,不會相互影響。

與營運團隊合作,成為變更管理流程的一部分。 當您停用工作負載中使用不再需要之認證的部分時,應讓認證負責人知道。

將密碼檢索和設定整合到自動化部署管線中。 密碼檢索有助於確保在部署期間自動擷取密碼。 您也可以使用密碼注入模式在執行階段,將密碼插入到應用程式代碼或設定中,以防止密碼意外暴露給記錄檔或版本控制。

Power Platform 便利

以下各節介紹您可用來管理應用程式密碼的 Power Platform 特性和功能。

使用 Azure Key Vault 密碼

環境變數可參考儲存在 Azure Key Vault 中的密碼。 這些密碼可用於 Power Automate 流程和自訂連接器。 請注意,密碼不可用於其他自訂項,通常也不得透過 API 使用。

真實密碼只儲存在 Azure Key Vault 中,而環境變數會參考金鑰保存庫密碼位置。 使用 Azure Key Vault 包含環境變數的機密時,需要設定 Azure Key Vault,Power Platform 才能讀取您想要參照的特定機密。 如需詳細資訊,請參閱在解決方案中使用環境變數在解決方案自訂連接器中使用環境變數

使用解決方案檢查工具

您可以使用解決方案檢查工具功能,根據一組最佳做法規則,對您的解決方案執行各式各樣靜態分析檢查,並快速識別這些問題模式。 檢查完成後,您會收到詳細的報表,列出找到的問題、受影響的元件和程式碼,以及說明如何解決每個問題的文件連結。 檢閱安全性類別中可用的解決方案檢查工具規則。 如需詳細資訊,請參閱使用解決方案檢查工具來驗證您的解決方案

使用 CyberArk 動作

CyberArk 提供了一個身分識別安全性平台,可以從端向端保護人類和電腦的身分識別。 Power Automate 桌面流程讓您能夠從 CyberArk 中檢索認證。 如需詳細資訊,請參閱 CyberArk 動作

安全性檢查清單

請參閱完整的建議集。