SEC03-BP03 建立緊急存取程序 - 安全支柱

SEC03-BP03 建立緊急存取程序

建立一項程序,在集中式身分提供者發生問題時,緊急存取您的工作負載。

您必須針對可能導致緊急事件發生的不同故障模式設計不同的程序。例如,正常情況下,您的員工使用者會使用集中式身分提供者 (SEC02-BP04) 聯合至雲端,以管理其工作負載。不過,如果您的集中式身分提供者發生錯誤,或是雲端中聯合的組態經過修改,則您的員工使用者可能無法連至雲端。緊急存取程序可讓授權的管理員透過替代方式 (例如聯合或直接使用者存取的替代形式) 存取您的雲端資源,以修正聯合組態或工作負載的問題。緊急存取程序會持續使用,直到恢復正常聯合機制為止。

預期成果:

  • 您已定義並記載可視為緊急情況的故障模式:請考慮正常情況以及使用者用來管理工作負載的系統。考慮這些相依性如何發生錯誤並導致緊急情況。您可以在可靠性支柱中找到問題與最佳實務,有助於識別故障模式並架構更具彈性的系統,以盡量降低故障的可能性。

  • 您已記載確認故障為緊急情況須遵循的步驟。例如,您可以要求身分管理員檢查主要和待命身分提供者的狀態,如果兩者都無法使用,則發布身分提供者發生錯誤緊急事件。

  • 您已針對每一種緊急或故障模式類型定義了緊急存取程序。明確定義可減少部分使用者過度使用一般程序,來處理所有類型的緊急情況。您的緊急存取程序描述了各個程序應在何種情況下使用,以及不應在哪些情況下使用,並指出可能適用的替代程序。

  • 您的程序完整記載了詳細指示和程序手冊,可快速有效地遵循。請記住,緊急事件對使用者來說可能會非常緊張,他們可能面對極大的時間壓力,因此程序的設計應盡可能簡單。

常見的反模式:

  • 您沒有詳細記載且經過充分測試的緊急存取程序。您的使用者未準備好面對緊急情況,而在緊急事件發生時只能隨機應變。

  • 您的緊急存取程序與正常存取機制依賴相同的系統 (例如集中式身分提供者)。這表示,一旦這類系統發生故障,就可能同時影響您的正常和緊急存取機制,並損及您從故障復原的能力。

  • 您的緊急存取程序用在非緊急情況。例如,您的使用者經常濫用緊急存取程序,因為他們發現直接進行變更透過管道提交變更容易。

  • 您的緊急存取程序未產生足夠的日誌來稽核程序,或是日誌未受監控,無法在發生可能濫用程序的情況時發出提醒。

建立此最佳實務的優勢:

  • 只要有詳細記載且經充分測試的緊急存取程序,就能縮短使用者回應和解決緊急事件所花的時間。這樣就能進一步減少停機時間,並為客戶帶來更高的服務可用性。

  • 您可以追蹤每一項緊急存取請求,以及偵測未經授權的人士試圖濫用程序來處理非緊急事件的情況,並發出提醒。

未建立此最佳實務時的風險暴露等級:

實作指引

本節提供建立緊急存取程序的指引,用於處理與 AWS 上部署的工作負載相關的數種故障模式,一開始先介紹適用於所有故障模式的通用指引,接著再根據故障模式類型說明特定指引。

適用所有故障模式的通用指引

為故障模式設計緊急存取程序時,請考慮下列事項:

  • 記載程序的前提和假設:應該和不應該使用程序的時機。這樣做有助於詳細說明故障模式並記載假設,例如其他相關系統的狀態。舉例來說,故障模式 2 的程序假設身分提供者可以使用,但 AWS 上的組態已經過修改或已過期。

  • 預先建立緊急存取程序所需的資源 (SEC10-BP05)。例如,在所有工作負載帳戶中預先建立具有 IAM 使用者和角色的緊急存取 AWS 帳戶,以及跨帳戶 IAM 使用者角色。這樣就可確定這些資源在緊急事件發生時立即可用。透過預先建立資源,您就不必依賴 AWS 控制平面 API (用來建立和修改 AWS 資源),因為它們在緊急情況下可能無法使用。此外,預先建立 IAM 資源就不需考慮因最終一致性而可能發生的延遲

  • 請將緊急存取程序納入您的事件管理計畫中 (SEC10-BP02)。記載緊急事件的追蹤方式,並傳達給組織中的其他人,例如同儕團隊、您的領導階層,以及適時向外傳達給您的客戶和業務合作夥伴。

  • 在您現有的服務請求工作流程系統 (若有的話) 中定義緊急存取請求程序。一般來說,這類工作流程系統可讓您建立接收表單來收集有關請求的資訊、在工作流程的每個階段追蹤請求,以及新增自動和手動核准步驟。將每一個請求與事件管理系統中追蹤的對應緊急事件建立關聯。採用統一的緊急存取系統,可讓您在單一系統中追蹤這些請求、分析使用趨勢並改善程序。

  • 確認您的緊急存取程序只能由經授權的使用者啟動,並且視情況要求使用者同儕或管理層的核准。核准程序在營業時間內外都要能夠有效運作。定義在主要核准者沒有空的情況下,如何由次要核准者核准請求,以及如何在您的管理鏈中向上呈報,直到請求獲得核准。

  • 實作可靠的記錄、監控和警示機制,以因應緊急存取程序和機制。同時針對成功和失敗的嘗試產生詳細的稽核日誌,以便取得緊急存取權。在事件管理系統中將活動與正在發生的事件相互關聯,並在動作發生於預期時段之外,或在正常操作期間使用緊急存取帳戶時發出警示。緊急存取帳戶只能在緊急情況下存取,因為破窗程序也可視為後門。與您的安全資訊和事件管理 (SIEM) 工具或 AWS Security Hub 整合,以在緊急存取期間回報和稽核所有活動。恢復正常操作時,自動輪換緊急存取憑證,並通知相關團隊。

  • 定期測試緊急存取程序,以確認步驟是否清楚,並且快速有效地授予正確的存取層級。您的緊急存取程序應在事件回應模擬的過程中 (SEC10-BP07) 和災難復原測試中 (REL13-BP03) 進行測試。

