CICD/AWS

[AWS] IAM 기초

[dev] hiro 2024. 7. 21. 13:58
해당 포스팅은 AWS 강의실(https://www.youtube.com/@AWSClassroom)를 보고 공부한 내용을 정리한 블로그입니다.

아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
네 자신의 불행을 생각하지 않게 되는 가장 좋은 방법은 일에 몰두하는 것이다.
Ludwig van Beethoven

IAM 아마존 소개

AWS Identity and Access Management(IAM)를 사용하면 AWS 서비스와 리로스에 대한 액세스를 안전하게 관리할 수 있습니다. 또한, AWS 사용자 및 그룹을 만들고 관리하며 AWS 리소스에 대한 액세스를 허용 및 거부할 수 있습니다.
  • 누가 언제 어떻게 무엇을 할 수 있는지 관리하는 것을 설정하는 서비스!

IAM


  • AWS 어카운트 관리 및 리소스/사용자/서비스의 권한 제어
    • 서비스 사용을 위한 인증 정보 부여
  • 사용자의 생성 및 관리 및 계정의 보안
    • 사용자의 패스워드 정책 관리(일정 시간마다 패스워드 변경 등)
  • 다른 계정과의 리소스 공유
    • Identity Federation(Facebook 로그인, 구글 로그인)
  • 계정에 별명 부여 가능 -> 로그인 주소 생성 가능
  • IAM은 글로벌 서비스(Region 별 서비스가 아님)

IAM 구성

  • 사용자
    • 실제 AWS를 사용하는 사람 혹은 애플리케이션을 의미
  • 그룹
    • 사용자의 집합
    • 그룹에 속한 사용자는 그룹에 부여된 권한을 행사
  • 정책
    • 사용자와 그룹, 역할이 무엇을 할 수 있는 지에 관한 문서
      • 개발자는 ... 회계팀은 ... => 누가 언제 어디서 무엇을 어떻게 설정
    • JSON(JavaScript Object Notation) 형식으로 정의
  • 역할
    • AWS 리소스에 부여하여 AWS 리소스가 무엇을 할 수 있는 지를 정의
    • 혹은 다른 사용자가 역할을 부여받아 사용
    • 다른 자격에 대해서는 신뢰관계 구축가능
    • 역할을 바꾸어가며 서비스 사용가능

JSON

  • JavaScript Object Notation
  • 주로 다양한 프로그램 간에 데이터를 주고받기 위해 사용
  • 매우 다양한 언어에서 언어 자체에서 지원하거나 플러그인으로 사용가능
  • 키-value로 구성
  • 예를 들기

IAM 구성

IAM 구성

권한 검증

사용자의 종류

  • 루트 사용자: 결제 관리를 포함한 계정의 모든 권한을 가지고 있음
    • 관리 목적 이외에 다른 용도로 사용하지 않는 것을 권장
    • 탈취되었을 때 복구가 매우 어려움 -> MFA를 설정하는 것을 권장
    • MFA(Multi-factor authentication): 일회용 패스워드를 생성하여 로그인
  • IAM 사용자: IAM을 통해 생성해서 사용하는 사용자
    • 한사람 혹은 하나의 애플리케이션을 의미
    • 설정시 콘솔 로그인 권한 부여 가능
    • 설정시 AWS 서비스를 이용할 수 있음
      • AccessKey: 유저 이름
      • SecretAccessKey: 패스워드
    • AdminAccess를 부여하더라도 루트 사용자로 별도의 설정을 하지 않으면 Billing 기능을 사용할 수 없음.

IAM을 통해서 결제 창 접속 시 화면

IAM 자격 증명 보고서

자격 증명 보고서

  • 계정의 모든 사용자와 암호, 액세스 키, MFA 장치 등의 증명 상태를 나열하는 보고서를 생성하고 다운로드 가능
  • 4시간에 한번씩 생성가능
  • AWS 콘솔, CLI, API에서 생성 요청 및 다운로드 가능
  • 포함되는 정보
  • 암호
    • 암호의 활성화 여부
    • 마지막으로 사용된 시간
    • 마지막으로 변경된 시간
    • 언제 변경되어야 하는지
  • 액세스 키
    • 액세스 키 활성화 여부
    • 마지막으로 사용된 시간
    • 마지막으로 변경된 시간
    • 어떤 서비스에서 마지막으로 사용되었는지
  • 기타
    • MFA 사용 여부
    • 사용자 생성 시간

IAM 모범 사용 사례

  • 루트 사용자는 사용하지 않기
  • 불필요한 사용자는 만들지 않기
  • 가능하면 그룹과 정책을 사용하기
  • 최소한의 권한만을 허용하는 습관을 들이기(Principle of least privilege) ⇒ 오타 아닌가?
  • MFA 활성화하기
  • AccessKey 대신 역할을 사용하기