[20210515] AWS IAM(Identity & Access Management)

What is IAM(Identity & Access Management)?

일반적으로 AWS 서비스에 외부 서비스가 접근할 수 없다. IAM은 AWS resources에 안전하게 접근할 수 있도록 해주는 aws service인데 이를 사용해서 외부 서비스에서도 AWS 서비스에 접근할 수 있게 된다. 현재 프로젝트에서는 Travis CI가 AWS의 S3와 CodeDeploy에 접근할 수 있도록 IAM을 사용하고 있다.

AWS에서 IAM을 사용하는 추천 방법

AWS에 처음 가입을 하고 로그인을 하게되면 root user라는 모든 resources에 접근할 수 있는 AWS account를 사용하게 되는데, root user로 AWS resources에 접근하는 방법은 AWS에서 추천하는 방법이 아니다. AWS에서는 AWS resources에 접근하는 방법으로 IAM을 이용해서 접근 하는 방식을 추천한다. 그렇기에 root user는 IAM user를 생성하는데에만 사용된다.

IAM 사용 방법

IAM 사용자를 추가하게 되면 여러 설정을 하게되는데 이때 어느 resources에 접근할지를 추가하면 해당 resources에만 접근할 수 있게 된다. 사용자를 생성하게되면 해당 사용자의 엑세스 키와 비밀 엑세스 키가 생성되는데, Travis CI에서는 해당 키들을 사용해서 AWS에 접근할 권한을 얻을 수 있게된다.

IAM에서의 account

account 종류에는 그룹, 사용자, 역할이 있다. 그룹은 사용자들의 collection이다. 사용자는 외부에서 AWS 서비스를 이용할 때 사용한다. 역할은 AWS 내부 서비스에서 다른 서비스에 접근하기 위해 사용한다.


What is IAM?