클라우드

AWS IAM

realtrynna 2022. 11. 10. 19:07

 

AWS IAM

평소 구글링을 통해 무지성으로 사용해온 IAM에 대해 포스팅한다.

IAM(Identity and Access Management)은 AWS 서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있는 서비스다. AWS 사용자 또는 그룹을 만들고 관리하며 AWS 리소스에 대한 액세스를 허용/거부할 수 있다. AWS 서비스 전반적으로 언제, 어디서, 누가, 어떻게, 뭘 할 수 있는지 육하원칙의 왜를 제외한 모든 접근을 컨트롤할 수 있다. 모든 접근은 정책을 통해 관리되며 사용자 또는 역할에 부여할 수 있다.

 

특징

  • AWS 어카운트, 리소스, 사용자의 권한을 제어할 수 있으며 서비스 사용을 위해 인증 정보를 부여
  • 사용자의 생성과 관리 계정의 보안 설정을 담당하며 일정 시간마다 패스워드가 변경되도록 하는 설정도 가능
  • AWS 유저가 아니면서 일시적으로 접속 권한을 받아 AWS 서비스를 사용하는 Identity Federation이 가능
  • IAM은 리전별 서비스가 아닌 글로벌 서비스다. 한번 만들면 AWS 전체 서비스에 적용

 

구성

  1. 사용자
    실제 AWS 서비스를 사용하는 사람 혹은 애플리케이션을 의미한다.

  2. 그룹
    개발1, 개발2, 개발3팀 등 사용자의 집합을 의미함.

  3. 정책
    사용자와 그룹의 역할이 어떤 작업을 수행할 수 있는지 관리하는 문서 JSON 형식이다.

  4. 역할
    AWS 리소스에 부여하여 AWS 리소스가 어떠한 작업을 수행할 수 있는지를 정의한다. 다른 사용자가 역할을 부여 받아 사용할 수 있으며 역할을 바꾸어 가며 서비스 사용이 가능하다.

 

 

 

사용자 종류

  1. 루트 사용자
    결제 관리를 포함한 계정의 모든 권한을 가지고 있다.
    관리 목적 외에 다른 용도로 사용하지 않아야 하며 계정이 탈취되었을 경우 복구가 매우 어려움.
    (MFA 설정 필수)
     
  2. IAM 사용자
    IAM을 통해 생성해서 사용하는 사용자
    한 사람 혹은 하나의 애플리케이션을 의미하며 설정 시 콘솔 로그인 권한을 부여할 수 있다.
    AdminAccess를 부여하더라도 루트 사용자로 별도의 설정을 하지 않으면 Billing 기능을 이용할 수 없음.

IAM 자격 증명 보고서

계정의 모든 사용자의 암호, 액세스 키, MFA 장치 등의 증명 상태를 나열하는 문서를 생성하고 다운로드할 수 있다.

  • 4시간에 한 번씩 생성 가능
  • AWS 콘솔, CLI, API에서 생성 요청 및 다운로드 가능

 

포함 정보

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

 

IAM 사용 사례

  1. 루트 사용자는 사용하지 않아야 함.
    - 관리용으로만 사용하고 실제 작업은 IAM 사용자로 함.

  2. 불필요한 사용자는 만들지 않아야 함.

  3. 가능하면 그룹과 정책을 사용

  4. 최소한의 권한만을 허용하는 습관

  5. AccessKey 대신 역할을 사용

  6. IAM 자격 증명 보고서 활용하여 주기적으로 현재 상태 체크

참고 자료

https://www.youtube.com/watch?v=lcly_aIq1KI 

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html

 

'클라우드' 카테고리의 다른 글

AWS Serverless Lambda  (0) 2022.10.07
Serverless  (0) 2022.10.05