

# 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), 서드파티 ID 제공업체에 대한 강력한 로그인 메커니즘을 사용하여 AWS의 자격 증명에 대한 의도치 않은 액세스 위험을 줄입니다. 즉, MFA를 요구하고 강력한 암호 정책을 적용하며 비정상적인 로그인 동작을 감지합니다.

 **일반적인 안티 패턴**: 
+  복잡한 암호 및 MFA를 포함하여 자격 증명에 대한 강력한 암호 정책을 적용하지 않습니다.
+  다른 사용자 간에 동일한 자격 증명을 공유합니다.
+  의심스러운 로그인에 대한 탐지 제어를 사용하지 않습니다.

 **이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준:** 높음 

## 구현 지침
<a name="implementation-guidance"></a>

 인적 자격 증명으로 AWS에 로그인하는 방법에는 몇 가지가 있습니다. AWS에 인증할 때 페더레이션(AWS IAM과 중앙 집중화된 IdP 간의 직접 SAML 2.0 페더레이션 또는 AWS IAM Identity Center 사용)을 사용하는 중앙 집중식 ID 제공업체를 사용하는 것이 AWS 모범 사례입니다. 이 경우 ID 제공업체 또는 Microsoft Active Directory를 사용하여 보안 로그인 프로세스를 설정합니다.

 AWS 계정을 처음 열면 AWS 계정 루트 사용자로 시작합니다. 루트 사용자 계정은 사용자(및 [루트 사용자가 필요한 작업](https://docs.aws.amazon.com/accounts/latest/reference/root-user-tasks.html))에 대한 액세스 권한을 설정할 때만 사용해야 합니다. AWS 계정을 개설한 직후에는 계정 루트 사용자에 대해 다중 인증(MFA)을 활성화하고 [AWS 모범 사례 가이드](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_securely_operate_aws_account.html)를 사용하여 루트 사용자를 보호하는 것이 중요합니다.

 AWS IAM Identity Center는 인력 사용자를 위해 설계되었으며 서비스 내에서 사용자 ID를 생성 및 관리하고 MFA로 로그인 프로세스를 보호할 수 있습니다. 반면 AWS Cognito는 애플리케이션의 외부 사용자 ID에 대한 사용자 풀 및 ID 제공업체를 제공하는 고객 ID 및 액세스 관리(CIAM)용으로 설계되었습니다.

 AWS IAM Identity Center에서 사용자를 생성하는 경우 해당 서비스에서 로그인 프로세스를 보호하고 [MFA를 켭니다](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-mfa.html). 애플리케이션의 외부 사용자 ID의 경우 [Amazon Cognito 사용자 풀](https://docs.aws.amazon.com/cognito/index.html)을 사용하고 해당 서비스에서 로그인 프로세스를 보호하거나 Amazon Cognito 사용자 풀이 지원하는 ID 제공업체 중 하나를 사용할 수 있습니다.

 또한 AWS IAM Identity Center의 사용자의 경우 AWS 리소스에 대한 액세스 권한을 부여하기 전에 [AWS Verified Access](https://docs.aws.amazon.com/verified-access/latest/ug/what-is-verified-access.html)를 사용하여 사용자의 자격 증명 및 디바이스 태세를 확인하여 추가 보안 계층을 제공할 수 있습니다.

 [AWS Identity and Access Management(IAM)](https://aws.amazon.com/iam/) 사용자를 사용하는 경우 IAM을 사용하여 로그인 프로세스를 보호합니다.

 AWS IAM Identity Center와 직접 IAM 페더레이션을 동시에 사용하여 AWS에 대한 액세스를 관리할 수 있습니다. IAM 페더레이션을 사용하여 AWS Management Console 및 서비스에 대한 액세스를 관리하고 IAM Identity Center를 사용하여 Quick 또는 Amazon Q Business와 같은 비즈니스 애플리케이션에 대한 액세스를 관리할 수 있습니다.

 로그인 방법에 관계없이 강력한 로그인 정책을 적용하는 것이 중요합니다.

### 구현 단계
<a name="implementation-steps"></a>

 다음은 일반적인 강력한 로그인 권장 사항입니다. 구성하는 실제 설정은 회사 정책에 따라 설정하거나 [NIST 800-63](https://pages.nist.gov/800-63-3/sp800-63b.html)과 같은 표준을 사용해야 합니다.
+  MFA 필수(Require MFA). 사람의 ID 및 워크로드에 [MFA를 요구하는 것이 IAM 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#enable-mfa-for-privileged-users)입니다. MFA를 활성화하면 사용자가 로그인 자격 증명과 일회용 암호(OTP) 또는 하드웨어 디바이스에서 암호로 확인 및 생성된 문자열을 제공해야 하는 추가 보안 계층이 제공됩니다.
+  암호 강도의 기본 요소인 최소 암호 길이를 적용합니다.
+  암호 복잡성을 적용하여 암호를 추측하기 어렵게 만듭니다.
+  사용자에게 자신의 암호를 변경할 수 있도록 허용 
+  공유 자격 증명 대신 개별 자격 증명을 생성합니다. 개별 자격 증명을 생성하여 각 사용자에게 고유한 보안 자격 증명 세트를 제공할 수 있습니다. 개별 사용자는 각 사용자의 활동을 감사할 수 있는 기능을 제공합니다.

 IAM Identity Center 권장 사항: 
+  IAM Identity Center는 암호 길이, 복잡성 및 재사용 요구 사항을 설정하는 기본 디렉터리를 사용할 때 미리 정의된 [암호 정책](https://docs.aws.amazon.com/singlesignon/latest/userguide/password-requirements.html)을 제공합니다.
+  [MFA를 활성화](https://docs.aws.amazon.com/singlesignon/latest/userguide/mfa-enable-how-to.html)하고 자격 증명 소스가 기본 디렉터리, AWS Managed Microsoft AD 또는 AD Connector인 경우 MFA에 대한 컨텍스트 인식 또는 상시 설정을 구성합니다.
+  사용자가 [자신의 MFA 디바이스를 등록](https://docs.aws.amazon.com/singlesignon/latest/userguide/how-to-allow-user-registration.html)하도록 허용합니다.

 Amazon Cognito 사용자 풀 디렉터리 권장 사항: 
+  [암호 강도](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)합니다.
+  Amazon Cognito 사용자 풀의 [고급 보안 설정](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html)을 사용하여 의심되는 로그인을 차단할 수 있는 [적응형 인증](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-adaptive-authentication.html)과 같은 기능을 사용합니다.

 IAM 사용자 권장 사항: 
+  IAM Identity Center 또는 직접 페더레이션을 사용하는 것이 좋습니다. 그러나 IAM 사용자가 필요할 수 있습니다. 이 경우 IAM 사용자에 대한 [암호 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)을 설정합니다. 암호 정책을 사용하여 최소 길이 또는 알파벳 이외 문자 포함 여부 등과 같은 요구 사항을 정의할 수 있습니다.
+  [MFA 로그인을 적용](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html#tutorial_mfa_step1)하도록 IAM 정책을 생성합니다. 그러면 사용자가 자신의 암호와 MFA 디바이스를 관리할 수 있습니다.

## 리소스
<a name="resources"></a>

 **관련 모범 사례:** 
+  [SEC02-BP03 안전하게 보안 암호 저장 및 사용](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_identities_secrets.html) 
+  [SEC02-BP04 중앙 집중식 ID 공급업체 사용](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_identities_identity_provider.html) 
+  [SEC03-BP08 안전하게 조직과 리소스 공유](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_share_securely.html) 

 **관련 문서:** 
+  [AWS IAM Identity Center 암호 정책](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 password policy](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) 

 **관련 비디오:** 
+  [Managing user permissions at scale with AWS IAM Identity Center](https://youtu.be/aEIqeFCcK7E) 
+  [Mastering identity at every layer of the cake](https://www.youtube.com/watch?v=vbjFjMNVEpc) 