본문 바로가기
IT

AWS IAM 기본 개념 및 생성 방법

by 힁구띠 2022. 6. 21.
IAM (Identity and Access Management) : '식별 및 접근 관리'의 약어로 사용자와 그룹 생성 및 각 리소스에 대해 접근제어와 권한 관리를 제공한다. 사용 요금은 발생하지 않는다.

1. IAM 개념

IAM은 AWS 계정 내부의 IAM 그룹 및 사용자를 생성하여 접근제어와 권한 관리 등을 세분화할 수 있다. 예를 들면 사용자 A는 EC2 만 관리할 수 있고, B는 S3의 내용을 읽기만 허용되도록 구성할 수 있다. 필요 권한만 부여하기 때문에 보안성이 좋아진다. IAM 그룹은 동일 권한을 여러 사용자에게 적용할 때 편리하다.

IAM 사용자에게 특정 AWS 리소스만 접근할 수 있도록 설정하면 AWS 콘솔에서도 허용된 AWS 리소스만 제어할 수 있다. 또한, IAM 계정은 액세스 키를 별도로 생성할 수 있으며 이 액세스 키를 이용해서 AWS API를 사용할 수 있다.

(* 참고: IAM은 리전 별로 설정할 수 없고 모든 리전에서 동일하게 작동한다)

AWS는 다른 AWS 계정의 요금을 합산해 지불하는 통합 결제(Consolidated Billing) 기능이 있다. 일반적인 회사에서 재무팀에서 AWS 통합 계정을 사용하여 회사 내 모든 부서의 AWS 요금을 관리하고 지불할 수 있다.

부서가 서로 다를 때 AWS 계정을 분리하여 구성하면 편리하다. 개발부의 개발용 EC2 인스턴스에 운영부 사용자들이 접근이 불가하다. 실제 조직의 특성에 적합하게 접근 제어와 권한 관리를 설정할 수 있다.

(* 참고: AWS 콘솔의 Billing & Cost Management에서 통합 결제 기능을 사용할 수 있다. 결제하는 계정 (Payer Account)이 AWS 리소스를 사용하는 계정(Linked Account)에 연결 요청을 보내는 방식)

 

IAM 그룹과 사용자에게 권한을 설정하는 것과 다르게 EC2 인스턴스 전용으로 권한을 설정할 수 있다. 이것을 IAM 역할 (Role)이라고 한다. IAM 역할은 EC2 인스턴스뿐만 아니라 다른 AWS 계정, Facebook, Google, Amazone.com 계정 전용으로 권한 설정이 가능하다.

 

2. IAM 그룹 생성

IAM 그룹 자체에 접근제어 및 권한 설정을 할 수 있고 그룹에 설정된 내용은 IAM 그룹 내부의 모든 사용자에게 적용된다.

  1. AWS 콘솔 접속
  2. Deployment & Management에서 IAM 선택
  3. Details -> Groups에서 위쪽 Create New Group 버튼을 클릭
  4. 그룹 이름을 설정
  5. IAM 그룹에 권한을 설정
    1. Select Policy Template에는 AWS의 모든 리소스 접근  권한을 Full Access, Read Only Access, 기타 Access로 구성되어 있다.
  6. EC2 만 접근할 수 있는 정책 파일(Policy Document)이 자동으로 생성된다.
  7. Create Group 버튼을 누른다.

 

3. IAM 사용자 생성

  1. IAM 사용자 목록(Details -> Users)에서 Create New Users를 클릭
  2. IAM 사용자는 한 번에 5개까지 생성이 가능하다. Enter User Names의 처음 칸에 사용자를 입력하고 Create 버튼을 클릭
  3. Show User Security Credentials를 클릭하면 사용자의 액세스 키와 시크릿 키가 표시가 된다. 이 부분을 따로 보관하거나 Download Credentials 버튼을 클릭하여 액세스 키, 시크릿 키 파일을 다운로드한다. (액세스 키와 시크릿 키를 따로 보관하지 않고 Close 버튼을 클릭하면 다시는 시크릿 키를 확인할 수 없게 된다. 따라서 생성된 직후 키들을 복사하여 보관하거나 파일을 따로 꼭 받아서 보관해야 한다. 창을 닫거나 키 파일을 분식한다면 이 액세스 키는 사용할 방법이 없으므로 폐기해야 하고, 새로운 액세스 키를 생성해야 한다.)
  4. IAM 사용자 목록에 사용자가 생성되었다. 사용자의 체크 박스를 선택하고 User Actions 버튼을 클릭하면 팝업이 뜬다. Add User to Groups를 클릭한다.
  5. IAM 그룹에 IAM 사용자를 추가한다. 사용자는 여러 그룹에 속할 수 있다. 앞서 생성된 그룹을 선택하고 Add to Groups 버튼을 클릭한다.
  6. IAM 그룹에 사용자가 추가되었다. IAM 사용자 목록에서 IAM 사용자를 선택하면 아래 세부 내용에서 IAM 사용자가 속한 IAM 그룹이 표시된다.
  7. 만약 해당 사용자가 S3에 접근하기 위해서는 S3 접근이 권한이 필요하다.
  8. 사용자를 선택하여 Permissions 탭을 클릭, Attach user Policy 버튼을 클릭한다.
  9. AWS Policy Generator나 직접 정책(Custom Policy)을 작성하여 설정할 수 있다.
  10. S3에만 접근 가능한 정책 파일(Policy Doument)이 자동으로 생성된다. Apply Policy 버튼을 클릭한다.

 

4. IAM 사용자로 AWS 콘솔에 접속

AWS 계정뿐만 아니라 IAM 사용자도 AWS 콘솔에 접속이 가능하다. IAM 사용자가 AWS 콘솔에 접속하려면 비밀번호가 필요하다. IAM 사용자 목록에서 IAM 사용자를 선택한다. Security Credentials 탭을 클릭하고 Manage Password 버튼을 클릭한다. 

  1. IAM 사용자의 비밀번호를 설정한다. Assign a Custom Password를 선택하고 사용할 비밀번호를 입력한 뒤 Apply 버튼을 클릭한다. (Assign an auto-generated password)를 선택하면 비밀번호가 자동으로 생성된다)
  2. IAM 사용자의 Sign-In Credentials -> Password에 Yes로 표시되었고 비밀번호가 설정되었다.
  3. IAM 사용자용 AWS 콘솔의 주소는 IAM 메인 페이지에 표시되어 있다.
  4.  Customize를 클릭하면 AWS 콘솔 주소의 앞부분을 숫자로 된 AWS 계정 ID 대신 회사 이름 등의 문자열로 사용할 수 있다.

댓글