Post

[Cloud] AWS IAM의 이해

AWS Identity and Access Management (IAM)


학습 목표

  • AWS Identity and Access Management (IAM)?
  • 사용자, 사용자 그룹, 권한, 역할
  • Lab: Introduction to AWS IAM

1. AWS Identity and Access Management (IAM)

  • IAM 의 이해
    • IT 업무를 수행하기 위해서는 역할에 따라 많은 사람이 필요합니다

      image.png

      • 프로젝트 모든 담당자들은 AWS 클라우드에 로그인하여 자신의 역할에 맞는 업무를 진행해
      • 만약, AWS 로그인 계정이 root만 존재하고, 프로젝트에 참여하는 모든 담당자들이 현재의 root 계정을 공유해서 사용한다면 다음과 같은 상황이 발생할 수 있음.
        • 개발자가 실수로 개발 플랫폼이 아닌 다른 운영 플랫폼을 삭제할수 있습니다.
        • QA 엔지니어가 운영 장비에 테스트를 하게 될 경우 서비스 운영이 중단될수 있습니다.
        • 서비스에 문제가 발생할 경우 누가 어떤 작업을 진행하였는지 추적이 불가능하여 책임 소재 문제가 발생 합니다.
  • IAM 이란?
    • AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다.
    • IAM을 사용하면 사용자가 액세스할 수 있는 AWS 리소스를 제어하는 권한을 관리할 수 있습니다.
    • IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어합니다.
    • IAM은 AWS 계정에 대한 인증 및 권한 부여를 제어하는 데 필요한 인프라를 제공합니다. [참조]

    image.png

  • 세분화된 액세스 권한 정의
    • 리소스에 액세스할 수 있는 사용자
    • 액세스할 수 있는 리소스와 사용자가 리소스에 수행할 수 있는 작업
    • 리소스에 액세스하는 방법
  • IAM은 AWS 계정에 무료로 제공되는 기능입니다.

2. IAM: 필수 구성 요소

  • IAM 구성 요소
    • 사용자 그룹
      • IAM 사용자 그룹은 IAM 사용자들의 집합입니다. IAM 사용자 그룹을 활용하면 다수의 사용자들에 대한 권한을 더 쉽게 관리 할 수 있습니다.

        image.png

      • 사용자 그룹은 다음의 조건에 맞춰 생성할 수 있습니다.

        • 한 사용자는 여러 사용자 그룹에 속할 수 있습니다.
        • 사용자 그룹은 사용자만 포함할 수 있으며, 다른 그룹을 포함할 수 없습니다.
    • 사용자
      • IAM 사용자는 각 서비스에 접속할 수 있는 권한을 가진 사용자 입니다.
      • AWS에서는 IAM 사용자를 독립적 또는 그룹 종속적으로 생성하여 서비스 접근 제한을 지원합니다.

        image.png

    • IAM 정책
      • 서비스를 어떻게 조작할 수 있는지 허가 또는 금지하는 정의입니다
      • IAM 정책은 JSON(JavaScript Object Notation)으로 구성되고 권한을 정의
      • 예: “AWS 네트워크 서비스”에는 AmazonVPCFullAccess, AmazonVPCReadOnlyAccess와 같은 정책을 포함하고 있습니다. 이 정책을 사용자나 그룹에 적용하면 권한이 생기는 것입니다.
      • 모범 사례: 최소 권한의 원칙을 따릅니다.
      • IAM에서 권한을 결정하는 방법:
        • 기본적으로 모든 권한은 암시적으로 거부

          image.png

    • IAM 역할(role)
      • IAM 역할은 특정 권한이 있는 IAM 자격 증명
      • IAM 역할을 사용하여 액세스 권한을 위임하는 방법의 예 –
        • 역할과 동일한 AWS 계정의 IAM 사용자가 사용
        • 역할과 동일한 계정의 AWS 서비스(예: Amazon EC2)에서 사용
        • 역할과 다른 AWS 계정의 IAM 사용자가 사용
      • IAM 역할의 사용 예
        • 시나리오: EC2 인스턴스에서 실행되는 애플리케이션에 S3 버킷에 대한 액세스 권한이 필요
        • 솔루션:
          • S3 버킷에 대한 액세스 권한을 부여하는 IAM 정책 정의
          • 정책을 역할에 연결
          • EC2 인스턴스가 이 역할을 수임하는 것을 허용

            [[원본링크](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMcrXT%2FbtrG8QBZNHn%2FYoLyWxw661PXRUksqKPoGk%2Fimg.png)]

            [원본링크]

  • 실습 : user1, user2 생성후 management 그룹에 소속. 권한은 EC2 Full Access, S3 Full Access 생성
    • user1, user2

Lab: 사용자 그룹, 사용자, 권한, 역할 생성 및 운영 TEST

  • Task1: AWS 계정

    image.png

    • 사용자 만들기
      • 사용자 이름
      • AWS Management Console에 대한 사용자 액세스 권한 제공 선택
      • 사용자 지정 패스워드
      • 권한 설정없이 생성
    • 그룹 생성
      • Data-Support
      • Cloud-Admin
        • 그룹 생성
        • 그룹선택 후 권한 → 권한 추가
          • 서비스 : EC2
          • 작업 허용됨
            • 작업추가 > Describe* 입력
            • 작업추가 > StartInstances* 입력
            • 작업추가 > StopInstances* 입력
          • 리소스 - 모두
        • 정책이름 : cloud-admin-policy
        • [정책생성]
  • Task2: TEST용 리소스 생성
    • S3 버킷 생성 : seongmilee-1023-00
    • EC2 인스턴스 생성 후 권한 확인
  • Task3: Eli 사용자가 콘솔 로그인 - 보안 및 자격 증명
    • S3 읽기 가능? 쓰기 가능?
      • 버킷 읽기 허용
      • 버킷 생성 TEST
      • EC2 생성 가능?
  • Task4 : David - 읽기 전용 EC2 접속 가능 여부 확인
  • Task 5 : Noah - EC2 start, stop 가능 여부 확인
  • 리소스 삭제 : S3, EC2
This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.