

# SEC02-BP01 使用強式登入機制
<a name="sec_identities_enforce_mechanisms"></a>

登入 (使用登入憑證進行驗證) 可預防當沒有使用多重要素驗證 (MFA) 等機制時的風險，尤其是在登入憑證遭到意外洩露或輕易被猜出的情況下。使用強式登入機制透過要求 MFA 和強式密碼政策來降低這些風險。

 **預期成果：**透過對 [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) 使用者、[AWS 帳戶根使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)、[AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) (AWS 單一登入的後繼者) 和協力廠商身分提供者使用強式登入機制，來降低 AWS 中意外存取憑證的風險。這意味著要求使用 MFA，強制強式密碼政策，以及偵測異常的登入行為。 

 **常見的反模式：** 
+  沒有為您的身分強制強式密碼政策，包括複雜密碼和 MFA。 
+  在不同使用者之間共用相同的憑證。 
+  沒有針對可疑的登入使用偵測控制。 

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

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

 人類身分登入 AWS 的方法有很多。AWS 最佳實務是仰賴使用聯合 (直接聯合或使用 AWS IAM Identity Center) 的集中式身分提供者向 AWS 進行驗證。在這種情況下，您應該以您的身分提供者或 Microsoft Active Directory 建立安全的登入程序。 

 當您第一次開啟 AWS 帳戶 時，是從 AWS 帳戶 根使用者開始。您應該只使用帳戶根使用者來設定使用者的存取權 (以及[需要根使用者的任務](https://docs.aws.amazon.com/accounts/latest/reference/root-user-tasks.html))。請務必在開啟 AWS 帳戶 後使用 AWS [最佳實務指南](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_securely_operate_aws_account.html)立即為帳戶根使用者啟用 MFA。 

 如果您在 AWS IAM Identity Center 中建立使用者，請保護該服務中的登入程序。對於消費者身分，您可以使用 [Amazon Cognito user pools](https://docs.aws.amazon.com/cognito/index.html) 並保護該服務中的登入程序，或使用 Amazon Cognito user pools 支援的其中一個身分提供者。 

 如果您使用的是 [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) 使用者，請使用 IAM 保護登入程序。 

 無論登入方法為何，強制強式登入政策必不可少。 

 **實作步驟** 

 以下是一般的強式登入建議。您設定的實際設定應由貴公司政策來規定，或使用如 [NIST 800-63](https://pages.nist.gov/800-63-3/sp800-63b.html) 的標準。 
+  要求 MFA。[IAM 最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#enable-mfa-for-privileged-users)是對人類身分和工作負載要求 MFA。啟用 MFA 可提供多一層安全防護，要求使用者提供登入憑證和一次性密碼 (OTP)，或是從硬體裝置以密碼編譯方式驗證和產生的字串。 
+  強制密碼長度下限，此為密碼強度的要素。 
+  強制密碼複雜性，使密碼更難猜測。 
+  允許使用者變更自己的密碼。 
+  建立個別身分，而不是共用憑證。透過建立個別身分，您可以為每個使用者提供一組獨一無二的安全憑證。個別使用者可讓您稽核每個使用者的活動。 

 IAM Identity Center 建議： 
+  當使用預設目錄來建立密碼長度、複雜性和重複使用需求時，IAM Identity Center 提供預先定義的[密碼政策](https://docs.aws.amazon.com/singlesignon/latest/userguide/password-requirements.html)。 
+  當身分來源為預設目錄、AWS Managed Microsoft AD 或 AD Connector 時，[啟用 MFA](https://docs.aws.amazon.com/singlesignon/latest/userguide/mfa-enable-how-to.html) 並為 MFA 設定內容感知或永遠開啟設定。 
+  允許使用者[註冊自己的 MFA 裝置](https://docs.aws.amazon.com/singlesignon/latest/userguide/how-to-allow-user-registration.html)。 

 Amazon Cognito user pools 目錄建議： 
+  設定[密碼強度](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-policies.html)設定。 
+  對使用者[要求 MFA](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa.html)。 
+  針對[調適性驗證](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-adaptive-authentication.html) (這可封鎖可疑登入) 等功能使用 Amazon Cognito user pools [進階安全性設定](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html)。 

 IAM 使用者建議： 
+  在理想情況下，您使用 IAM Identity Center 或直接聯合。然而，您可能需要 IAM 使用者。在這種情況下，請為 IAM 使用者[設定密碼政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。您可以使用密碼政策來定義需求，例如最短長度或是密碼是否需要非字母字元等。 
+  建立 IAM 政策以[強制 MFA 登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html#tutorial_mfa_step1)，允許使用者管理自己的密碼和 MFA 裝置。 

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

 **相關的最佳實務：** 
+  [SEC02-BP03 安全地存放和使用機密](sec_identities_secrets.md) 
+  [SEC02-BP04 倚賴集中化的身分提供者](sec_identities_identity_provider.md) 
+  [SEC03-BP08 在組織內安全地共用資源](sec_permissions_share_securely.md) 

 **相關文件：** 
+ [AWS IAM Identity Center (AWS 單一登入的後繼者) 密碼政策 ](https://docs.aws.amazon.com/singlesignon/latest/userguide/password-requirements.html)
+ [ IAM 使用者密碼政策 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)
+ [設定 AWS 帳戶根使用者密碼 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)
+ [ Amazon Cognito 密碼政策 ](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-policies.html)
+ [AWS 憑證 ](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html)
+ [ IAM 安全最佳實務 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)

 **相關影片：** 
+  [使用 AWS IAM Identity Center 大規模管理使用者許可](https://youtu.be/aEIqeFCcK7E) 
+  [在每一層都能掌握身分](https://www.youtube.com/watch?v=vbjFjMNVEpc) 