AWS IAM 에 대한 정리

AWS IAM 이란 ?

AWS IAM(Identity and Access Management) 은 AWS 사용자 또는 그룹에 대해 리소스 와 서비스 접근 권한에 대한 관리를 할 수 있게 해주는 서비스이다. 어떤 리소스나 서비스에 대해 어떤 사용자가 어떤 작업을 이용하거나 이용하지 못하도록 제어할 수 있다. 예를 들어, 인프라 팀에는 모든 AWS 서비스나 리소스 권한을 부여하고 서버 담당 개발자에게는 EC2 의 시작과 중단 권한을 부여해 리소스 접근에 대한 안전성을 높인다.

IAM 기본 구성

  • IAM 정책
    • JSON 형식
  • IAM 사용자
  • IAM 그룹
    • IAM 사용자를 한번에 관리

권한 부여 순서

  1. AWS 서비스나 리소스에 대한 IAM 정책을 생성
  2. IAM 정책을 IAM 사용자 또는 IAM 그룹에 적용
  3. IAM 사용자 또는 IAM 그룹에 속한 IAM 사용자로 AWS 콘솔에 접속해 부여된 권한에 대한 작업 수행

IAM 정책

IAM 정책 구성

  • Version
    • IAM 정책의 문법 버전 (ex.”2012-10-17”)
  • Effect
    • 정의하는 정책이 권한을 허가(Allow) 하는 정책인지 거부(Deny) 하는 정책인지 설정
  • Action
    • 어떤 AWS 서비스에 대해 어떤 작업을 허가 또는 거부할지 설정
  • Resource
    • 어떤 AWS 리소스에 대해 작업을 허가 또는 거부할지 설정

IAM 정책 예제

  • EC2 Resource 열람 허가
  • EC2 Instance 시작 허가
  • EC2 Instance 중단 허가
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": ![
        "ec2:Describe*",
        "ec2:startInstances",
        "ec2:stopInstances"
    ]
    "Resource": "arn:aws:ec2:region:instance/i-abcefghijk"
  }
}

위의 예제는 “2012-10-17” 버전의 IAM 정책 문법으로 작성됐으며 EC2 인스턴스에 대한 모든 열람 권한을 arn:aws:ec2:region:instance/i-abcefghijk 인스턴스에 부여하는 것읋 의미한다.


IAM 정책 생성 및 적용

정책 생성에는 3가지 방법이 있다.

  • 새롭게 생성
  • AWS 가 표준으로 제공하는 AWS 관리 정책 복사
    • 정책 템플릿을 기반으로 사용 요건에 맞는 형식으로 변경해서 사용
  • 정책 생성기 사용
    • GUI 형식으로 정책 생성

정책 생성기를 통한 IAM 정책 생성

  • IAM 정책 생성
    AWS 콘솔 > IAM > 정책 > 정책 생성

  • EC2 Start & Stop 권한 부여

  • EC2 Start & Stop 권한 JSON 형식

  • 정책 이름 설정

  • IAM 정책 생성 권한 없음
    샌드박스 계정으로 테스트하던 중 해당 계정에 IAM 생성 권한이 없어 생성 실패

  • IAM 정책 생성 완료
    IAM 정책 생성 권한 있는 계정으로 IAM 정책 생성

  • JSON 수정을 통한 정책 변경

    • JSON Editor 선택
      정책 선택 > {} JSON > Edit policy
    • EC2 열람 권한 추가

IAM 그룹 추가

  • IAM 그룹 생성
    IAM > 그룹 > 그룹 생성

  • 그룹 이름 지정

  • 그룹에 적용할 정책 선택

  • 그룹 생성 확인

IAM 사용자 추가

  • IAM 사용자 생성
    IAM > 사용자 > 사용자 추가

  • 사용자 정보 입력

  • EC2 시작, 중단, 열람 가능한 그룹에 사용자 추가

  • 사용자 생성 확인