[AWS] IAM

likell1·2026년 1월 18일

AWS

목록 보기
2/5
post-thumbnail

AWS-SAA 자격증 취득을 위해, Udemy 강의를 보고 공부한 내용을 정리합니다.

IAM

IAM = Identity and Access Management
즉, 누가(Who) AWS의 무엇을(What) 어디까지(How much) 할 수 있는지 정하는 시스템
글로벌 시스템이다.

IAM의 핵심 구성 요소

1. User (사용자)

  • 사람 또는 프로그램
  • ID + 비밀번호 / Access Key 가 있음
  • 직접 권한을 갖지 않는 게 원칙

2. Group (그룹)

  • User의 묶음
  • 권한은 Group에만 붙임
  • User는 Group에 들어가서 권한을 받음

IAM 권한 상속


IAM Policy

IAM의 Policy(정책)란, 이 행동은 허용/거부한다를 적어놓은 JSON 문서이다.

Policy 기본 구조

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}
  • Effect: Allow/Deny

    • Allow : 허용
    • Deny : 무조건 거부 (Allow보다 우선)
  • Action

    • 형식: 서비스: 행동
    • 어떤 AWS 서비스에서 어떤 행동(API 호출)을 허용/거부할 것인가? 를 지정
  • Resource

    • 어디에 대해 허용할 것인가
    • ARN 형식 사용

Action vs Resource

구분ActionResource
의미어떤 행동어떤 대상
질문“뭘 할 수 있어?”“어디에 대해?”
예시Get, Put, Delete버킷, 객체, 인스턴스
비유동사명사

IAM MFA

비밀번호 + 추가 인증 수단으로 사람 계정을 보호하는 보안 장치

  • Root UserMFA를 반드시 사용해야 함.
  • IAM User관리자, 또는 중요한 작업 시 사용해야 함.
  • EC2, Lambda, Role 등은 사람이 아니기 때문에 MFA가 없음
    • 서비스 접근 제어용이 아님

따라서 콘솔 로그인 시 MFA를 요구하거나, MFA로 로그인한 경우에만 특정 작업을 할 수 있게 하여 보안을 유지.


AWS CLI/SDK

AWS CLI는 터미널에서 AWS를 조작하는 방법이고, AWS SDK는 코드(Python, Java 등)로 AWS를 조작하는 방법이다.

즉 AWS 콘솔로 조작하는 것이 아니라, 로컬 터미널로 조작하는 것이다.

  • CloudShell
    • AWS 콘솔에서 터미널을 사용하는 것. 대신 사용 가능한 지역이 한정되어 있다.

IAM Roles

사람이나 AWS 서비스에게 임시로 권한을 주는 방법

Role이 필요한 상황

  1. AWS 서비스가 다른 AWS 서비스에 접근할 때 필요
    • EC2 → S3 / Lambda → DynamoDB 등
  2. “Access Key”를 저장하지 말라는 요구가 있을 때
    • Role은 키가 없기 때문
  3. 다른 AWS 계정 리소스에 접근해야 할 때

따라서, Role은 보안, 확장성을 위해 사용한다.

Role 생성 방법

  1. 엔티티 선택

다양한 AWS 엔티티에 대해 Role을 부여할 수 있고, AWS의 다양한 서비스에 적용할 수 있다.

  1. 권한 부여
  1. 이름 등을 설정
profile
Data Engineer/ML Engineer

1개의 댓글

comment-user-thumbnail
2026년 1월 19일

안녕하세요^^ 잘 보고 갑니다

답글 달기