AWS - IAM 계정의 기초지식과 로직 이해하기
앞에서 배웠듯 IAM이란, AWS Identity Access Management 를 사용한 계정으로,
IAM 계정을 이용하면 AWS 서비스와 리소스에 대한 엑세스를 비교적 안전하게 관리할 수 있다.
IAM의 주요기능
1. 사용자 생성 및 관리, 계정의 보안 설정
일정 시간마다 패스워드를 변경할 수 있는 정책을 설정하여 사용자의 PW 정책을 관리한다.
2. AWS 계정관리 및 리소스/사용자/서비스의 권한 제어
서비스 사용을 위한 인증정보를 부여하여 계정을 관리한다.
3. 다른 계정과의 리소스 공유
주의사항
IAM은 Region 별 서비스가 아닌 글로벌 서비스이므로,
계정 생성 시 AWS 서비스 전체에 적용된다는 것을 알아두자.
IAM의 구성
IAM은 다음과 같이 네가지로 분류할 수 있다.
① 사용자
실제 AWS를 사용하는 사람 혹은 어플리케이션
② 그룹
사용자의 집합으로, 그룹에 속한 사용자는 그룹에 부여된 권한을 행사한다. 동일한 의미에서 같은 권한을 가진 사용자들을 하나의 그룹으로 묶어 관리한다. ex. 개발팀 그룹, 경영지원팀 그룹..
③ 정책
사용자와 그룹이 무엇을 할 수 있는가?를 정의하는 문서이다. 정책은 *JSON 형식으로 정의된다.
ex) 관리자는 모든 정보를 열람할 수 있다. 개발팀은 EC2 인스턴스만 만질 수 있다. 회계팀은 S3의 회계자료를 열람만 할 수 있다. 등 ..
④ 역할
AWS 리소스에 부여하여 AWS 리소스가 무엇을 할 수 있는가에 대해 정의한다.
* JSON이란?
Java Script Object Notation의 약자로, 주로 다양한 프로그램에서 프로그램 간 데이터를 주고 받기 위해 사용한다.
IAM 로직파악 - 권한 검증
만약 사용자가 특정 서비스를 사용하고 싶어할 경우,
IAM은 위와 같이 사용자 → 그룹 → 역할 순서의 로직으로 권한을 검증한다.
IAM 기능파악 - 자격증명 보고서
IAM의 자격증명 보고서란, 암호, 엑세스 키, MFA장치 등 IMA 계정의 현재 상황을 자세하게 볼 수 있다.
- 암호 : 암호의 활성화 여부, 마지막으로 사용/변경된 시간, 언제 변경이 필요한지
- 엑세스 키 : 엑세스 키 활성화 여부, 마지막으로 사용/변경된 시간, 어떤 서비스에 마지막으로 사용되었는지
- 기타 : MFA 사용여부, 사용자 생성시간
등의 정보들을 포함하고 있으며, AWS콘솔, CLI, API에서 생성 요청 및 다운로드가 가능하다.
+ IAM 자격증명 보고서는 4시간에 1회만 다운로드 가능, 다운로드 받은 파일은 4시간동안 저장된다.
IAM, 사용 시 주의하자!
- 루트 사용자는 관리용으로만, 실제 작업은 IAM 사용자로 진행하기
- 관리의 용이함을 위해 불필요한 사용자는 만들지 않기
- 가능하면 그룹과 정책을 사용해 유저들을 관리하기
- 최소한의 권한만을 사용하는 습관을 들이기
→ 보안 측에서 매우 중요시 여기는 Principle of least privilege! 필요하지 않은 권한은 줄 필요가 없다.
- MFA를 활성화 하기
- Access key 대신에 역할을 활용하기
- IAM 자격증명보고서를 활용하여 IAM 계정의 상태를 주기적으로 확인하기