MFA는 계정 보안을 강화하기 위해 2개 이상의 인증 요소를 요구하는 인증 방식이다.
기본적인 ID(사용자 이름)와 비밀번호만 사용하는 단일 요소 인증(SFA, Single-Factor Authentication)보다 보안성이 뛰어나다.
기본적인 비밀번호 기반 로그인 방식에는 보안 취약점이 존재한다.
✅ MFA를 적용하면 비밀번호가 유출되어도 추가 인증이 필요하여 계정 보호가 가능
MFA는 일반적으로 3가지 인증 요소 중 2개 이상을 조합하여 인증을 수행한다.
인증 요소 | 설명 | 예시 |
---|---|---|
1. 지식 기반 (Something You Know) | 사용자가 알고 있는 정보 | 비밀번호, PIN, 보안 질문 |
2. 소유 기반 (Something You Have) | 사용자가 물리적으로 소유한 것 | OTP(일회용 인증 코드), 보안 토큰, 스마트 카드 |
3. 생체 기반 (Something You Are) | 사용자의 고유한 신체 특징 | 지문, 얼굴 인식, 홍채 인식 |
✅ 예제:
ID + 비밀번호
(단일 요소)ID + 비밀번호 + SMS OTP(문자 인증)
(이중 요소)ID + 비밀번호 + 지문 인증
(이중 요소)1️⃣ 사용자가 ID
와 비밀번호
를 입력
2️⃣ 서버가 1차 인증(비밀번호)이 맞는지 확인
3️⃣ 추가적인 2차 인증 요청 (OTP, 보안 토큰, 생체 인증 등)
4️⃣ 2차 인증이 성공하면 로그인 승인
✅ 일반적인 MFA 로그인 흐름 예시 (OTP 방식)
사용자: ID + 비밀번호 입력 ➜ 서버: 1차 인증 성공
서버: OTP 요청 ➜ 사용자: 스마트폰 앱에서 OTP 입력
서버: 2차 인증 성공 ➜ 로그인 완료
AWS에서는 MFA를 필수 보안 조치로 권장하며, 특히 다음과 같은 경우 적용 가능하다.
MFA Delete
기능을 활성화하여 루트 사용자 + MFA 인증이 있어야 삭제 가능✅ 예제: AWS CLI를 이용한 MFA 기반 S3 객체 삭제
aws s3api delete-object --bucket my-bucket --key my-object.txt --version-id exampleVersionID \
--mfa "arn:aws:iam::123456789012:mfa/root-account-mfa-device 123456"
➡ MFA 코드가 없으면 영구 삭제 불가!
AWS에서는 다양한 MFA 방식을 지원한다.
MFA 유형 | 설명 | 예시 |
---|---|---|
가상 MFA 디바이스 | 스마트폰 앱에서 생성된 6자리 코드 입력 | Google Authenticator, Authy |
하드웨어 MFA 디바이스 | 물리적인 보안 키 사용 | YubiKey, Gemalto |
U2F 보안 키 | WebAuthn/FIDO2 기반 보안 키 사용 | YubiKey, Feitian |
생체 인증 | AWS에 등록된 생체 정보 사용 | Windows Hello, Face ID |
✅ AWS에서는 가상 MFA 디바이스
를 가장 많이 사용 (비용이 들지 않고 설정이 쉬움)
1️⃣ 백업 코드나 보조 인증 수단을 준비
aws:MultiFactorAuthPresent
조건 활용)MFA Delete
활성화개념 | 설명 |
---|---|
MFA (다중 요소 인증) | 두 개 이상의 인증 요소를 사용하여 계정 보안을 강화 |
필요한 이유 | 비밀번호 유출, 공격 방지, 보안 강화 |
인증 요소 | (1) 지식 기반 (비밀번호), (2) 소유 기반 (OTP, 보안 키), (3) 생체 기반 (지문, 얼굴) |
작동 방식 | 1차 인증(ID + 비밀번호) 후, 2차 인증(OTP, 보안 키 등) 수행 |
AWS에서의 활용 | AWS 계정 보호, S3 객체 버전 삭제 보호, IAM 사용자 보안 강화 |
MFA 유형 | 가상 MFA 앱, 하드웨어 보안 키, 생체 인증 등 |
설정 시 고려 사항 | 백업 코드 저장, 강제 정책 설정, S3 MFA Delete 활성화 |