Taeyoung Kim

Cloud & Platform

11강. AWS IAM (Identity and Access Management)

11강. AWS IAM (Identity and Access Management) 학습 내용을 정리한 백필 노트입니다.

이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.


1. IAM 이란?

  • Identity and Access Management의 약자입니다.
  • AWS 서비스와 리소스에 대한 액세스를 안전하게 관리하기 위한 서비스입니다.
  • IAM을 사용하여 사용자 및 그룹을 만들고 권한을 관리하여 AWS 리소스에 대한 액세스를 허용하거나 거부할 수 있습니다.
  • IAM 서비스 자체에는 추가 비용이 없으며, IAM 사용자가 사용하는 다른 AWS 서비스에 대해서만 요금이 부과됩니다.
  • Access Key를 발급받아 AWS 외부에서 API를 통해 리소스에 접근할 수 있습니다.

IAM 기본 개념

  • User (사용자): AWS와 상호 작용하는 사람 또는 애플리케이션입니다.
  • Group (그룹): 사용자의 집합으로, 여러 사용자에게 동일한 권한을 쉽게 부여할 수 있습니다.
  • Role (역할): 특정 권한을 가진 개체로, AWS 리소스에 작업을 위임할 때 사용합니다.
  • Policy (정책): 어떤 리소스에 대해 어떤 작업을 허용하거나 거부할지를 정의하는 JSON 문서입니다.
  • Permission (권한): 정책들의 집합입니다.

IAM 사용 방식

  • Programmatic Access: AWS SDK, CLI 등을 이용하여 API로 접근하는 방식입니다. Access Key IDSecret Access Key가 발급됩니다.
  • AWS Management Console Access: 웹 기반의 AWS 관리 콘솔에 로그인하는 방식입니다. 전용 로그인 URL, 사용자 이름, 암호를 사용합니다.

2. (실습) IAM 사용자 추가 및 로그인

1단계: IAM 사용자 생성

  1. AWS 관리 콘솔에 로그인한 후, 서비스 검색창에서 'IAM'을 검색하여 IAM 대시보드로 이동합니다.
  2. 왼쪽 탐색 창에서 사용자를 클릭한 후, 사용자 추가 버튼을 누릅니다.
  3. 사용자 이름을 입력합니다. (예: test-iam-user)
  4. AWS Management Console에 대한 사용자 액세스 권한 제공을 선택합니다.
    • IAM 사용자를 생성하고 싶음을 선택합니다.
    • 콘솔 암호는 자동 생성된 암호 또는 사용자 지정 암호 중에서 선택할 수 있습니다.
    • 사용자는 다음 로그인 시 새 암호를 생성해야 합니다 옵션을 활성화하는 것이 보안상 권장됩니다.
  5. 권한 설정 단계에서는 직접 정책 연결을 선택합니다.
  6. 권한 정책 목록에서 사용자에게 부여할 정책을 검색하고 선택합니다. (예: AmazonEC2ReadOnlyAccess)
  7. 마지막으로 설정 내용을 검토한 후 사용자 생성 버튼을 클릭합니다.
  8. 사용자 생성이 완료되면, .csv 파일 다운로드 버튼을 클릭하여 로그인 URL, 사용자 이름, 초기 암호가 담긴 파일을 저장합니다. 이 초기 암호는 이 단계에서만 확인 및 다운로드할 수 있습니다.

2단계: 생성된 IAM 사용자로 로그인 및 테스트

  1. 다운로드한 .csv 파일에 있는 콘솔 로그인 URL로 접속합니다.
  2. 해당 URL은 계정 ID 또는 별칭이 이미 입력된 로그인 페이지로 연결됩니다.
  3. 마찬가지로 .csv 파일에 있는 사용자 이름암호를 입력하여 로그인합니다.
  4. 초기 로그인 시 암호를 변경하라는 메시지가 나타납니다. 기존 암호와 새 암호를 입력하여 암호를 변경합니다.
  5. 로그인 후, EC2 대시보드로 이동하여 인스턴스 시작을 시도합니다.
  6. AmazonEC2ReadOnlyAccess 권한만 가지고 있으므로, 인스턴스 생성 권한이 없어 "You are not authorized to perform this operation."이라는 오류 메시지와 함께 인스턴스 시작이 실패합니다.

3. (실습) IAM 그룹 생성 및 사용자 추가

1단계: IAM 그룹 생성 및 사용자 할당

  1. (Root 계정으로 로그인) IAM 대시보드로 이동하여 왼쪽 탐색 창에서 사용자 그룹을 클릭합니다.
  2. 그룹 생성 버튼을 누릅니다.
  3. 사용자 그룹 이름을 입력합니다. (예: test-group)
  4. 그룹에 사용자 추가 섹션에서 이전에 생성한 test-iam-user를 선택합니다.
  5. 권한 정책 연결 섹션에서 그룹에 부여할 정책을 검색하여 선택합니다. (예: EC2 전체 권한을 의미하는 AmazonEC2FullAccess)
  6. 설정 내용을 검토한 후 그룹 생성 버튼을 클릭합니다.

2단계: 권한 변경 후 EC2 인스턴스 생성 재시도

  1. test-iam-user로 다시 로그인하여 EC2 대시보드로 이동합니다.
  2. 인스턴스 시작을 다시 시도합니다.
  3. 이번에는 test-group을 통해 AmazonEC2FullAccess 권한을 부여받았기 때문에, 모든 설정 단계를 정상적으로 통과하고 인스턴스가 성공적으로 생성됩니다.

4. (실습) IAM 사용자 및 그룹 삭제

1단계: IAM 사용자 삭제

  1. (Root 계정으로 로그인) IAM 대시보드의 사용자 메뉴로 이동합니다.
  2. 삭제할 사용자(test-iam-user)를 선택한 후 삭제 버튼을 클릭합니다.
  3. 삭제 확인 창이 나타나면, 안내에 따라 사용자 이름을 직접 입력한 후 삭제 버튼을 누릅니다.

2단계: IAM 그룹 삭제

  1. IAM 대시보드의 사용자 그룹 메뉴로 이동합니다.
  2. 삭제할 그룹(test-group)을 선택한 후 삭제 버튼을 클릭합니다.
  3. 삭제 확인 창이 나타나면, 안내에 따라 그룹 이름을 직접 입력한 후 삭제 버튼을 누릅니다.

요약

  • IAM (Identity and Access Management): AWS 리소스에 대한 접근 권한을 중앙에서 관리하는 서비스입니다.
  • 주요 구성 요소:
    • User: AWS 서비스를 사용하는 개체 (사람, 애플리케이션).
    • Group: 사용자들의 집합. 권한 관리를 용이하게 합니다.
    • Role: 특정 권한 세트를 정의하며, 서비스나 사용자에게 권한을 위임할 때 사용됩니다.
    • Policy: 특정 리소스에 대한 허용/거부 규칙을 정의한 문서입니다.
  • 실습 내용:
    • 제한된 읽기 전용 권한을 가진 IAM 사용자를 생성하고, 권한 부족으로 EC2 인스턴스 생성이 실패하는 것을 확인했습니다.
    • EC2 전체 권한을 가진 IAM 그룹을 생성하고 해당 사용자를 그룹에 추가했습니다.
    • 그룹을 통해 권한을 부여받은 사용자가 EC2 인스턴스를 성공적으로 생성하는 것을 확인했습니다.
    • 생성했던 사용자 및 그룹을 삭제하며 실습을 마무리했습니다.