

# SEC02-BP05 定期稽核和輪換憑證
<a name="sec_identities_audit"></a>

定期稽核和輪換憑證以限制憑證可用來存取資源的時限。長期憑證會產生許多風險，而透過定期輪換長期憑證可以降低這些風險。

 **預期成果：**實施憑證輪換以幫助降低與使用長期憑證相關聯的風險。定期稽核和修正不符合憑證輪換政策的情況。 

 **常見的反模式：** 
+  沒有稽核憑證的使用。 
+  不必要地使用長期憑證。 
+  使用長期憑證並且未定期輪換。 

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

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

 當您無法倚賴臨時憑證且需要長期憑證時，請稽核憑證以確保已強制定義的控制 (例如多重要素驗證 (MFA))，定期輪換並且具備適當的存取層級。 

 定期驗證 (最好是透過自動化工具) 是確認強制執行正確的控制項的必要項目。對於人類身分，您應要求使用者定期變更密碼，並淘汰存取金鑰而改用臨時憑證。隨著您從 AWS Identity and Access Management (IAM) 使用者移向集中式身分，您可以[產生憑證報告](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html)以稽核您的使用者。 

 我們也建議您在身分提供者中強制和監控 MFA。您可以設定 [AWS Config 規則](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) 或使用 [AWS Security Hub CSPM 安全標準](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-iam-3)來監視使用者是否已啟用 MFA。請考慮使用 IAM Roles Anywhere 為機器身分提供臨時憑證。在無法使用 IAM 角色和臨時憑證的情況下，必須經常稽核和輪換存取金鑰。 

 **實作步驟** 
+  **定期稽核憑證：**稽核身分提供者和 IAM 中設定的身分有助於確保只有已授權的身分能存取您的工作負載。此類身分可能包括但不限於 IAM 使用者、AWS IAM Identity Center 使用者、Active Directory 使用者，或不同上游身分提供者中的使用者。例如，移除離職的人員和移除不再需要的跨帳戶角色。設立程序以定期稽核由 IAM 實體存取之服務的許可。這有助您識別需要修改的政策，以移除任何不使用的許可。使用憑證報告和 [AWS Identity and Access Management Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) 來稽核 IAM 憑證和許可。您可以使用 [Amazon CloudWatch 來設定對特定 API 呼叫 (在 AWS 環境中呼叫) 的警示](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html)。[Amazon GuardDuty 也可以向您通知未預期的活動](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html)，這可指出對 IAM 憑證過於寬鬆的存取或意外存取。 
+  **定期輪換憑證：**當您無法使用臨時憑證時，定期輪換長期 IAM 存取金鑰 (最長每 90 天)。如果在您不知情的情況下意外洩漏了存取金鑰，這可限制憑證可用來存取資源的時限。如需有關輪換 IAM 使用者的存取金鑰的詳細資訊，請參閱[輪換存取金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey)。 
+  **檢閱 IAM 許可：**為了改善 AWS 帳戶 的安全，請定期檢閱和監控每個 IAM 政策。確認政策遵守最低權限的原則。 
+  **考慮自動化 IAM 資源建立和更新：** IAM Identity Center 會自動執行許多 IAM 任務，例如角色和政策管理。或者，可以使用 AWS CloudFormation 自動化 IAM 資源 (包括角色和政策) 的部署，以減少人為錯誤，因為可針對範本進行驗證和版本控制。 
+  **對於機器身分，使用 IAM Roles Anywhere 取代 IAM 使用者：** IAM Roles Anywhere 可讓您在傳統上無法使用角色的區域中 (例如內部部署伺服器) 使用角色。IAM Roles Anywhere 使用可信的 X.509 憑證向 AWS 進行驗證及接收臨時憑證。使用 IAM Roles Anywhere 讓您無需輪換這些憑證，因為長期憑證不再儲存於內部部署環境中。請注意，您將需要監視 X.509 憑證，並在快到期時輪換。 

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

 **相關的最佳實務：** 
+  [SEC02-BP02 使用臨時憑證](sec_identities_unique.md) 
+  [SEC02-BP03 安全地存放和使用機密](sec_identities_secrets.md) 

 **相關文件：** 
+  [AWS Secrets Manager 入門](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html) 
+  [IAM 最佳實務](https://docs.aws.amazon.com//latest/UserGuide/best-practices.html) 
+  [身分提供者與聯合](https://docs.aws.amazon.com//latest/UserGuide/id_roles_providers.html) 
+  [安全合作夥伴解決方案：存取與存取控制](https://aws.amazon.com/security/partner-solutions/#access-control) 
+  [臨時安全憑證](https://docs.aws.amazon.com//latest/UserGuide/id_credentials_temp.html) 
+ [ 取得 AWS 帳戶 的憑證報告 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html)

 **相關影片：** 
+  [大規模管理、擷取和輪換密碼的最佳實務](https://youtu.be/qoxxRlwJKZ4) 
+  [使用 AWS IAM Identity Center 大規模管理使用者許可](https://youtu.be/aEIqeFCcK7E) 
+  [在每一層都能掌握身分](https://www.youtube.com/watch?v=vbjFjMNVEpc) 

 **相關範例：** 
+ [ Well-Architected 實驗室 - 自動化 IAM 使用者清理 ](https://wellarchitectedlabs.com/security/200_labs/200_automated_iam_user_cleanup/)
+ [ Well-Architected 實驗室 - 自動化 IAM 群組和角色的部署 ](https://wellarchitectedlabs.com/security/200_labs/200_automated_deployment_of_iam_groups_and_roles/)