

# SEC03-BP04 持續減少許可
<a name="sec_permissions_continuous_reduction"></a>

在團隊確定所需的存取權時，請移除不需要的許可，並建立審查程序以達到最低權限的許可。持續監視人類和機器存取權，並移除不使用的身分和許可。

 **預期成果：**許可政策應遵循最低權限原則。隨著工作職責和角色的定義變得更具體，您需要審查許可政策以移除不必要的許可。若憑證遭到意外洩露或以其他方式在未經授權下遭存取，此方法可縮小影響範圍。

 **常見的反模式：**
+  預設授予使用者管理員許可。
+  建立過於寬鬆的政策，但不具完整的管理員權限。
+  保留不再需要的許可政策。

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

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

 在團隊和專案剛開始時，可使用寬鬆的許可政策來激發創新和敏捷性。例如，在開發或測試環境中，可以讓開發人員存取廣泛的 AWS 服務。我們建議您持續評估存取權，並將存取權限於完成目前工作所需的這些服務和服務動作。我們建議對人類和機器身分進行此項評估。機器身分有時候稱為系統或服務帳戶，是提供 AWS 存取權給應用程式或伺服器的身分。此存取權在生產環境中尤為重要，因為過於寬鬆的許可可能影響廣大而且可能暴露客戶資料。

 AWS 提供多種方法可協助識別未使用的使用者、角色、許可和憑證。AWS 也有助於分析 IAM 使用者和角色的存取活動，包括關聯的存取金鑰，以及對 AWS 資源的存取，例如 Amazon S3 儲存貯體中的物件。AWS Identity and Access Management Access Analyzer 政策產生可協助您根據某主體進行互動的實際服務和動作來建立限制性許可。[屬性型存取控制 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) 可以協助簡化許可管理，因為您可以使用使用者的屬性提供許可給使用者，而不是將許可政策直接連接至每個使用者。

### 實作步驟
<a name="implementation-steps"></a>
+  **使用 [AWS Identity and Access Management Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)：**IAM Access Analyzer 可協助您識別組織和帳戶中[與外部實體共用](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html)的資源，例如 Amazon Simple Storage Service (Amazon S3) 儲存貯體或 IAM 角色。
+  **使用 [IAM Access Analyzer 政策產生](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)：**IAM Access Analyzer 政策產生可協助您[根據 IAM 使用者或角色的存取活動建立精細的許可政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html#access-analyzer-policy-generation-howitworks)。
+  **在正式作業前測試較低環境的許可：**一開始先使用[較不重要的沙盒和開發環境](https://docs.aws.amazon.com/prescriptive-guidance/latest/choosing-git-branch-approach/understanding-the-devops-environments.html)，利用 IAM Access Analyzer 來測試各種不同工作職能所需的許可。然後在測試、品質保證和預備環境逐步加強並驗證這些許可，再將許可套用至正式作業環境。較低的環境一開始可以擁有較寬鬆的許可，因為服務控制政策 (SCP) 會透過限制授予的許可數上限來強制執行防護機制。
+  **為 IAM 使用者和角色確定可接受的時間範圍和使用政策：**使用[上次存取的時間戳記](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor-view-data.html)以[識別未使用的使用者和角色](https://aws.amazon.com/blogs/security/identify-unused-iam-roles-remove-confidently-last-used-timestamp/)並將其移除。審核服務和動作上次存取的資訊，以識別和[設定特定使用者和角色的許可範圍](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html)。例如，您可以使用上次存取的資訊來識別您的應用程式角色所需的特定 Amazon S3 動作，並將該角色的存取權僅限於這些動作。AWS 管理主控台 中有提供「上次存取的資訊」功能，並且可讓您透過程式設計的方式將這些功能併入基礎設施工作流程和自動化工具中。
+  **考慮[在 AWS CloudTrail 中日誌記錄資料事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)：**在預設情況下，CloudTrail 不會記錄資料事件，例如 Amazon S3 物件層級活動 (如 `GetObject` 和 `DeleteObject`) 或 Amazon DynamoDB 資料表活動 (如 `PutItem` 和 `DeleteItem`)。考慮對這些事件使用日誌記錄功能，以確定哪些使用者和角色需要存取特定 Amazon S3 物件或 DynamoDB 資料表項目。

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

 **相關文件：**
+  [授予最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) 
+  [移除不必要的憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#remove-credentials) 
+ [ 什麼是 AWS CloudTrail？](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)
+  [使用 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) 
+ [ DynamoDB 中的日誌記錄和監控](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/MonitoringDynamoDB.html)
+ [ 對您的 Amazon S3 儲存貯體和物件使用 CloudTrail 事件日誌記錄](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-cloudtrail-logging-for-s3.html)
+ [ 取得 AWS 帳戶 的憑證報告](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html)

 **相關影片：**
+  [在 60 分鐘內精通 IAM 政策](https://youtu.be/YQsK4MtsELU) 
+  [責任區隔、最低權限、委派和 CI/CD](https://youtu.be/3H0i7VyTu70) 
+ [AWS re:Inforce 2022 - AWS Identity and Access Management (IAM) 深入剖析](https://www.youtube.com/watch?v=YMj33ToS8cI)