AWS 계정을 만들어보자

글쓴이 상배 윤 날짜

AWS 클라우드 서비스를 사용하기 위해서는 먼저 AWS 계정을 만들어야 한다. 다른 인터넷 서비스의 계정 만드는 것과 비슷하지만, 인터넷 상에 컴퓨팅 인프라를 만들어 쓴다는 점에서 몇 가지 차이가 있다.

  1. AWS 클라우드 서비스를 이용해서 인터넷 상에 IDC를 만들고 소프트웨어를 배포 할 수 있다. 인프라 관리, 보안, 소프트웨어 배포와 관리 모든 것을 통합한다. 따라서 여러 조직과 사용자를 관리 할 수 있도록 계정 시스템이 만들어져 있다. 사용자는 계정 관리 시스템을 알고 있어야 한다.
  2. AWS 클라우드 서비스는 인터넷 상에서 컴퓨팅 파워를 대여해서 사용하는 개념이다. 대여하는데 비용이 들어가기 때문에, 비용 지불 수단을 등록해야 한다. 그리고 “쓴 만 큼 과금” 하는 종량제 요금을 제시하기 때문에, 자원에 대한 관리도 신경을 써야 한다. 그렇지 않으면 요금 폭탄을 맞을 수 있다.
  3. AWS 클라우드 서비스는 유연하고 편하게 컴퓨팅 자원을 확대하고 축소 할 수 있다. 수 분안에 수십대의 가상 컴퓨터를 실행할 수 있다. 계정이 털릴 경우 요금 폭탄을 맞을 수 있다. 다른 서비스들에 비해서 계정 보안에 상당히 많은 신경을 써야 한다.

이 포스트에서 AWS 계정을 만들고 유지하는 방법을 살펴볼 것이다. 기본적으로 개인이 아닌, 팀 사용자(몇 명의 사용자를 관리해야 하는 팀) 환경을 기준으로 한다.

AWS 루트 Account 만들기

AWS 계정을 만들기 위해서 https://aws.amazon.com 사이트에 접근을 한다.

가입하기 버튼을 누르면 AWS 계정 생성 페이지로 넘어간다.

이메일 주소와 암호를 입력하고, 약관에 동의하면 계정이 만들어진다. 처음 계정을 만들면 12개월 프리 티어 엑세스 권한을 주는데, Amazon EC2, S3, DynamoDB등 핵심 서비스를 일정 크기만큼 무료로 사용 할 수 있다. 초기 학습목표로 사용 할 수 있다. 프리티어에 대한 내용은 다른 포스트로 다루도록 하겠다. 이메일 주소와 AWS 계정 이름은 나중에 바꿀 수 있다.

계정 세부 정보를 입력한다. 프로페셔널과 개인 두 개의 타입이 있다. 회사나 교육기관에서 사용 할 경우 프로페셔널을 선택한다. 프로페셔널을 선택하면 회사이름을 추가로 입력해야 한다. 기능 사용 측면에서는 차이가 없다.

그리고 (메뉴는 분명 한글임에도 불구하고)모든 정보는 영어로 입력해야 한다. 영어 주소 입력하는데 꽤나 귀찮았다. 새우편번호검색 서비스로 영문 주소를 찾을 수 있다.

보안 전송 버튼을 누르면, 본인임을 확인하기 위한 자격 증명 확인 창이 뜬다. 전화번호와 보안 검사 코드(캡차)를 입력하고 문의처 버튼을 클릭하면, 모달창으로 4자리 인증번호를 출력한다. 잠시 후에 입력한 전화번호로 (매우 미쿡인 스러운 발음으로) 전화 키패드로 인증번호를 입력하라는 국제 전화가 온다.

인증번호를 입력하고 나면, 지원 플랜(Support Plans) 선택화면이 나온다.

기본(Basic)에서 엔터프라이즈(Enterprise)까지 총 4개의 플랜 중 하나를 선택 할 수 있다. 더 많은 기술 지원을 받고 싶으면, 더 많은 돈을 내라는 얘기다. 예를 들어 엔터프라이즈 플랜의 경우 전담 기술 지원 담당자가 배정되며, AWS 솔류션스 아키텍츠가 제공하는 아키텍처 문서에 접근 할 수 있다. 기타 온라인 자습형 실습에 대한 접근 권한을 이용한 엔지니어 교육, 비지니스 크리티컬한 이슈에 대해서 15 분이내에 응답을 보장하는 등 높은 수준의 서비스를 받을 수 있다. 자세한 내용은 AWS Support 플랜 비교 문서를 참고하자.

