

# SEC10-BP05 預先佈建存取權
<a name="sec_incident_response_pre_provision_access"></a>

確認事件回應者具有在 AWS 中預先佈建的正確存取權限，以縮短調查直至復原所需的時間。

 **常見的反模式：**
+  使用事件回應的根帳戶。
+  更改現有的帳戶。
+  當提供即時權限提升時直接操控 IAM 許可。

 **未建立此最佳實務時的曝險等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

AWS 建議盡可能降低或避免對長期憑證的依賴，而是採用暫時憑證和*即時*權限提升機制。長期憑證容易發生安全性風險並會增加營運負擔。對於大多數管理任務，以及事件回應任務，我們建議您實作[聯合身分](https://aws.amazon.com/identity/federation/)以及[適用於管理存取權的暫時權限提升](https://aws.amazon.com/blogs/security/managing-temporary-elevated-access-to-your-aws-environment/)。在此模型中，使用者會請求提升至較高層級的權限 (例如事件回應角色)；如果使用者符合提升的資格，則會將請求傳送至核准者。如果請求獲得核准，使用者就會收到一組暫時 [AWS 憑證](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)，使用者可使用此憑證來完成其任務。在這些憑證過期後，使用者就必須提交新的提升權限請求。

 我們建議在大多數事件回應情境中，使用暫時權限提升。正確的做法是使用 [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) 和[工作階段政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)來界定存取權的範圍。

 當發生聯合身分不可用的情況，例如：
+  與遭盜用身分提供者 (IdP) 相關的中斷。
+  設定錯誤或人為錯誤會導致聯合存取管理系統遭到破壞。
+  分散式拒絕服務 (DDoS) 事件或使系統無法使用之類的惡意活動。

 在上述案例中，應會有已設定的*緊急*存取權，可協助調查和及時修復事件。我們建議您使用[具有適當許可的使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials)，來執行任務和存取 AWS 資源。僅將根憑證用於[需要根使用者存取權的任務](https://docs.aws.amazon.com/accounts/latest/reference/root-user-tasks.html)。若要確認事件回應者是否具有 AWS 和其他相關系統的正確存取權，我們建議預先佈建專屬帳戶。此類帳戶需要提升的存取權，且必須受到嚴格的控制和監控。必須以執行必要任務所需的最低權限來建置這些帳戶，而存取權層級應以事件管理計畫中建立的程序手冊為基礎。

 使用專用和專屬的使用者及角色作為最佳實務。透過新增 IAM 政策而暫時提升權限的使用者和角色存取權，會同時使得使用者在事件發生期間的存取權不明確，又有無法將提升的權限撤銷的風險。

 您必須盡可能移除相依性，來確認可在各種可能的失敗情境下獲得存取權。為了做到這一點，建立程序手冊來確認事件回應使用者的建立身分是專屬安全帳戶中的使用者，且不會透過任何現有的聯合或單一登入 (SSO) 解決方案來管理事件回應使用者。每個個別回應者必須具備其專屬的指定帳戶。帳戶組態必須強制執行[強式密碼政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)和多重要素驗證 (MFA)。如果事件回應程序手冊僅需要 AWS 管理主控台 的存取權，使用者就不應設定存取金鑰，且應明確禁止使用者建立存取金鑰。您可以使用 IAM 政策或服務控制政策 (SCP) 進行設定，如 [AWS Organizations SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) 的 AWS 安全最佳實務中所述。除了在其他帳戶中擔任事件回應角色的能力外，使用者不應具備任何權限。

 在事件期間，必須將存取權授予其他內部或外部人員，來協助調查、修復和復原活動。在此案例中，使用先前提到的程序手冊機制，而且必須制定程序，以確認在事件完成後，立即將任何其他存取權撤回。

 若要確認事件回應角色的使用是否受到適當的監控和稽核，則必須確保未在人員之間共用為此目的建立的 IAM 帳戶，且除非[特定任務所需](https://docs.aws.amazon.com/accounts/latest/reference/root-user-tasks.html)，否則不得使用 AWS 帳戶根使用者。如果需要根使用者 (例如，特定帳戶的 IAM 存取權不可用時)，請使用獨立的程序，其中有可用的程序手冊，來確認根使用者登入憑證和 MFA 字符是否可用。

 若要為事件回應角色設定 IAM 政策，請考慮使用 [IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html) 來根據 AWS CloudTrail 日誌產生政策。若要這麼做，請向管理員授予在非生產帳戶上事件回應角色的存取權，並透過程序手冊加以執行。完成後，您就可以建立政策來僅允許所採取的動作。接著就可以將此政策套用至所有帳戶中的所有事件回應角色。您可能希望為每個程序手冊建立個別 IAM 政策，來讓管理和稽核作業更輕鬆。範例程序手冊可能包含勒索軟體、資料洩漏、生產存取權遺失和其他情境的回應計畫。

 使用事件回應帳戶來擔任[在其他 AWS 帳戶 中專屬事件回應 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)。必須將這些角色設定為僅供安全帳戶中的使用者擔任，而信任關係必須要求呼叫主體使用 MFA 進行驗證。這些角色必須使用嚴格控制範圍的 IAM 政策來控制存取權。確保所有對這些角色的 `AssumeRole` 請求都記錄在 CloudTrail 中並據以發出提醒，而使用這些角色採取的任何動作都會記錄下來。

 強烈建議必須清楚地命名 IAM 帳戶和 IAM 角色，因此您可以輕鬆地在 CloudTrail 日誌中找到這些帳戶和角色。這類範例便是將 IAM 帳戶命名為 `<USER_ID>-BREAK-GLASS` 以及將 IAM 角色命名為 `BREAK-GLASS-ROLE`。

 [CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 會用來在 AWS 帳戶中記錄 API 活動，且應用來[設定對事件回應角色使用情形的提醒](https://aws.amazon.com/blogs/security/how-to-receive-notifications-when-your-aws-accounts-root-access-keys-are-used/)。請參閱部落格貼文，其中會說明使用根金鑰如何設定提醒。您可以修改說明，以設定與事件回應 IAM 角色相關的 `AssumeRole` 事件的 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 指標篩選條件至篩選條件：

```
{ $.eventName = "AssumeRole" && $.requestParameters.roleArn = "<INCIDENT_RESPONSE_ROLE_ARN>" && $.userIdentity.invokedBy NOT EXISTS && $.eventType != "AwsServiceEvent" }
```

 由於事件回應角色可能具備很高的存取權限，因此必須將這些提醒傳送給多個群組，並據此快速採取行動。

 在事件期間，回應者可能需要存取未受 IAM 直接保護的系統。其中可能包含 Amazon Elastic Compute Cloud 執行個體、Amazon Relational Database Service 資料庫或軟體即服務 (SaaS) 平台。強烈建議使用此方法，而不是使用 SSH 或 RDP 等原生協定，[AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) 會用於對 Amazon EC2 執行個體的所有管理存取權。您可以使用安全且受稽核的 IAM 來控制此存取權。您也可以使用 [AWS Systems Manager Run Command 文件](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html)來自動化部分程序手冊，如此可減少使用者錯誤並縮短復原時間。如需資料庫和第三方工具的存取權，我們建議將存取憑證儲存在 AWS Secrets Manager 中，並將存取權授予事件回應者角色。

 最後，應將事件回應 IAM 使用者帳戶的管理作業新增至[加入者、異動者和離職者程序](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/permissions-management.html)中，並定期審查和測試此管理作業，以確認僅允許預期的存取。

## 資源
<a name="resources"></a>

 **相關文件：**
+  [管理對 AWS 環境的暫時提升存取權](https://aws.amazon.com/blogs/security/managing-temporary-elevated-access-to-your-aws-environment/) 
+  [AWS 安全事件回應指南](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/welcome.html)
+  [AWS Elastic Disaster Recovery](https://aws.amazon.com/disaster-recovery/) 
+  [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) 
+  [設定 IAM 使用者的帳戶密碼政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html) 
+  [使用 AWS 中的多重要素驗證 (MFA)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) 
+ [ 使用 MFA 設定跨帳戶存取權](https://aws.amazon.com/blogs/security/how-do-i-protect-cross-account-access-using-mfa-2/)
+ [ 使用 IAM Access Analyzer 來產生 IAM 政策](https://aws.amazon.com/blogs/security/use-iam-access-analyzer-to-generate-iam-policies-based-on-access-activity-found-in-your-organization-trail/)
+ [多帳戶環境中 AWS Organizations 服務控制政策的最佳實務](https://aws.amazon.com/blogs/industries/best-practices-for-aws-organizations-service-control-policies-in-a-multi-account-environment/)
+ [ 如何在使用 AWS 帳戶的根存取金鑰時接收通知](https://aws.amazon.com/blogs/security/how-to-receive-notifications-when-your-aws-accounts-root-access-keys-are-used/)
+ [ 使用 IAM 受管政策來建立精細的工作階段許可](https://aws.amazon.com/blogs/security/create-fine-grained-session-permissions-using-iam-managed-policies/)
+  [緊急存取](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/break-glass-access.html) 

 **相關影片：**
+ [ 將 AWS 中的事件回應和鑑識自動化](https://www.youtube.com/watch?v=f_EcwmmXkXk)
+  [執行手冊、事件報告和事件回應的 DIY 指南](https://youtu.be/E1NaYN_fJUo) 
+ [ 準備和回應 AWS 環境中的安全事件](https://www.youtube.com/watch?v=8uiO0Z5meCs)