IAM
- AWS계정을 만들어서 시작하게 되면 가장 먼저 작업하게되는 구간
- IAM 은 AWS의 리소스 접근을 안전하게 관리하는 시스템
- 최상단에는 root계정이 있고, 각각 권한이 부여된 하위 계정을 만들 수 있다.
root
├── 일반 계정
├── 배포 관리자 계정
│ ├── EC2 개발 계정
│ ├── S3,..개발 계정
│ └── ...
└── 운영 관리자 계정
└── docker 관리자 계정
루트 계정(사용자)
- 루트계정은 모든 권한을 지니고 있기 때문에, 제약을 걸 수 없다는 단점이 있다.
- 그렇기 때문에 하위 IAM 계정을 만들고 루트계정을 사용하지 않는 것이 중요하다.
- 루트계정은 개발관련된 작업을 하지 않는다.
- 오히려 관리와 같은 특수한 작업을 할때 이용한다.
- 또한, 보안을 강화하기 위해, 강력한 암호로 변경하거나 MFA(멀티 팩터 인증)을 사용한다.
- MFA는 다중인증으로, 하나의 인증이 아닌 2개 이상의 인증을 해야 접속할 수 있는 형태를 말한다.
루트 계정(사용자)이 하는 작업
- AWS 계약 해지
- 일반 사용자 관리
- 청구정보 관련 설정
- 기본값으로 청구정보에 접근 불가하기때문에 IAM유저가 청구서 정보에 접근할 수 있도록 허가한다.
- 이메일로 청구서를 받게 설정한다.링크
- 무료 용량 한도 초과 경보도 설정한다. 링크
- 월별 예상 요금 경보 만들기 링크
사용자와 그룹
- 권한부여할 사용자가 많아지면 그룹 단위로 관리한다.

IAM 대시보드를 이용해 안정성 확인하기
- AWS에서는 IAM의 보안 모범 사례를 정의한다.
- 총 5가지 항목이 있고 적절한 설정 순서가 있다.
- AWS 계정 루트 사용자의 액세스 키 잠금
- MFA활성화
- 개별 IAM사용자 생성
- 사용자 그룹을 이용한 접근 권한 할당
- 사용자에 대한 강력한 암호 정책 구성
실습
- 루트계정아닌 이미 IAM 계정을 가지고 실습해보고자 한다.
MFA 활성화
MFA이란?
- 초기 IAM 사용자는 아이디(aws iD), user이름, user 비밀번호로 로그인 할 수 있다.
- 하지만 이방식만으로는 안전한 방식이 아닐 수 있다.
- 보안 업계에서는 인증하기 위한 요소를 세가지로 분류한다.
- 아는 요소 : 본인만 알 수 있는 정보(비밀번호, 인증번호)
- 가진 요소 : 본인만 가지는 것(스마트폰, 신용카드)
- 갖춘 요소 : 본인의 생물학적요소 (지문, 홍채)
- 위 요소를 하나만 있는 것 보다 2가지 이상의 요소로 조합하여 로그인할 수 있는 편이 보안 측면에서 강력하다.
- 이처럼 여러 요소를 조합해 인증을 수행하는 것을 멀티팩터 인증(MFA)이라 한다.
인증용 스마트폰에 MFA용 어플리케이션 설치
- 스마트폰은 이미 많이 보급되어 있기 때문에, 스마트폰을 활용하여 진행
- MFA용 어플리케이션 종류
- Google Authenticator
- Microsoft Authenticator
- LastPass Authenticator
- Duo Mobile 등이 있다.
AWS MFA 설정 활성화


MFA 디바이스 할당
총 2단계 과정 진행
- 디바이스 이름과 선택

- 디바이스 설정

- 3단계 과정으로 설정할 수 있는데,
- 모바일에 애플리케이션을 설치하면 됩니다.(필자는 google Authenticator로 했음)
- QR코드 표시하면 QR코드를 볼 수 있다. 그 QR코드를 스캔하면 된다.
- 핸드폰으로 스캔하면 동시에, 일정 시간이 지나게 되면 넘어가는 6자리 번호가 나타난다.
- 해당 번호 6자리를 연속으로 2번 입력하면 인증이 완료된다.
앞으로 로그인시 나타나는 멀티 팩터 인증 창

개별 IAM 사용자 생성
사용자 생성
그룹 생성
각각의 사용자에게 접근 권한을 부여할 수도 있지만, 이렇게되면 관리가 어려워 접근 권한을 그룹에 할당하여, 누락없이 사용자에게 접근권한을 부여할 수 있다.
- IAM -> 사용자그룹 -> 그룹 생성

그룹생성하려면 설정해야되는 것
- 그룹 이름 지정
- 권한 정책 연결
- 그룹에 사용자 추가
권한 정책 연결
정책
- AWS에서는 매우 다양한 리소스를 제공하는 만큼 가각 개별적으로 접근 권한을 부여하는 것은 현실적이지 않다.대신 여러 리소스로의 접근 권한을 묶는 정책(policy )을 제공한다.
- 직접 만들 수 도 있지만, 미리 설정되어 제공되는 정책을 사용하는게 훨씬 편하다.
- PowerUserAccess : AWS안의 리소스에 대한 모든 접근 권한을 가진다.
- IAMFullAccess : IAM에 대한 모든 접근 권한을 가진다.
- 이둘의 권한이 주어져도 AWS계정 계약해지는 불가는 함으로 루트계정보다는 안전해진다.

암호 정책 구성
비밀번호 정책이 있다. 이것은 쉬운 비밀번호를 이용할 수 없도록 비밀번호 내용이나 기한에 제한을 추가할 수 있다.
