사용자가 MFA 장치와 자격 증명을 직접 관리하도록 허용하기
사용자가 MFA 장치와 자격 증명을 직접 관리하도록 허용하기
사용자가 Security credentials 페이지에서 자기 MFA(다중 인증) 장치와 자격 증명을 직접 관리하도록 허용할 수 있어요. AWS Management Console로 사용자에게 액세스 키, 비밀번호, 서명 인증서, SSH 공개 키 같은 자격 증명을 구성하고, 필요 없는 자격 증명을 삭제하거나 비활성화하며, MFA 장치를 활성화해줄 수 있어요. 사용자 수가 적을 때는 이 방식이 유용하지만, 사용자 수가 늘어나면 관리자에게 큰 부담이 될 수 있어요. 이 튜토리얼에서는 관리자에게 부담을 주지 않고 이런 모범 사례를 적용하는 방법을 보여드릴게요.
출처: 문서
본문
이 튜토리얼은 사용자가 MFA로 로그인할 때만 AWS 서비스에 접근하도록 허용하는 방법을 보여줘요. MFA 장치로 로그인하지 않으면 다른 서비스에 접근할 수 없어요.
이 워크플로는 세 가지 기본 단계로 이루어져 있어요.
1단계: MFA 로그인을 강제하는 정책 생성
몇 가지 IAM 액션을 제외한 모든 액션을 금지하는 고객 관리형 정책을 만들어요. 이 예외 덕분에 사용자는 Security credentials 페이지에서 자기 자격 증명을 변경하고 MFA 장치를 관리할 수 있어요. 해당 페이지에 접근하는 방법은 "IAM 사용자가 자기 비밀번호를 변경하는 방법(콘솔)"을 참고하세요.
2단계: 테스트 사용자 그룹에 정책 연결
MFA로 로그인하면 모든 Amazon EC2 액션에 대한 전체 접근 권한을 갖는 사용자 그룹을 만들어요. 이렇게 하려면 AWS 관리형 정책인 AmazonEC2FullAccess와 1단계에서 만든 고객 관리형 정책, 두 가지를 모두 연결해요.
3단계: 사용자 접근 테스트
테스트 사용자로 로그인해 사용자가 MFA 장치를 만들기 **전까지**는 Amazon EC2에 접근할 수 없는지 확인해요. 그런 뒤 사용자가 해당 장치로 로그인하면 접근이 가능해져요.
사전 요구 사항 (Prerequisites)
이 튜토리얼의 단계를 수행하려면 다음이 이미 준비되어 있어야 해요.
- 관리 권한이 있는 IAM 사용자로 로그인할 수 있는 AWS 계정
- 1단계에서 정책에 입력할 계정 ID 번호. 계정 ID 번호를 찾으려면 페이지 상단 탐색 모음에서 Support를 선택한 뒤 Support Center를 선택하면 돼요. 이 페이지의 Support 메뉴 아래에서 계정 ID를 찾을 수 있어요.
- 가상(소프트웨어 기반) MFA 장치, FIDO 보안 키, 또는 하드웨어 기반 MFA 장치
- 다음 조건을 충족하는 테스트 IAM 사용자
| 사용자 이름 | 사용자 이름 지침 | 사용자 그룹 이름 | 그룹에 멤버로 추가 | 사용자 그룹 지침 |
|---|---|---|---|---|
| MFAUser | Enable console access – optional 옵션만 선택하고 비밀번호를 할당해요. | EC2MFA | MFAUser | 이 사용자 그룹에 어떤 정책도 연결하거나 권한을 부여하지 마세요. |
1단계: MFA 로그인을 강제하는 정책 생성
먼저 IAM 사용자가 자기 자격 증명과 MFA 장치를 관리하는 데 필요한 권한 외의 모든 권한을 거부하는 IAM 고객 관리형 정책을 만들어요.
- 관리자 자격 증명이 있는 사용자로 AWS Management Console에 로그인해요. IAM 모범 사례에 따라 AWS 계정 루트 사용자 자격 증명으로는 로그인하지 마세요.
- 중요 – IAM 모범 사례에서는 휴먼 사용자가 장기 자격 증명을 가진 IAM 사용자를 사용하는 대신, 자격 증명 공급자와의 페더레이션으로 임시 자격 증명을 사용해 AWS에 접근할 것을 권장해요. 페더레이션 사용자가 지원하지 않는 특정 사용 사례에만 IAM 사용자를 사용하는 것을 권장해요.
- https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 열어요.
- 탐색 창에서 Policies를 선택한 뒤 Create policy를 선택해요.
- JSON 탭을 선택하고 다음 JSON 정책 문서에서 텍스트를 복사해요: AWS: MFA로 인증된 IAM 사용자가 Security credentials 페이지에서 자기 자격 증명을 관리할 수 있게 허용.
- 정책 텍스트를 JSON 텍스트 상자에 붙여넣어요. 정책 검증 중 생성된 보안 경고, 오류, 일반 경고를 해결한 뒤 Next를 선택해요.
- 참고 – Visual editor와 JSON 옵션을 언제든 전환할 수 있어요. 하지만 위 정책에는 비주얼 편집기에서 지원하지 않는
NotAction요소가 포함돼 있어요. 이 정책의 경우 Visual editor 탭에 알림이 표시될 거예요. 계속 작업하려면 JSON으로 돌아가세요. - 이 예제 정책은 사용자가 AWS Management Console에 처음 로그인할 때 비밀번호를 재설정하는 것은 허용하지 않아요. 새 사용자에게는 로그인 후 비밀번호를 재설정할 때까지 권한을 부여하지 않는 것을 권장해요.
- Review and create 페이지에서 정책 이름에
Force_MFA를 입력해요. 정책 설명에는This policy allows users to manage their own passwords and MFA devices but nothing else unless they authenticate with MFA.를 입력해요. Tags 영역에서 고객 관리형 정책에 태그 키-값 쌍을 선택적으로 추가할 수 있어요. 정책이 부여하는 권한을 검토한 뒤 Create policy를 선택해 작업을 저장해요. - 새 정책이 관리형 정책 목록에 나타나며 연결할 준비가 돼요.
2단계: 테스트 사용자 그룹에 정책 연결
다음으로 테스트 IAM 사용자 그룹에 MFA 보호 권한을 부여할 두 정책을 연결해요.
- 탐색 창에서 User groups를 선택해요.
- 검색 상자에 **
EC2MFA**를 입력하고 목록에서 그룹 이름(확인란이 아니라)을 선택해요. - Permissions 탭을 선택하고 Add permissions를 선택한 뒤 Attach policies를 선택해요.
- Attach permission policies to EC2MFA group 페이지의 검색 상자에
EC2Full을 입력하고 목록에서 AmazonEC2FullAccess 옆의 확인란을 선택해요. 아직 변경 사항을 저장하지 마세요. - 검색 상자에
Force를 입력하고 목록에서 Force_MFA 옆의 확인란을 선택해요. - Attach policies를 선택해요.
3단계: 사용자 접근 테스트
이 부분에서는 테스트 사용자로 로그인해 정책이 의도대로 동작하는지 확인해요.
- 이전 섹션에서 할당한 비밀번호로
MFAUser로 AWS 계정에 로그인해요. URLhttps://``<alias or account ID number>``.signin.aws.amazon.com/console을 사용해요. - EC2를 선택해 Amazon EC2 콘솔을 열고, 사용자에게 어떤 작업도 할 권한이 없는지 확인해요.
- 오른쪽 위 탐색 모음에서
MFAUser사용자 이름을 선택하고 Security credentials를 선택해요. - 이제 MFA 장치를 추가해요. Multi-factor Authentication (MFA) 섹션에서 Assign MFA device를 선택해요.
- 참고 –
iam:DeleteVirtualMFADevice를 수행할 권한이 없다는 오류가 발생할 수 있어요. 이는 누군가 이전에 이 사용자에게 가상 MFA 장치를 할당하는 작업을 시작했다가 취소했기 때문일 수 있어요. 계속하려면 사용자 또는 다른 관리자가 사용자의 기존 미할당 가상 MFA 장치를 삭제해야 해요. 자세한 내용은 "iam:DeleteVirtualMFADevice 수행 권한이 없다고 나와요"를 참고하세요. - 이 튜토리얼에서는 모바일 폰의 Google Authenticator 앱 같은 가상(소프트웨어 기반) MFA 장치를 사용해요. Authenticator app를 선택하고 Next를 클릭해요.
- IAM이 QR 코드 그래픽을 포함한 가상 MFA 장치의 구성 정보를 생성하고 표시해요. 이 그래픽은 QR 코드를 지원하지 않는 장치에서 수동 입력할 수 있는 비밀 구성 키를 나타내는 표현이에요.
- 가상 MFA 앱을 열어요. (가상 MFA 장치를 호스팅하는 데 사용할 수 있는 앱 목록은 "가상 MFA 애플리케이션"을 참고하세요.) 가상 MFA 앱이 여러 계정(여러 가상 MFA 장치)을 지원한다면 새 계정(새 가상 MFA 장치)을 만들 옵션을 선택해요.
- MFA 앱이 QR 코드를 지원하는지 확인하고 다음 중 하나를 수행해요.
- 마법사에서 Show QR code를 선택한 뒤 앱으로 QR 코드를 스캔해요. 예를 들어 카메라 아이콘 또는 Scan code와 비슷한 옵션을 선택하고 장치의 카메라로 코드를 스캔하면 돼요.
- Set up device 마법사에서 Show secret key를 선택한 뒤 비밀 키를 MFA 앱에 입력해요.
- 작업이 끝나면 가상 MFA 장치가 일회용 비밀번호를 생성하기 시작해요.
- Set up device 마법사의 Enter the code from your authenticator app. 상자에 가상 MFA 장치에 현재 표시되는 일회용 비밀번호를 입력하고 Register MFA를 선택해요.
- 중요 – 코드를 생성한 직후 요청을 제출하세요. 코드를 생성한 뒤 너무 오래 기다렸다가 요청을 제출하면 MFA 장치는 사용자와 성공적으로 연결됩니다. 하지만 MFA 장치가 동기화되지 않아요. 시간 기반 일회용 비밀번호(TOTP)는 짧은 시간 후 만료되기 때문이에요. 이 경우 장치를 다시 동기화할 수 있어요.
- 이제 가상 MFA 장치를 AWS와 함께 사용할 준비가 됐어요.
- 콘솔에서 로그아웃한 뒤
MFAUser로 다시 로그인해요. 이번에는 AWS가 폰의 MFA 코드를 입력하라고 요구해요. 코드를 받은 뒤 상자에 입력하고 Submit을 선택해요. - EC2를 선택해 Amazon EC2 콘솔을 다시 열어요. 이번에는 모든 정보를 보고 원하는 작업을 수행할 수 있는 것을 확인할 수 있어요. 이 사용자로 다른 콘솔로 이동하면 접근 거부 메시지가 표시돼요. 이 튜토리얼의 정책이 Amazon EC2에만 접근을 허용하기 때문이에요.
관련 리소스 (Related resources)
추가 정보는 다음 항목을 참고하세요.