[TECH UP] AWS S3 (Amazon Simple Storage Service)

Y·2025년 10월 14일

TECH UP

목록 보기
24/39
post-thumbnail

1️⃣ 개요

  • S3는 AWS에서 제공하는 객체 스토리지 서비스
  • 인터넷을 통해 데이터를 저장하고 검색할 수 있으며
    확장성, 내구성, 보안성이 높아 웹 호스팅, 백업, 로그 저장, 빅데이터 분석 등 다양한 용도로 사용됨
  • 간단한 정적 웹사이트 호스팅도 가능

2️⃣ 구성 요소

  • Bucket: 데이터를 저장하는 기본 단위 (전 세계에서 이름 고유해야 함)
  • Object: 실제 데이터(파일)와 메타데이터
  • Key: 버킷 내 객체를 구분하는 고유 이름 또는 경로
  • Region: 버킷이 위치한 AWS 지역
  • Versioning: 객체 버전을 관리해 삭제나 덮어쓰기 방지 가능
  • Storage Class: 접근 빈도와 비용에 따른 저장 등급
    • Standard: 자주 접근하는 데이터
    • IA (Infrequent Access): 접근은 드물지만 빠른 복원이 필요한 데이터
    • Glacier: 장기 보관, 저비용 저장

3️⃣ S3 보안 기능

  • IAM 정책

    • 사용자, 역할, 서비스별로 접근 권한 제어
    • 리소스 수준 권한 부여 가능
    • ARN 형식 예시: arn:aws:s3:::bucket-name/*
  • ACL (Access Control List)

    • 객체 단위로 접근 제어 가능하지만, 관리가 복잡해 현재는 버킷 정책 또는 IAM 정책 권장
    • ACL은 잘못된 설정 시 보안 사고 위험이 큼
  • MFA Delete

    • 버전 관리 활성화 시 객체 삭제 전 MFA 인증을 요구
    • 실수나 악성 행위로 인한 데이터 삭제 방지
    • CLI 설정 예시:
      aws s3api put-bucket-versioning --bucket my-bucket --versioning-configuration Status=Enabled,MFADelete=Enabled

4️⃣ 서버 측 암호화 (SSE, Server-Side Encryption)

  • SSE-S3 (기본형)

    • AWS가 자체 관리하는 키로 자동 암호화
    • 추가 비용 없음
  • SSE-KMS (권장형)

    • AWS KMS(Key Management Service)를 이용해 키를 관리
    • 접근 제어 및 감사 로그 관리 가능
  • SSE-C (고객 제공 키)

    • 사용자가 직접 암호화 키를 제공
    • 관리 부담이 크지만 보안 통제가 엄격한 환경에서 사용
  • DSSE-KMS (이중 암호화)

    • KMS 호출을 두 번 수행해 보안 강화
    • 비용은 증가하지만 중요 데이터에 적합

💡 운영 환경 권장: SSE-KMS (보안성과 통합성 균형 우수)


5️⃣ 버킷 구조 유형

① 평면(Flat) 구조

  • Key 값으로 직접 객체 관리 (my-bucket/file1.txt)
  • 장점: 단순하고 자동화 스크립트에 적합
  • 단점: 구조적 구분 어려움

② 디렉토리 구조

  • Key에 /를 포함하여 폴더처럼 사용 (my-bucket/project1/data/file.txt)
  • 장점: 시각적 관리 용이
  • 단점: 객체 이동 시 전체 Key 수정 필요

6️⃣ 버킷 정책 (Bucket Policy)

  • 버킷 단위 접근 정책을 JSON 형식으로 관리
  • ACL보다 명확하고 관리가 쉬움
  • 정책 수정 후 접근 테스트 필수

예시 정책:

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

7️⃣ 퍼블릭 접근 차단

  • 모든 새 버킷은 퍼블릭 접근 기본 차단 상태
  • 퍼블릭 공개가 필요할 경우 “퍼블릭 액세스 차단 설정 편집”에서 예외 지정
  • 기업 환경에서는 원칙적으로 비공개 유지

8️⃣ 사용 시 유의사항

  • 접근 제어 원칙

    • 최소 권한 원칙 적용 (필요한 리소스만 허용)
    • IAM 정책과 버킷 정책 중복 설정 주의
  • 데이터 보호

    • SSE 암호화 및 MFA Delete 활성화
    • CloudTrail 연동으로 접근 이력 추적
  • 비용 절감

    • Storage Class를 데이터 특성에 맞게 선택
    • Lifecycle 정책으로 오래된 데이터를 Glacier로 이동

9️⃣ 요약

항목내용
서비스 유형객체 스토리지
핵심 구성 요소버킷, 객체, 키, 리전
주요 기능버전 관리, 암호화, 접근 제어
보안 기능IAM 정책, 버킷 정책, SSE-KMS, MFA Delete
활용 예시정적 웹 호스팅, 백업, 로그 저장, 분석 데이터 보관

0개의 댓글