[AWS] IAM이란?

윤동환·2022년 12월 15일
0

AWS

목록 보기
9/30
post-thumbnail

참고 영상

IAM 이란⁉️

Identity and Accecss Management의 약자로 AWS서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있다.
AWS 사용자 및 그룹을 만들고 관리하여 AWS 리소스에 대한 액세스를 허용 및 거부 할 수 있다.
즉, AWS를 사용할 때 root계정으로 사용하게 되면 발생 가능한 보안 문제를 해결하기 위해 사용하는 방법이다.

특징☝️

  • AWS 어카운트 관리 및 리소스/사용자/서비스의 권한 제어
    -> 서비스 사용을 위한 인증 정보 부여
  • 사용자의 생성 및 관리 및 계정의 보안
    -> 사용자의 패스워드 정책관리(ex.일정 시간마다 패스워드 변경 등)
  • 다른 계정과 리소스 공유
    -> Identity Federation(facebook, google 로그인 등)
  • 계정에 별명 부여 가능
    -> 로그인 주소 생성 가능
  • 글로벌 서비스
    -> Region 별 서비스가 아님, AWS 전체에 적용됨
  • 기본적으로 제공되는 권한이 없고 따로 권한을 주어야 한다.
    -> 각 사용자의 역할에 맞게 권한 부여 가능
  • AWS 계정을 만들 때 주어진 아이디로 로그인 가능하다
  • 권한 부여시 root유저와 동일한 권한을 얻을 수 있지만, 빌링관련 작업은 root유저가 허용해야 한다.
  • 어플리케이션 등 가상의 주체를 대표할 수 있다.

IAM 구성👩‍👩‍👧‍👦

  • 사용자
    -> 실제 AWS를 사용하는 사람 혹은 어플리케이션을 의미
  • 그룹
    -> 사용자의 집합
    -> 그룹에 속한 사용자는 그룹에 부여된 권한을 행사
  • 정책(Policy)
    -> 사용자와 그룹, 역할이 무엇을 할수 있는지(서비스 및 리소스에 대한 권한 허용, 거부)에 관한 문서
    -> JSON(JavaScript Object Notation)형식으로 정의
  • 역할(Role)
    -> AWS 리소스에 부여하여 AWS 리소스가 무엇을 할 수 있는지를 정의!
    -> 다른 사용자가 역할을 부여받아 사용할 수 있음
    -> 다른 자격에 대해서 신뢰관계를 구축 가능
    -> 역할을 바꾸어 가며 서비스 가능

    정책(누가, 언제, 어디서, 무엇을, 어떻게)을 사용자 혹은 그룹에 부여하거나 역할에 부여하여 각 서비스에 적용시킬 수 있다.
    IAM 권한 검증 flow

    • 사용자
    • 서비스

사용자의 종류

ROOT 사용자

  • 관리 목적 이외에 다른 용도로 사용하지 않는 것을 권장
  • 탈취 되었을 때 복구 매우 어려움 -> MFA를 설정하는 것을 권장

    MFA(Multi-factor authentication)?

    • AWS 계정에 추가 보안 계층을 제공
      일회용 패스워드를 생성하여 로그인(2차인증같은것)
    • 루트 사용자 및 IAM 사용자에 대해 MFA를 활성화 가능(모든 사용자에게 활성화 하면 좋음)

IAM 사용자

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

AWS Organization

  • 중앙 위치에서 여러 AWS 계정을 통합하고 관리한다.
  • 조직을 생성하면 AWS Organization이 조직의 모든 계정에 대한 상위 컨테이너 루트를 자동으로 생성
  • OU에 정책을 적용하면 OU의 모든 계정이 정책에 지정된 권한을 자동으로 상속
    예시

    HR과 법률 부서는 동일한 AWS 서비스에 액세스해야됨
    -> 하나의 OU에 배치하여 AWS 계정에 적용되는 정책을 연결 가능

IAM 자격 증명 보고서

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

API에서 다운로드 예시

IAM 좋은 사용 법

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

0개의 댓글