IAM 및 CLI

📌 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 시험합격!