Notice
Recent Posts
Recent Comments
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Spring & Java

IAM 본문

클라우드와 AWS 기초/IAM

IAM

dev.hyuck 2026. 1. 28. 18:47

이번 시간은 IAM에 대해서 학습해 보겠습니다.

학습 목표

● IAM 개념

● User / Role / Policy 학습

● 자격증명 원칙

 

 

 

 

IAM으로 위와 같은 상황을 미연에 방지

● 팀원마다 별도 계정 부여

● 역할별로 권한 분리

서버에 필요한 권한만 부여

 

서버에 권한을 부여한다?

 

IAM에는 핵심 요소 3가지가 있습니다.

 

1. User

" 사람" 이 AWS에 접근할 때 사용하는 계정

● 개발자가 AWS 콘솔 (웹사이트)에 로그인할 때

● 관리자가 CLI(명령줄)로 AWS를 관리할 때

● 사람이 직접 AWS를 조작하는 모든 경우

 

핵심 특징 : 영구적인 자격증명 ( Credential ) 을 가짐

자격증명 ( Credential) ) 이란?

본인임을 증명하는 정보 (비밀번호, 키 등)

● User가 가지는 자격증명 2가지

  ○ 비밀번호 : AWS 콘솔 (웹사이트) 접근용

  - Access Key ID : 아이디 역할

  - Secret Access Key : 비밀번호 역할

 

● 특징

  ○ 한 번 생성하면 삭제하기 전까지 유효 ( 만료 없음 )

  ○ 1인 1계정 원칙 권장

 

2. Role

" 서버/서비스" 에게 권한을 부여할 때 사용

● EC2 서버가 S3에 파일을 업로드할 때

● GitHub Action가 aws에 배포할 때

● 서버/자동화 시스템이 AWS를 사용하는 모든 경우

핵심 특징 : 임시로 빌려 쓰는 권한 세트

 

 

3. Policy

" 어떤 작업을 허용/거부 "  할지 정의

 

Policy 구조 예시 

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",              ← 허용? 거부?
      "Action": "s3:GetObject",       ← 어떤 동작을?
      "Resource": "arn:aws:s3:::my-bucket/*"  ← 어떤 대상에?
    }
  ]
}

위의 Policy를 해석해보자면,
● "Effect": "Allow" : Allow 이므로 허용 (거부일 경우 Deny)
● "Action": "s3:GetObject" : S3에서 Object를 가져오기
● "Resource": "arn:aws:s3:::my-bucket/*" : S3의 my-bucket/* 대상

 

너무 복잡하다구요? 한번에 이해할 수 있게 알려드릴게요.

 

 

이번 시간에는 IAM과 User / Role / Policy에 대해서 학습 했습니다. 각 역할마다 어떤 기능을 수행하는지 확인하고 그 역할에 따라 어떤 장점과 단점이 있는지, 어떤 흐름으로 이해하는게 맞는 것인지 학습하는 시간이였습니다.

 

권한이 많을수록 보안에 취약하고 위험하다는 사실을 알게 됐으며, 최소 권한 원칙으로 하고 사용자가 작업을 수행하는데 꼭 필요한 권한만 부여해야 되며, 그 외의 모든 궎한은 거부해야 된다는 원칙을 알게 되었습니다.