Study/Cloud

[AWS] IAM이란? Identity and Access Management

AC 2019. 2. 16. 23:52




IAM(Identity and Access Management



IAM은 AWS계정과 관련된 권한을 제어하고, 사용자를 관리하는 기능을 제공한다.


1-1 AWS API, 그리고 IAM


AWS는 클라우드 공급자 업체로써, 사용자가 필요한 만큼의 IT 인프라를 제공하고, 그만큼의 비용을 부과하는 클라우드 컴퓨팅 서비스이다.


예를 들어, EC2라는 가상 서버를 1대 만들어 1시간을 사용하는데 100원의 비용이 든다고 한다면, 100대를 1시간동안 사용하면 10,000원, 1대를 100시간동안 사용해도 10,000원을 부과한다. 클라우드 특성상 요청이 누구로부터 왔는지, 요청자가 적절한 권한을 갖고 있는지를 식별/제어하고 관리하는 부분은 무엇보다 중요하다.


IAM의 역할


사용자는 먼저 "가상서버(EC2) 1대를 만들어 달라"고 AWS에서 제공하는 API 문법에 맞춰 요청을 한다.

이 요청은 인터넷망을 통해 전달되며, 해당 요청은 리전(Regiion)과 서비스 단위로 존재하는 AWS Endpoint에서 수신한다. 그리고 이어 다음 두 가지를 검증하게 된다.


① 인증된 사용자의 요청이 맞나?

② 이 사용자에게 관련 권한이 사전에 정의되어 있는가?


1번을 인증단계, 2번을 권한부여 단계로 부른다.


만일 인증된 사용자의 요청이 맞고, 이 사용자에게 요청과 관련되 권한이 사전에 부여되어 있다면, AWS에서는 요청 내역을 수행하여 사용자에게 결과값을 전달하게 된다. 사용자가 AWS에게 무언가를 요청하는 방식과 형태에는 또 어떠한 것들이 있을까?



1-2 AWS API를 사용하는 방법


"EC2를 하나 만들어주세요"와 같은 명령(API Call)을 AWS에 전달하는 방법에는 여러 가지가 있다. AWS에서는 크게 세 가지 방식을 제공하고 있다.


AWS API 제어수단


첫 번째는 AWS Management Console이다. 웹 브라우저로 접속하여 사용하는 GUI 방식이므로 사용이 간편하다.

어떤 명령을 내리는 과정에서 각종 선택 항목을 미리 표시해주기 때문에 조작 편의성도 가장 뛰어나다. 단, 제어 범위(요청할 수 있는 명령의 범위)가 세 가지중 가장 좁으며, CLI 기반인 타 방식에 비해 연속적인 자동화 구성을 정의하기가 어렵다.



여기서 잠깐 Q&A

Q . 휴대폰에서는 아무래도 화면크기상 AWS Management Console로 제어하기가 힘든 부분이 있을 것 같은데, AWS에서는 다른 수단이나 전용 앱같은 것을 별도로 제공하는가요?

A. 전용 앱을 제공한다. 안드로이드의 경우 AWS Console로 검색하여 앱을 설치하여 로그인하면 모바일에 최적화된 UI를 통해 각종 자원 현황을 확인하고, 관련 명령을 수행할 수 있다. 


두 번째는 AWS CLI(Command LIne Interface)이다. 특정 언어를 모르는 상태에서도 CLI 기반으로 AWS API를 자유롭게 사용할 수 있도록 만들어 놓은 인터페이스이다. Linux 계열에서는 AWS CLI를, Windows 계열에서는 AWS Tools for Powershell을 제공한다.

비교적 사용이 쉽고, AWS SDK와 제어 범위, 자동화 구성 수준이 거의 동일하다.

세 번째는 AWS SDK이다. AWS에서는 Java, PHP, Android 등 각종 언어 전용의 AWS SDK를 별도로 만들어 제공한다. 따라서 특정 서비스를 구성할 때 기존에 사용 중인 언어 기반으로 AWS API를 자연스럽게 포함시켜 구성할 수 있는 장점이 있다.


이 모든 제어 수단은, 결국 원시 API 형태로 변환되어 전달된다. 사용자는 위 세 가지 방법으로 더 높은 계층에서 각종 정보를 주고받기 때문에 이 계층에 대해서는 따로 신경 쓸 필요가 없다.















LIST

'Study > Cloud' 카테고리의 다른 글

[AWS] 계정 보안 향상을 위한 Config  (0) 2019.02.18
[AWS] IAM에서 사용하는 객체들  (0) 2019.02.17
[AWS] 네트워크 구성  (0) 2019.02.15
[AWS] 목표 아키텍처  (0) 2019.02.15
[AWS] AWS TIP & AWS 무료로 사용하기  (0) 2019.02.15