가장 강력한 보안 열쇠가 바로 IAM이다.사용자 (User): “누가?”
실제로 AWS를 사용하는 사람이나 애플리케이션이다.
각 사용자마다 고유한 아이디와 비밀번호를 가진다.
그룹 (Group): “비슷한 사람들끼리”
사용자들의 집합이다.
일일이 권한을 주는 대신, 그룹에 권한을 주면 그 안의 사용자들은 자동으로 그 권한을 상속받는다.
ex) ‘백엔드 개발팀’ 그룹을 만들고 S3와 EC2 접근 권한을 주면, 팀에 새로 합류한 신입 사원을 이 그룹에 넣기만 해도 바로 일을 시작할 수 있다.
정책 (Policy): “무엇을 할 수 있는가?”
권한을 정의한 설명서이다. JSON 형식으로 작성되며, 어떤 자원에 대해 어떤 행동을 할 수 있는지 상세히 적혀 있다.
ex) S3의 버킷에 있는 파일들을 읽기만 허용
역할 (Role): “잠시 빌려 쓰는 신분”
특정 사용자나 서비스(EC2)가 일시적으로 맡는 역할이다. 사용자와 달리 고정된 비밀번호가 없으며, 보안상 가장 권장되는 방식이다.
ex) EC2서버가 S3에서 주가 데이터를 가져와야 할 때, EC2에 직접 내 Access Key를 저장하는게 아니라 S3 읽기 전용 역할을 EC2에게 부여한다.