AWS

AWS 계정 관리

버그 라이프 2015. 5. 20. 17:26

AWS에서 이용하는데 있어, 다소 헤깔릴 수 있는 '계정'에 대해서 정리해 보았습니다.


AWS에서 사용하는 계정

  • OS(Linux / Windows) 계정
  • AWS 계정
  • IAM

OS 계정은 OS에서 관리되는 계정이고, IAM과 AWS 계정은 AWS에서 관리되는 계정을 의미한다.


OS(Linux / Windows) 계정

  • Linux 및 Windows에서 생성된 개정이고, OS의 설정이나 미들웨어 Application 설정등이 가능하다.
  • 물리적인 서버 환경에서 클라우드로 전화해도 OS 계정에서 할 일은 거의 변경되지 않는다.
  • 기존 하던데로 관리하면 된다.


AWS 계정

  • Linux의 Root 계정과 동일한 성격의 계정
  • AWS에서의 모든 작업을 수행이 가능하다. 원칙적으로 MFA와 연동을 하고 IAM 관리자 계정을 사용하고 가급적 사용하지 않는다.


IAM

  • AWS 를 안전하게 사용하기 위한 인증/허가 시스템을 의미 한다.
    • 쉽게 이야기해서 인스턴스를 생성하고, 네트웍 설정 등 서버 구성을 할 수 있는 사용자를 생성하고 권한을 부여할 수 있다.
  • AWS 사용자 인증 및 접근 정책 관리
    • AWS 관리를 위한 그룹, 사용자 및 role(역할) 생성
    • 그룹별 제한된 권한의 부여 가능
    • 사용자별 인증(MFA) 및 권한 부여 가능

    • IAM에서 사용하는 인증 도구 - 1
      • Access Key / Secret Access Key
      • AWS CLI를 사용하는 필요한 정보이고, 2개까지 생성이 가능하며, key가 외부에 노출되지 않도록 주의해야 한다.
    • IAM에서 사용하는 인증 도구 - 2
      • AWS 관리 콘솔 로그인 암호(Web Access)
      • MFA(Multi-Factor Authentication)

사용자 기반과 리소스 기반 권한 설정

  • IAM 사용자 기반
    • IAM 사용자 에게 부여된 권한으로 Access Key / Secret Access Key를 통해서 AWS에 자원을 제어 할 수 있다.
      CLI 즉, 프로그램벅으로 S3 Bucket, SQS 등에 대한 접근이 가능하게 된다.
    • 주로 AWS 외부에서 AWS 자원에 접근하는 용도로 적합하다.
      예로, Production 환경만 AWS에서 운영하고, 나머지 Staging이나 QA는 AWS가 아닌 곳에서 운영을 한다면,
      Staging과 QA에서만 사용한다.
  • IAM Role 기반(리소스)
    • IAM 사용자가 아닌 AWS 자원에 권한을 부여하여, 권한이 부여된 자원에서 AWS를 자원을 제어할 수 있다.
    • 주로, EC2 인스턴스에 적합한 권한을 부여하고, AWS 자원에서 접근하는 용도로 사용하며,
      AWS EC2 인스턴스에서는 사용자 기반이 아닌 Role 기반으로 처리하도록 한다.
  • IAM 사용자와 Role 기반 비교
    • IAM Role을 사용하게 되면 인스턴스와 key 관리를 분리하여 프로그램에 key 정보를 노출하지 않으므로 더 높은 보안성을 제공할 수 있다.

Reference

  • http://dev.classmethod.jp/cloud/aws/aws-beginner-account/
  • http://www.slideshare.net/awskorea/20150109-aws-black-belt-iam-younjin?related=1