보통 AWS에서 개발을 진행한다고 하면, 개발에 급급한 나머지 root을 계정을 공유하게 되는 종종 있다. root 계정은 관리자 계정으로써 AWS상에서의 모든 자원에 접근이 가능하다. 계정을 공유하는 것이 편리할지는 모르겠지만, 이를 잘 못 사용하거나 의도하지 않게 유출될 경우 보안상 큰 문제가 될 수 밖에 없다.
예로, IDC에 악의적인 제 3자가 침투하여 서버를 고장내고 Data를 삭제하는 것과 같은 사고가 발생 될 수도 있고, 실제로 코드스페이스의 경우 이와 같은 상황이 클라우드 상에서 발생되어 사업을 폐쇄 할 수 밖에 없게 되었다.
또한 나중에 보완을 하려고 한다면 이를 수정하는데는 매우 많은 시간일 걸릴 수 있으며, 이 시간이 길어 질 수록 보안상에 치명적인 문제를 안고 있는 것이다.
AWS의 경우에는 개인별 계정 및 리소스에 접근을 제한 할 수 있는 Identity and Access Management(이하 AIM)를 제공하니, 개발 초기부터 적극 도입하여 가장 기본적인 보안적인 사항 부터 챙겨야 겠다.
IAM
IAM으로 AWS에서 제공하는 서비스와 자원을 관리 할 수 있다.그룹 및 사용자들 만드는 것으로 발급된 ID는 "누가 작업을 할 것인가'라는 정체성을 관리하고 정책에 의해 "그 주체는 그 작업을 할 권한이 있는지"를 관리한다.
이를 통해서, 특정 계정은 특정 인스턴스에만 접근이 가능할 수 있으며, 이런 방식으로 "개발자" 및 "운영" 에 대한 권한을 만들에 계정을 할당 할 수 있다.
개인 계정
IAM에서 사용자를 생성하거나, 사용자에게 개별 보안 자격 증명(액세스 키, 암호, 멀티 팩터 인증 디바이스)을 할당하거나, AWS 서비스 및 리소스에 대한 액세스를 제공할 수 있도록 임시 보안 자격 증명을 요청할 수 있으며, 사용자가 수행할 수 있는 작업을 제어하기 위해 권한을 관리할 수 있다.
Role
IAM에 Role을 생성하고 역할을 가정하는 엔터티 또는 AWS 서비스에 의해 수행될 수 있는 작업을 제어하는 권한을 관리할 수 있다. 또한 역할을 가정할 수 있는 엔터티를 정의할 수 있다.
ID 패터레이션
ID 페더레이션을 사용하면 ID별로 IAM 사용자를 생성하지 않고도 기업의 기존 ID(예: 사용자)로 AWS Management Console에 액세스하고 AWS API를 호출하고 리소스에 액세스할 수 있다.
참고
- http://aws.amazon.com/ko/iam/
'AWS' 카테고리의 다른 글
AWS Cloud 2016 발표 후기 (0) | 2016.01.11 |
---|---|
AWS Region 선택의 중요성 (0) | 2016.01.11 |
Amazon Cognito에 대한 날림 정리 (0) | 2015.07.21 |
AWS 계정 관리 (0) | 2015.05.20 |
인스턴스 권한을 변경 할 수 있는 IAM Policy (0) | 2015.03.09 |