[AWS] IAM(Identity And Management)에 대해서

이홍준·2024년 1월 17일
0

AWS

목록 보기
2/4
post-thumbnail

작성 이유

AWS를 사용하는데 권한 관련에 있어 개발하는데 지연되는 부분이 생각보다 많았다. 그래서 권한 관련 개념에 대해 간단하게 정리해보았다.

IAM 구성

  1. 사용자(User)
    • 실제 AWS를 사용하는 사람 혹은 애플리케이션
  2. 그룹(Group)
    • 사용자의 집합
    • 그룹에 속한 사용자는 그룹에 부여된 권한을 행사
  3. 정책(Policy)
    • 사용자와 그룹, 역할이 무엇을 할 수 있는지 관한 문서
    • JSON형식으로 정의
  4. 역할(Role)
    • AWS 리소스에 부여하여 해당 리소스가 무엇을 할 수 있는지 정의
    • 혹은 다른 사용자가 역할을 부여 받아 사용
    • 다른 자격에 대해서 신뢰 관계를 구축 가능
    • 역할을 바꾸어 가며 서비스를 사용 가능

권한 검증

  1. 사용자가 서비스를 사용하고 싶을 경우

    사용자 → 그룹 → 역할 순으로 권한 검증 한다.

    1. 나에게 해당 서비스를 이용할 수 있는 정책이 부여되었는가?
    2. 내가 속한 그룹에 서비스를 이용할 수 있는 정책이 부여되어 있는가?
    3. 내게 위임 받은 역할에 서비스를 이용할 수 있는 정책이 부여되어 있는가?
  2. 서비스에서 다른 서비스를 사용하고 싶을 경우

    A서비스가 부여 받은 역할이 B서비스를 이용할 수 있는 정책이 붙어있는가?

사용자(User)의 종류

  • 루트 사용자: Billing 관리를 포함한 계정의 모든 권한을 가지고 있다.
    • 관리 목적 이외에 다른 용도로 사용하지 않을 것을 권장
    • 탈취 되면 복구가 어려움
  • IAM 사용자: IAM을 통해 생성해서 사용하는 사용자
    • 한 사람 혹은 하나의 애플리케이션을 의미
    • 설정 시 콘솔 로그인 권한 부여 가능
    • 설정 시 AWS 서비스를 이용할 수 있음
      • 액세스 키
      • Secret 액세스 키
    • AdminAccess를 부여하더라도 루트 사용자로 별도의 설정을 하지 않으면 Billing 기능을 사용할 수 없음

IAM 자격 증명 보고서

  • 계정의 모든 사용자와 암호, 액세스 키, MFA 장치등의 증명 상태를 나열하는 보고서를 생성하고 다운로드 가능

  • 4시간에 1번씩 생성 가능(csv)

  • AWS Console, CLI, API에서 생성 요청 및 다운로드 가능

  • 포함되는 정보

모범 사례

  • 루트 사용자는 사용하지 않기
  • 불필요한 사용자는 만들지 않기
  • 가능하면 그룹과 정책을 사용하기
  • 최소한의 권한만 허용하는 습관을 들이기
  • MFA 활성화 권장
  • AccessKey 대신 역할을 활용하기
profile
I'm a web developer.

0개의 댓글