AWS

AWS IAM 개념 정리 2 - 역할, 보안 도구, 모범 사례, 공동 책임 모델

heesoohi 2025. 2. 14. 00:54

📌 개요

  • AWS IAM은 사용자의 접근 권한을 관리하는 서비스
  • IAM 역할을 사용해 AWS 서비스에 권한 부여
  • IAM Credentials Report, Access Advisor로 보안 점검 가능
  • 안전한 계정 관리를 위한 모범 사례 정리
  • AWS와 사용자의 보안 책임을 구분하는 공동 책임 모델 설명

 

1. IAM Roles for Services - IAM 역할

 

우리의 계정에서 AWS 서비스를 다루기 위해서는 'AWS 서비스에 권한을 부여'해야 한다. 

이를 위해 IAM Roles(=IAM 역할)이라는 것을 만들어야 함. 

 

'IAM 역할'은 사용자와 같지만, 실제 사람이 아닌 'AWS 서비스'에 의해 사용되도록 만들어 진 것..!

 

예를 들어, AWS 서비스 중 하나인 EC2 인스턴스를 만들고, 이를 이용해 AWS에서 어떤 작업을 수행하려고 한다면

-> EC2 인스턴스에 권한을 부여해야 한다..!

-> IAM 역할을 만들어 EC2와 합쳐 하나의 개체를 만듦으로서 권한을 부여할 수 있다.

 

 

 

IAM 역할의 권한을 올바르게 부여하면, EC2 인스턴스가 AWS에 있는 어떤 정보에 접근하는 것이 가능해진다!

EC2 인스턴스가 수행하려는 작업/호출 등이 가능한지 여부를 IAM 역할로 확인한다고 볼 수 있다. 

 

 

 

2. IAM Security Tools - IAM 보안 도구

 

📑 IAM Credentials Report (account-level) 

 

계정 수준에서 IAM 자격 증명 보고서(IAM Credentials Report)를 만들 수 있다. 

보고서에는 계정에 있는 사용자와 사용자들의 다양한 자격 증명 상태가 포함되어 있다. 

 

사용자들의 다양한 자격 증명 상태를 포함한 Credentials Report

 

 

📑 IAM Access Advisor (user-level) 

 

IAM 액세스 관리자는 사용자 수준에서 가능하다. 

액세스 관리자에서는 '사용자에게 부여된 서비스의 권한', '해당 서비스에 마지막으로 액세스한 시간'등을 확인할 수 있다. 

 

IAM Access Advisor 에서 사용자가 사용하지 않는 권한을 쉽게 확인할 수 있고, 해당 권한들은 다시 해제하는 등 사용자 권한을 관리하며 

-> 최소 권한의 원칙을 지키는데에 유용하다.

 

'마지막 액세스' 탭에서 액세스 관리자를 확인할 수 있다.

 

 

 

3. IAM Guidelines & Best Practices - IAM 가이드라인과 모범 사례

 

✅ 루트 계정은 AWS 계정을 설정할 때만 사용하기! 

     (-> 루트 계정과 개인 계정. 이렇게 최소 계정 2개 있어야)

 

✅ 한 명의 AWS 유저 = 한 명의 물리적 유저

     (-> 타인에게 자격 증명 정보 제공 하지 말기)

 

✅ 그룹 단위로 보안을 관리 

     (-> 사용자를 그룹에 할당하고, 그룹 전체에 적절한 권한을 할당)

 

✅ 강력한 password policy 만들기

 

✅ MFA(Multi Factor Authentication = 다중 인증) 사용을 권장

 

✅ AWS 서비스에 권한을 부여할 때 역할(IAM Roles)을 생성하고 사용하기 

 

✅ CLI, SDK 같은 프로그램을 통해 AWS를 사용할 때 '액세스 키' 생성하기

     (액세스 키는 패스워드와 같으니, 절대 비밀!)

 

✅ IAM 자격 증명 보고서, IAM 액세스 관리자 기능을 사용하여 계정의 권한 감사하기

 

❌ IAM 유저와 액세스 키를 절대로 공유하지 말기 ❌

 

 

 

 

+) Shared Responsibility Model for IAM 

 

공동 책임 모델 질문은 AWS CCP 자격증 시험에 많이 출제 된다고 하니 !집중!

 

'AWS의 책임'과 '사용자의 책임'이 무엇인지 구분하는 것이 핵심인데, 이것만 기억하면 된다.

 

AWS는 제공하는 모든 것에 책임이 있고

사용자는 AWS가 제공하지 않는 모든 것에 책임이 있다!

 

  • AWS의 책임
    - 인프라 ( 클로벌 네트워크 보안 등)
    - Configuration 및 취약성 분석 서비스
    - 책임이 있는 사항을 모두 준수하는 것
  • 사용자의 책임
    - 사용자, 그룹, 역할, 정책 등을 관리하고 모니터링하는 것
    - 모든 계정에서 MFA를 활성화하고 시행하는 것
    - 액세스 키 등을 자주 교체하는 것
    - 적합한 권한을 적용하기 위해 IAM 도구들을 사용
    - 액세스 패턴 분석
    - 계정 권한 검토