

# SEC03-BP02 授予最低權限存取權
<a name="sec_permissions_least_privileges"></a>

透過允許在特定情況下對特定 AWS 資源執行特定動作，僅授予身分所需的存取權。倚賴群組和身分屬性，大規模動態設定許可，而不是定義個別使用者的許可。例如，您可以允許一組開發人員的存取權，以只管理其專案的資源。如此一來，將開發人員從群組中移除時，在使用該群組來進行存取控制的任何地方都會撤銷該開發人員的存取權，完全不需要變更存取政策。

 **常見的反模式：** 
+ 預設授予使用者管理員許可。
+ 使用根帳戶來處理每日活動。

 **若未建立此最佳實務，暴露的風險等級：** 高 

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

建立 [最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) 原則可確保在平衡可用性和效率的同時，僅允許身份執行完成特定任務所需的最少量功能。依此原則操作會限制非預期存取，並協助確保您可以稽核誰有權存取哪些資源。在 AWS 中，除了根使用者以外，身分依預設沒有任何許可。根使用者的憑證應受到嚴格的控制，使用範圍僅限於幾個 [特定任務](https://docs.aws.amazon.com/general/latest/gr/aws_tasks-that-require-root.html)。

您可以使用政策明確授予與 IAM 或資源實體連接的許可，例如聯合身分或機器或資源 (例如 S3 儲存貯體) 使用的 IAM 角色。建立和連接政策時，您可以指定必須為 true 的服務動作、資源和條件，以便 AWS 允許存取權。AWS 支援各種條件，以協助您縮減存取權範圍。例如，使用 `PrincipalOrgID` [條件金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)，AWS Organizations 的識別符經過驗證，以便在 AWS 組織內授予存取權。

此外，您還可以控制 AWS 服務代您發出的請求，例如 AWS CloudFormation 使用 `CalledVia` 條件金鑰建立 AWS Lambda 函數。您應將不同政策類型分層，以便有效地將整體許可限制在某個帳戶中。例如，您可以允許應用程式團隊建立其專屬的 IAM 政策，但使用 [許可界限](https://aws.amazon.com/blogs/security/delegate-permission-management-to-developers-using-iam-permissions-boundaries/) 來限制他們可以授予的許可上限。

有幾個 AWS 功能，可協助您擴展許可管理並遵循最低權限原則。[屬性型存取控制](https://aws.amazon.com/blogs/security/delegate-permission-management-to-developers-using-iam-permissions-boundaries/) 可讓您根據資源的 *[標籤](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)* 來限制許可，以便根據套用至資源和呼叫 IAM 主體的標籤來做出授權決定。此可讓您結合標記和許可政策，以達成更精細的資源存取，而不需自訂許多政策。

另一個加快最低權限政策建立的方式，是在活動執行後，將 CloudTrail 許可作為政策基礎。[IAM Access Analyzer 可根據活動自動產生 IAM 政策](https://aws.amazon.com/blogs/security/delegate-permission-management-to-developers-using-iam-permissions-boundaries/)。您可以在組織或個別帳戶層級中使用 IAM Access Advisor， [來追蹤特定政策的最新存取資訊](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html)。

建立審查這些詳細資料和移除不需要許可的規律。您應在 AWS 組織中建立許可防護機制，來控制任何成員帳戶中的許可上限。例如 [AWS Control Tower 之類的服務有規範性的受管預防性控制項](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html) 並可讓您定義自己的控制項。

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

 **相關文件：** 
+  [IAM 實體的許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) 
+  [寫入最低權限 IAM 政策的技巧](https://aws.amazon.com/blogs/security/techniques-for-writing-least-privilege-iam-policies/) 
+  [IAM Access Analyzer 透過根據存取活動產生 IAM 政策，來輕鬆實作最低權限許可](https://aws.amazon.com/blogs/security/iam-access-analyzer-makes-it-easier-to-implement-least-privilege-permissions-by-generating-iam-policies-based-on-access-activity/) 
+  [使用上次存取的資訊以精簡許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) 
+  [IAM 政策類型以及何時使用這些政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) 
+  [使用 IAM 政策模擬器測試 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html) 
+  [AWS Control Tower 中的防護機制](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html) 
+  [零信任架構：AWS 觀點](https://aws.amazon.com/blogs/security/zero-trust-architectures-an-aws-perspective/) 
+  [如何使用 CloudFormation StackSets 實作最低權限原則](https://aws.amazon.com/blogs/security/how-to-implement-the-principle-of-least-privilege-with-cloudformation-stacksets/) 

 **相關影片：** 
+  [下一代許可管理](https://www.youtube.com/watch?v=8vsD_aTtuTo) 
+  [零信任：AWS 觀點](https://www.youtube.com/watch?v=1p5G1-4s1r0) 
+  [我如何使用許可界限，來限制 IAM 使用者和角色避免權限升級？](https://www.youtube.com/watch?v=omwq3r7poek) 

 **相關範例：** 
+  [實驗室：IAM 許可界限委派角色建立](https://wellarchitectedlabs.com/Security/300_IAM_Permission_Boundaries_Delegating_Role_Creation/README.html) 