지원 플랜을 선택하면 콘솔에 로그인 할 수 있다.

로그인에 성공하면 AWS Management Console로 이동한다. 아마 한글로 된 화면이 뜰 건데, 영문을 쓰는 걸 추천한다. 화면 맨 밑에서 언어를 바꿀 수 있다.

계정 보안 설정하기

최초 만든 AWS 계정을 루트(Root) 계정으로, 모든 권한을 가진 슈퍼 계정이다. 리눅스 운영체제에서와 마찬가지로 자원을 생성하거나 지울 수 있는 강력한 권한을 가지고 있기 때문에 사용에 주의 해야 한다.

먼저 계정에 대한 최소한의 보안설정을 하자.

계정 이름을 클릭해서 My Security Credentials 를 선택하자. 여기에서 계정 보안 설정을 위한 몇 개 메뉴들과 가이드를 확인 할 수 있다.

  • Password : 숫자, 문장 부호를 포함하는 안전한 패스워드를 만들고, 타인과 공유하지 말고, 주기적으로 변경하라는 당연한 권고사항이다.
  • MFA(Multi-factor authentication) : 아이디/패스워드 인증 외에 인증 수단을 추가해서 계정 보안을 높인다. 위의 안전한 패스워드 관리와 함께 개인이 보안수준을 높일 수 있는 가장 손쉬운 그리고 강력한 방법이다. PIN, 보안토큰, 휴대전화, 스마트카드, 지문, 홍채 인식등을 추가 한다. AWS 에서는 보안토큰 기반의 추가적인 인증 방식을 제공 한다. MFA는 아래에서 자세히 설명하겠다.

MFA 설정

AWS 계정 관리자는 아이디/패스워드 외에 아래의 인증 수단을 추가할 수 있다.

가상 MFA 디바이스 : 스마트폰, 모바일 기기에서 실행되는 물리적인 디바이스를 애뮬레이션 하는 소프트웨어 애플리케이션을 이용한다. 디바이스는 계정과 동기화된 암호화 알고리즘에 따라서 주기적으로(30초 간격)으로 6자리의 랜덤한 숫자를 만든다. 사용자는 로그인 할 때, 디바이스에 출력된 6자리의 유효한 숫자를 입력해야 한다. 사용자에게 할당된 가상 MFA 디바이스는 유일하기 때문에 다른 사용자의 MFA 디바이스로 인증 할 수 없다.

별도의 하드웨어 없이 스마트폰에서 사용 할 수 있기 때문에(PC에서도 사용 할 수 있기는 한데, 추천하지는 않는다.) 가장 널리 사용하는 방법이다. 이 방법으로 MFA를 활성화 해보겠다.

먼저 모바일기기에 가상 MFA 디바이스 앱을 설치해야 한다. 보통 AuthyGoogle Authenticator 을 많이 사용한다. 두 개 모두 앱스토어에서 다운로드 받을 수 있다.(나는 Authy를 사용한다.) 다운로드 받아서 설치하자.

Active MFA를 클릭해서 Virtual MFA device를 선택한다.

Continue 버튼을 누르면 Set up virtual MFA device 화면으로 넘어간다. 2. Show QR Code 를 클릭하면 QR Code 화면이 뜨는데, Authy를 이용해서 QR Code를 스캔한다.

QR Code를 스캔하면 6자리의 보안 번호가 30초 간격으로 갱신이 된다. 첫번째 보안 번호를 입력 한 후, 다음 번 갱신되는 보안 번호를 입력하고 Assign MFA 를 클릭하면 MFA 설정이 완료된다. 아래와 같이 FMA 디바이스가 활성화된 걸 확인 할 수 있을 것이다.

이제 매 로그인 마다 아이디/패스워드 입력후 MFA 코드 입력창이 나오며, 유효한 코드를 입력해야지만 로그인이 성공한다.

사용자에게 유일한 보안 코드 발생 디바이스를 할당하는 것이기 때문에 아이디/패스워드 로그인과 결합해서 거의 완벽에 가까운 인증 보안 수준을 달성 할 수 있다. 사용자의 모바일기기가 해커에게 탈취당할 수 있다는게 거의 유일한 취약점이다. 이러한 상황까지 염려된다면 U2F(YubKey 같은) 물리적 디바이스를 사용 해야 할 것이다.

