[DevOps] AWS IAM: 개요 및 CLI 실습

이지연·2026년 3월 4일

DevOps

목록 보기
8/24

개요

AWS IAM(Identity and Access Management)은 AWS 리소스에 대한 접근 권한을 세밀하게 제어하는 핵심 보안 서비스다. 사용자, 역할, 정책을 통해 누가 어떤 작업을 할 수 있는지 정의하며, 루트 사용자 권한 남용을 방지하는 것이 핵심 목적이다.


1. 사용자(User) 계정 관리

AWS에서 사용자(User)는 AWS 서비스에 접근하는 실체(사람 또는 애플리케이션)를 의미한다.

구분로그인 방식특징
루트 사용자이메일 + 비밀번호계정 소유자, 모든 권한 보유. 엑세스키 발급 금지 권장
IAM 사용자계정 ID(12자리) + 사용자명 + 비밀번호세분화된 권한 부여 가능
  • 엑세스키(Access Key) & 비밀키(Secret Access Key):
    AWS CLI, SDK, API 호출 등 프로그래머틱 접근을 위한 인증 정보.
    애플리케이션이 AWS 서비스와 자동 통신할 때 사용되며, aws configure 시 입력.

2. 정책(Policy) 및 역할(Role)

IAM 정책과 역할은 최소 권한 원칙(Least Privilege)을 구현한다.

  • IAM 정책:
    JSON 형식 문서로, "누가(Principal) → 어떤 작업(Action) → 어떤 리소스(Resource)"를 정의.

    {
      "Statement": [{
        "Effect": "Allow",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::my-bucket/*"
      }]
    }
  • 역할(Role):
    임시 권한 세트로, EC2 인스턴스가 S3에 접근하거나 Lambda가 DynamoDB를 호출할 때 사용.
    장기 엑세스키 대신 STS(보안 토큰 서비스)를 통해 짧은 시간 동안 권한 부여.

예시: EC2 인스턴스에 S3 읽기 전용 역할 부여 → 인스턴스 재시작 시 자동 권한 적용.


3. AWS CLI 설치 및 구성

AWS CLI는 IAM 인증 정보를 활용해 명령어로 AWS 리소스를 관리한다.

설치

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

# macOS
brew install awscli

# Windows
AWS CLI MSI(64비트) 다운로드 → 설치 실행

버전 확인 및 구성

# 버전 확인
aws --version

# IAM 사용자 엑세스키로 구성
aws configure

입력값 예시:

AWS Access Key ID: [IAM 사용자 엑세스키]
AWS Secret Access Key: [비밀키]
Default region name: ap-northeast-2
Default output format: json

4. 실습: CLI 명령어 활용

IAM 구성 후 바로 테스트 가능한 명령어들.

S3 버킷 관리


# 버킷 목록 조회
aws s3 ls

# 버킷 삭제 (빈 버킷만 가능)
aws s3 rb s3://버킷명

EC2 인스턴스 조회

# 실행 중인 EC2 목록
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running"

IAM 사용자 목록

# 현재 계정 IAM 사용자 조회
aws iam list-users

간단한 배포 스크립트가 복잡해지고 고도화되면 IaC(Infrastructure as Code)와 자동화 도구로 확장된다.
Terraform : "인프라를 코드로" (AWS 리소스 생성/삭제)
Ansible : "서버를 코드로" (패키지 설치/서비스 설정)


5. 보안 모범 사례 (Best Practices)

  • 루트 사용자: 엑세스키 생성 금지, MFA 필수
  • IAM 사용자: 최소 권한 정책 부여, 정기 엑세스키 로테이션(90일)
  • 역할 우선: EC2, Lambda 등에는 엑세스키 대신 역할 사용
  • 조건부 정책: IP 제한, 시간 제한 등 조건 추가
  • 위험: *(모든 리소스), AdministratorAccess 정책 남발

cf) IAM 사용자 생성 단계

  • 체크활성/비활성 확인
  • 위 권한의 경우 root 사용자 권한과 유사하므로 주의해야함
  • 권한 요약 확인
  • <콘솔 로그인 URL, 사용자 이름, 콘솔 암호>을 통해 콘솔 로그인 및 엑세스키 발급 후 CLI 작업 수행
profile
Eazy하게

0개의 댓글