故障模式 1:用於聯合至 AWS 的身分提供者無法使用

SEC02-BP04 仰賴集中化的身分提供者中所述,我們建議您仰賴集中式身分提供者來聯合您的員工使用者,以授予 AWS 帳戶 的存取權。您可以使用 IAM Identity Center 聯合至您 AWS 組織中的多個 AWS 帳戶,或是使用 IAM 聯合至個別 AWS 帳戶。在這兩種情況下,員工使用者都會先透過集中式身分提供者進行身分驗證,然後才重新導向至 AWS 登入端點進行單一登入。

萬一您的集中式身分提供者無法使用,您的員工使用者就無法聯合至 AWS 帳戶 或管理其工作負載。在此緊急事件中,您可以提供緊急存取程序讓一小群管理員存取 AWS 帳戶,以便執行無法等到集中式身分提供者恢復連線後才處理的重要工作。例如,您的身分提供者停擺了 4 小時,而在此期間,您需要修改生產帳戶中 Amazon EC2 Auto Scaling 群組的上限,以處理客戶流量意外暴增的情況。您的緊急管理員應遵循緊急存取程序,才能獲得特定生產 AWS 帳戶 的存取權並進行必要的變更。

緊急存取程序依賴預先建立的緊急存取 AWS 帳戶,該帳戶單純用於緊急存取,並擁有 AWS 資源 (例如 IAM 角色和 IAM 使用者) 可支援緊急存取程序。在正常操作期間,任何人都不應該存取緊急存取帳戶,而且您必須監控濫用此帳戶的情況並發出提醒 (如需詳細資訊,請參閱前一節「通用指引」)。

緊急存取帳戶具有緊急存取 IAM 角色,有權在需要緊急存取的 AWS 帳戶 中擔任跨帳戶角色。這些 IAM 角色會預先建立並設定信任政策,以便信任緊急帳戶的 IAM 角色。

緊急存取程序可以使用下列其中一種方法:

  • 您可以預先建立一組 IAM 使用者並包含關聯的強式密碼和 MFA 字符,以供緊急存取帳戶中的緊急管理員使用。這些 IAM 使用者有權擔任 IAM 角色,且後續可在需要緊急存取時跨帳戶存取 AWS 帳戶。我們建議這類使用者的數量越少越好,並且將每一位使用者指派給單一緊急管理員。在緊急情況下,緊急管理員使用者會使用其密碼和 MFA 字符代碼登入緊急存取帳戶,切換到緊急帳戶中的緊急存取 IAM 角色,最後再切換到工作負載帳戶中的緊急存取 IAM 角色,以執行緊急變更動作。這種方法的優點是,每個 IAM 使用者都會指派給一名緊急管理員,而且您可以透過檢閱 CloudTrail 事件得知登入的使用者。缺點是,您必須維護多個 IAM 使用者及其關聯的長期存在密碼和 MFA 字符。

  • 您可以使用緊急存取 AWS 帳戶 根使用者來登入緊急存取帳戶、擔任緊急存取的 IAM 角色,並且在工作負載帳戶中擔任跨帳戶角色。我們建議您為根使用者設定強式密碼和多個 MFA 字符。同時也建議您,將密碼和 MFA 字符儲存在強制執行強式身分驗證和授權的安全企業憑證保存庫中。您應確保密碼和 MFA 字符重設要素的安全性:將帳戶的電子郵件地址設定為受到您的雲端安全管理員監控的電子郵件分發清單,並將帳戶的電話號碼設定為同樣受到安全管理員監控的共用電話號碼。這種方法的優點是,只需管理一組根使用者憑證。缺點是,由於這是共用使用者,因此有多個管理員能夠以根使用者的身分登入。您必須稽核企業保存庫日誌事件,以確定哪個管理員簽出了根使用者密碼。

