Identity and Access Management(IAM) 이란?

AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어합니다.

AWS에서 최초 계정 생성시 루트 사용자가 된다. 이에 따라서 조직이나 사람에게 적절한 권한을 주어서 AWS를 사용하기 위해서는 IAM 사용자들(IAM Users) 을 생성하여 IAM Policy등을 주어서 관리할 수 있도록 제공하는 서비스이다.

AWS에서 권장사항

  • 루트 계정을 공유하지 말것.
  • IAM유저등을 생성하여 필요한 권한정책을 부여할 것.
  • 멀티팩터(Multi-Factor) 인증을 사용할 것.

IAM Users

  • 개인이나 서비스에 대한 엔티티이다.
  • AWS API, CLI, SDK등을 사용할 수 있는 Access Key ID와 Secret access key등을 가진 사용자들이다.
  • 초기 생성시 디폴트로 어떠한 권한도 없는 상태이다.
  • 루트 사용자에 의해 이메일과 패스워드로 계정을 생성된다.
  • AWS 계정당 IAM 사용자는 5000개까지 생성할 수 있다.

IAM Groups

  • IAM 그룹은 IAM 사용자들의 집합
  • 그룹에 할당된 권한이 이 그룹에 속하는 모든 사용자에게 자동으로 부여됨
  • 그룹은 자격증명(인증)이 아니고, 다수의 사용자에게 한꺼번에 정책(Policy)를 부여하는 것이다.
  • 기본 그룹은 존재하지 않는다. 그룹이 필요할 경우 만들고 사용자를 할당해야 한다.
  • 중첩(nest)된 그룹을 사용할 수 없다.

IAM Roles

  • Role은 허가된 사용자의 인증을 말한다. 권한이 아니라 인증이다.
  • Role(역할)에는 연관된 암호또는 엑세스 키와 같은 표준 장기 자격 증명이 없고 임시 보안 자격증명이 제공된다.

IAM Policies

  • Policy(정책)은 JSON으로 구성되어 있다.
  • User, Group, Role등에 부여된다.
  • 디폴트로 어떤 권한도 부여되지 않는다.

구성도

iam1

AWS에서는 User, Group등을 Role(인증)을 부여해서 자격증명을 체크하고 Policy(정책)등을 부여하여 AWS서비스를 이용하게 관리되어진다. 만약 IAM User, IAM Group등에 보안상 문제가 발생시 해당 Policy등을 삭제해서 AWS 서비스를 이용못하게 막을 수 있다.

iam2