본문 바로가기
Programming 개발은 구글로/AWS

[AWS 기초] AWS IAM

by 40대직장인 2023. 2. 1.

AWS IAM(Identity and Access Management)

AWS 서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있습니다.
또한 AWS 사용자 및 그룹을 만들고 관리하며 AWS 리소스에 대한 액세스를 허용 및 거부할 수 있습니다.(AWS)

 

🟦 IAM 기능

 ◼ AWS 어카운트 관리 및 리소스/사용자/서비스의 권한 제어

  • 서비스 사용을 위한 인증 정보 부여

 ◼ 사용자의 생성 및 관리, 계정의 보안

  • 사용자의 패스워드 정책 관리(일정 시간마다 패스워드 변경 등)

 ◼ 다른 계정과의 리소스 공유

  • Identity Federation(Facebook 로그인, 구글 로그인 등)

 ◼ 계정에 별명 부여 가능 => 로그인 주소 생성 가능

 

 ◼ IAM은 글로벌 서비스(Region별 서비스가 아님)

 

🟥 IAM 구성

 ◼ 사용자

  • 실제 AWS를 사용하는 사람 또는 어플리케이션을 의미

 ◼ 그룹

사용자의 집합

  • 그룹에 속한 사용자는 그룹에 부여된 권한을 행사

 ◼ 정책(Policy)

  • 사용자와 그룹, 역할이 언제, 어떻게, 무엇을 할 수 있는지에 관한 문서
  • JSON(JavaScript Object Notation) 형식으로 정의

   ※ JSON: 다양한 프로그램 간에 데이터를 주고 받기 위해 사용, 언어 자체에서 지원하거나

                  플러그인으로 사용 가능(Key-Value 구성)

 

 ◼ 역할(Role)

  • AWS 리소스에 부여하여 AWS 리소스가 무엇을 할 수 있는지를 정의
  • 다른 사용자가 역할을 부여 받아 사용
  • 다른 자격에 대해서 신뢰관계를 구축 가능
  • 역할을 바꾸어 가며 서비스를 사용 가능

 

 

🟩 사용자의 종류

 🔸 루트 사용자: 결제 관리를 포함한 계정의 모든 권한을 가지고 있음

  • 관리 목적 이외에 다른 용도로 사용하지 않는 것을 권장
  • 탈취 되었을 때 복구가 매우 어려움 => MFA를 설정하는 것을 권장
  • MFA(Multi-factor authentication): 일회용 패스워드를 생성하여 로그인

 🔹 IAM 사용자: IAM을 통해 생성·사용하는 사용자

  • 한 사람 혹은 하나의 어플리케이션을 의미
  • 설정 시 콘솔 로그인 권한 부여 가능
  • 설정 시 AWS 서비스를 이용할 수 있음(Access Key, Secret Access Key)
  • AdminAccess를 부여하더라도 루트 사용자로 별도의 설정을 하지 않으면 Billing 기능을 사용할 수 없음

 

 

※ 루트 사용자로 로그인 후 내 계정 - 하단의 '결제 정보애 대한 IAM 사용자 및 역할 액세스'  항목에서 편집을 눌러 IAM 사용자 결재 정보 액세스 활성화를 할 수 있습니다.

 

🟧 IAM 자격 증명 보고서

 

  • 계정의 모든 사용자와 암호, 액세스 키, MFA 장치등의 증명 상태를 나열하는 보고서를 생성하고 다운로드 가능
  • 4시간에 한번씩 생성 가능
  • AWS 콘솔, CLI, API에서 생성 요청 및 다운로드 가능
  • 포함되는 정보

 

암호 액세스 키 기타
▪ 암호의 활성화 여부
▪ 마지막으로 사용된 시간
▪ 마지막으로 변경된 시간
▪ 언제 변경되어야 하는지
▪ 액세스 키 활성화 여부
▪ 마지막으로 사용된 시간
▪ 마지막으로 변경된 시간
▪ 어떤 서비스에 마지막으로 사용되었는지
▪ MFA 사용 여부
▪ 사용자 생성 시간

 

🟪 IAM 사용 시 고려사항

  • 루트 사용자는 사용하지 않기
  • 불필요한 사용자는 만들지 않기
  • 가능하면 그룹과 정책 사용하기
  • 최소한의 권한만을 허용하는 습관을 들이기(Principle of least privilege)
  • MFA를 활성화 하기
  • AccessKey 대신 역할을 활용하기
  • IAM 자격 증명 보고서(Credential Report) 활용하기

 


출처: AWS 강의실

 

 

댓글