故障模式 2:AWS 上的身分提供者組態已經過修改或已過期

若要讓您的員工使用者聯合至 AWS 帳戶,您可以使用外部身分提供者設定 IAM Identity Center,或建立 IAM 身分提供者 (SEC02-BP04)。一般來說,您可以匯入身分提供者提供的 SAML 中繼資料 XML 文件來進行這些設定。中繼資料 XML 文件包含一個 X.509 憑證,對應於身分提供者用來簽署其 SAML 聲明的私有金鑰。

AWS 端的這些組態可能遭到管理員誤改或誤刪。另一種情況是,匯入 AWS 中的 X.509 憑證可能過期,而具有新憑證的新中繼資料 XML 尚未匯入 AWS 中。這兩種情況都可能使員工使用者的 AWS 聯合中斷,導致緊急情況發生。

在這類緊急事件中,您可以提供 AWS 的存取權給身分管理員,以修正聯合問題。例如,您的身分管理員使用緊急存取程序登入緊急存取 AWS 帳戶、切換為 Identity Center 管理員帳戶中的角色,並透過從您的身分提供者匯入最新的 SAML 中繼資料 XML 文件來更新外部身分提供者組態,以重新啟用聯合。聯合修復後,您的員工使用者繼續使用正常操作程序來聯合至其工作負載帳戶。

您可以依照先前「故障模式 1」中詳述的方法來建立緊急存取程序。您可以將最低權限許可授予身分管理員,以限制他們只能存取 Identity Center 管理員帳戶以及在該帳戶中對 Identity Center 執行動作。

故障模式 3:Identity Center 中斷

萬一發生 IAM Identity Center 或 AWS 區域 中斷的情況,建議您設定一個可用來暫時存取 AWS Management Console 的組態。

緊急存取程序會在緊急帳戶中,使用您的身分提供者對 IAM 的直接聯合。如需有關程序和設計考量的詳細資訊,請參閱設定 AWS Management Console 的緊急存取

實作步驟

適用所有故障模式的通用步驟

  • 建立緊急存取程序專用的 AWS 帳戶。在帳戶中預先建立所需的 IAM 資源,例如 IAM 角色或 IAM 使用者,也可以選擇建立 IAM 身分提供者。此外,在工作負載 AWS 帳戶 中預先建立跨帳戶 IAM 角色,並與緊急存取帳戶中對應的 IAM 角色建立信任關係。您可以使用 AWS CloudFormation StackSets 搭配 AWS Organizations 在組織的成員帳戶中建立此類資源。

  • 建立 AWS Organizations 服務控制政策 (SCP) 以拒絕刪除和修改成員 AWS 帳戶 中的跨帳戶 IAM 角色。

  • 為緊急存取 AWS 帳戶 啟用 CloudTrail,並將追蹤事件傳送到日誌收集 AWS 帳戶 中的中央 S3 儲存貯體。如果您使用 AWS Control Tower 來設定和管控您的 AWS 多帳戶環境,則您使用 AWS Control Tower 建立或在 AWS Control Tower 中註冊的每個帳戶都會預設啟用 CloudTrail,並傳送至專用日誌封存 AWS 帳戶 中的 S3 儲存貯體。

  • 透過建立在主控台登入時比對的 EventBridge 規則來監控活動的緊急存取帳戶,以及透過緊急 IAM 角色監控 API 活動。當活動於事件管理系統中追蹤的持續緊急事件之外發生時,傳送通知給您的安全營運中心。

適用「故障模式 1:用於聯合至 AWS 的身分提供者無法使用」及「故障模式 2:AWS 上的身分提供者組態已經過修改或已過期」的其他步驟

  • 根據您選擇的緊急存取機制預先建立資源:

    • 使用 IAM 使用者:預先建立 IAM 使用者並設定強式密碼和關聯的 MFA 裝置。

    • 使用緊急帳戶根使用者:設定根使用者使用強式密碼,並將密碼儲存在您的企業憑證保存庫中。將多個實體 MFA 裝置與根使用者建立關聯,並將裝置儲存在您的緊急管理員小組成員可快速存取的位置。

適用「故障模式 3:Identity Center 中斷」的其他步驟

  • 設定 AWS Management Console 的緊急存取中所述,在緊急存取 AWS 帳戶 中,建立 IAM Identity Provider 身分提供者,以從您的身分提供者啟用直接 SAML 聯合。

  • 在 IdP 中建立緊急操作群組,但不新增任何成員。

  • 在緊急存取帳戶中建立對應於緊急操作群組的 IAM 角色。

資源

相關 Well-Architected 的最佳實務:

相關文件:

相關影片:

相關範例: