📌 IAM 이란?
IAM(Identity & Access Management)는 AWS 서비스와 리소스에 접근을 관리하는 기능
*IAM 계정이 서비스에 접근할때 AWS API를 통해 인증과 인가 과정을 거친다.
인증(authentication): 사용자 계정의 암호나 접근키로 올바르게 접근했는지 확인
인가(authorization): 사용자에게 권한이 있는지 확인
📌 IAM 구성요소
- AWS 루트계정: 계정의 모든 권한을 가짐
- IAM 사용자: 특정 작업을 수행할수 있게 일부 권한을 가짐
- IAM 그룹: IAM 사용자의 그룹, 사용자만 그룹에 포함
- IAM 정책(policy): IAM 사용자 또는 IAM 그룹 권한이 기록되있는 JSON 문서
- IAM 역할: IAM 사용자나 그룹이 아닌, AWS 서비스의 권한을 부여 → E2C Instance Role
📌 IAM 특징
- IAM은 글로벌 서비스입니다.(리전 지정이 필요없음)
- IAM 사용자들은 다중 사용자 그룹에 속할수 있습니다.
- IAM 사용자들을 그룹에 속할 필요는 없습니다.
- IAM 사용자 그룹은 IAM 사용자만 포함할수 있습니다.(그룹이 그룹을 포함할수없음)
- IAM 사용자에게는 최소한의 권한만 부여합니다.
📌 IAM 정책
IAM 사용자 또는 IAM 그룹 권한이 기록되있는 JSON 문서
- 그룹정책: IAM정책이 그룹을 통해서 IAM 사용자에게 연결
- 인라인 정책: IAM정책이 IAM 사용자에게 직접 연결
- IAM 정책은 시드, 효과, 원칙, 조치, 리소스, 조건으로 구성됩니다.
IAM 정책 구조(중요)
- version
- Id(선택)
- Statement(필수기재)
📌 AWS 3가지 접근방법
- AWS Management Console (protected by password + MFA)
- AWS Command Line Interface (CLI): protected by access keys
- AWS Software Developer Kit (SDK) - for code: protected by access keys
📌 IAM 보안
- Password Policy
- MFA(Multi Factor Authentication)
📌 IAM 보안 도구
- IAM 자격증명 보고서 (account-level)
- IAM 엑세스 어드바이저 (user-level)
📌 IAM 모범사례
- 한 사람당 하나의 IAM 사용자 생성
- Don’t use the root account except for AWS account setup
- AWS 계정 자격증명 공유하지 않기
- 다단계 인증(MFA)의 사용
- Create and use Roles for giving permissions to AWS services
- Use Access Keys for Programmatic Access (CLI / SDK)
- Audit permissions of your account using IAM Credentials Report & IAM Access Advisor
- Never share IAM users & Access Keys
참고자료
- AWS 교과서
- [udemy] AWS Certified Solutions Architect Associate 시험합격!