Amazon IAM 이란 무엇인가?

JUN·2024년 11월 12일
0

?

목록 보기
3/3
💡

사이드 프로젝트 중에 IAM 을 통해 협업해야할 일이 생겼다.

AWS Identity and Access Management(IAM) 이란?

AWS 에서 사용자의 접근권한을 관리하는 서비스

IAM을 통해서 사용자는 root 계정의 암호나 액세스 키를 공유하지 않고도 AWS root 계정 내 자원을 사용하는 모든 공유 사용자들에게 세분화된 권한을 부여할 수 있다.

어떤 것을 할 수 있나?

  • AWS 계정 관리 및 리소스, 사용자, 서비스의 권한 제어
  • root 계정을 공유하려는 IAM 사용자 생성 및 관리 & 해당 계정의 보안- → 심지어 해당 IAM 사용자의 비밀번호 정책까지 수정 가능하다.
  • 다른 계정과 리소스 공유
    • Identity Federation (외부 인증 시스템과 연동하여 AWS 리소스에 접근할 수 있게 연동 가능)
  • 계정에 별명 부여 가능, 로그인 주소 생성 가능 → 계정에 쉽게 기억할 수 있는 별명을 지정하고, 사용자 정의 로그인 URL을 만들 수 있다.
  • IAM은 글로벌 서비스
    • 모든 IAM 계정은 전체 리전에서 유일하다.

IAM 구성

사용자 (User)

  • 실제 AWS 를 사용하는 사람과 서비스 (EC2 그 자체도 사용자가 될 수 있다.)

그룹 (Group)

  • 사용자의 집합
    • 그룹에 속한 사용자는 그룹에 부여된 권한 행사 가능
    • 하나의 사용자는 최대 10개의 그룹에 속할 수 있다!

역할 (Role)

기존 그룹이 너무 많아져 임시적인 해당 권한을 행사하는 역할이라는 새로운

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

정책 (Policy)

  • 사용자와 그룹, 역할이 무엇을 할 수있는지에 관한 문서
    • JSON 형식으로 정의
    • 어떤 주제로 권한을 줄지에 따라 여러가지 정책 유형이 있을 수 있음.

      AWS IAM 정책 유형

      • 자격 증명 기반 정책: IAM 사용자, 그룹 또는 역할에 직접 연결되는 정책이다.
        • 관리형 정책: AWS에서 사전 정의한 정책이나 사용자가 생성한 재사용 가능한 정책이다.
        • 인라인 정책: 특정 사용자, 그룹, 역할에 직접 포함된 정책이다.
      • 리소스 기반 정책: AWS 리소스(예: S3 버킷, IAM 역할 신뢰 정책)에 직접 연결되는 정책이다.
      • 권한 경계: IAM 엔터티(사용자 또는 역할)에 대해 최대 권한을 설정하는 고급 기능이다.
      • 조직 SCP (서비스 제어 정책): AWS Organizations에서 조직 또는 조직 단위(OU)의 권한을 관리하는 정책이다.
      • 액세스 제어 목록 (ACL): 주로 S3 버킷에서 사용되며, 리소스에 접근할 수 있는 주체와 작업을 정의한다.
      • 세션 정책: 역할을 수임하거나 사용자를 위해 임시 세션을 생성할 때 권한을 추가로 제한하는 정책이다.

IAM 리소스

IAM 을 구성하는 리소스는 다음과 같다. 해당 리소스들은 IAM 콘솔에서 추가, 편집, 제거할 수있다.

  1. Principal (주체)

    AWS 리소스를 요청할 수 있는 주체이다.

    • Root user: AWS 계정 소유자의 계정으로 모든 권한을 가진다.
      • 관리 목적 이외에 다른 용도로 사용하면 안된다!
        • 탈취되었을 때 복구가 매우매우매우매우 어렵기 때문에 MFA(일회용 패스워드) 사용하여 로그인하는 것을 권장
    • IAM user : 리소스에 접근할 수 있는 사용자. 어플리케이션도 포함된다.
      • 설정 시 콘솔 로그인 권한 부여 가능
        • 어플리케이션 같은 경우에 콘솔 로그인은 필요 없다.
      • 설정 시 Root 계정의 AWS 서비스 이용 가능
        • Access Key
        • Secret Access Key
      • Admin Access 권한을 설정하더라도 별도의 설정을 하지 않으면 Billing 기능을 사용할 수 없
    • IAM role: 리소스에 접근할 수 있는 역할
  2. Entity (엔티티)

    주체 중에서 실제 AWS에서 리소스에 액세스하는 역할을 하는 요소들이다.

    • IAM user: AWS 계정 내에서 생성된 사용자로, 인증 후 리소스에 접근할 수 있다.
    • IAM role: 특정 역할을 수행하도록 부여된 권한이다. 다른 계정의 서비스나 애플리케이션이 이 역할을 통해 AWS 리소스에 접근할 수 있다.
  3. Identity (아이덴티티)

    AWS 내에서 인증을 통해 리소스에 접근할 수 있는 모든 엔티티이다.

    • IAM group: 여러 사용자를 묶어 동일한 정책을 부여할 수 있도록 만든 그룹이다.
  4. Resource (리소스)

    AWS에서 관리되는 모든 리소스를 포함하는 큰 영역이다.

    • Policy: IAM 엔티티나 리소스에 접근할 수 있는 권한을 정의한 문서이다.
    • Instance profile: EC2 인스턴스가 역할을 통해 리소스에 접근할 수 있게 하는 프로파일이다.
    • OIDC provider: OpenID Connect 프로토콜을 사용하여 IAM 역할과 외부 ID 제공자 간 신뢰 관계를 설정할 때 사용된다.
    • 기타 등등

IAM 권한 검증 절차

실제로 사용자가 AWS 에 접근할 때 어떤 과정으로 권한 검증이 이뤄질까?

다음으로는 IAM 설정 과정에 대해 설명하겠다.

참고

profile
순간은 기록하고 반복은 단순화하자 🚀

0개의 댓글