YubiKey

유저 추가

AWS는 인터넷 상에 데이터 센터 구축을 도와주는 서비스다. 기본적으로 개인을 대상으로 하지 않고, 조직을 대상으로 한다. 이 조직에는 개발자, 운영자, 보안 담당자, 재무팀 등 다양한 역할을 가진 사용자 혹은 팀을 포함된다. 따라서 각 역할에 맞는 권한을 가지는 유저관리가 필요하다.

최초 AWS 가입시 만든 계정은 “AWS 루트 계정“이라고 부르며, AWS 자원에 대한 모든 권한을 가진다. 리눅스 시스템의 root 계정을 생각하면 된다. 막강한 권한을 가지고 있기 때문에 루트 계정은 시스템 최고 관리자만 사용 할 수 있으며, 다른 사용자는 제한된 권한을 가지는 사용자 계정을 만들어서 제공한다. AWS는 루트 계정은 사용하지 말 것을 강력히 권고한다. 루트 사용자는 안전하게 보관하고 몇 개의 작업 계정을 만들어서 사용 하도록 가이드 한다.

AWS는 Identity and Access Management(IAM)이라는 인증/권한 관리 시스템을 이용해서 작업 계정을 만들 수 있다. IAM은 AWS의 핵심 서비스 중 하나로 방대한 내용을 다뤄야 한다. 여기에서는 일반 유저를 등록하는 정도만 살펴볼 것이다.

AWS IAM을 이용해서 일반 작업 계정을 만들어 보자. AWS Management console 에서 IAM을 입력해서 IAM 관리 대시보드로 이동하자.

유저, 롤(Role), 접근 정책(Policy), 계정 보안 설정을 위한 다양한 기능을 사용 할 수 있다. Users로 이동하면 관리 중인 유저정보를 확인 할 수 있다.

Add user를 클릭해서 유저 추가 화면으로 넘어가자.

  • User name : 계정이름
  • Access type : Programmatic access와 AWS Management Console access 두 개의 타입이 있다. AWS Management console access 권한을 주면, 아이디/패스워드 기반으로 웹 콘솔에 접근 할 수 있다. 일반 사용자에게 권한을 주기 위해서 사용한다. 애플리케이션에 권한을 주고 싶다면 Programmatic access를 선택 한다. 이 경우 프로그램이 사용 할 수 있는 access key, secret key가 발급된다. 이 key 값을 이용해서 S3, RDS, DynamoDB 등의 AWS 자원에 접근 할 수 있다.
  • Console password : AWS Management Console access를 선택했다면, 패스워드를 설정해야 한다.
  • Required password reset : 해당 유저가 처음 로그인 했을 때, 강제로 패스워드 변경하게 할 것인지 설정한다.

유저의 권한을 설정 한다.

  • Add user to group : 특정 정책을 가진 그룹을 만들고, 그룹에 유저를 추가 할 수 있다. 리눅스 계정 시스템의 그룹과 비슷하다. 예를 들어 시스템 어드민 그룹, 개발자 그룹, 빌링 정보만 볼 수 있는 그룹, 모니터링 정보만 볼 수 있는 그룹, DBA를 위한 그룹을 만들어서 관리 할 수 있다. AWS는 그룹을 만들어서 체계적으로 권한을 관리 할 것을 권고한다.
  • Copy permissions from existing user : 이미 만들어진 다른 유저의 권한을 복사해서 사용한다.
  • Attach existing policies directly : 권한 정책을 유저에게 직접 부여한다. 추천하지 않는 방법이다. Group을 만들 것을 권장한다.

나는 test-admin 그룹을 만들기로 했다. Create group를 눌러서 그룹을 만들자.

이미 정의된 많은 (권한을 담은)정책들이 있다. 사용자 정책을 만들 수 있지만 이 포스트의 범위를 벗어나므로, 기본 정책들만 가지고 그룹을 만들기로 했다. 관리자에게 필요한 권한 정책을 담고 있는 AdministratorAccess를 선택했다.

유저는 두 개 이상의 그룹에 포함될 수 있다. 지금 만든 test-admin 그룹에 포함시키자. 이후 Create button을 누르면 새로운 IAM 유저가 만들어진다.

마지막으로 최소한의 보안장치인 MFA를 적용하면 된다.

유저 Summary 정보에서 Console sign-in link 를 접근하면 된다.

카테고리: AWS Cloud 기초

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

Bitnami