Amazon S3 권한 관리 - aws_introduction[21]

Amazon S3 권한 관리 - aws_introduction[21]

생성일
Aug 20, 2024 09:19 AM
Description
S3의 권한 관리에 대해 알아보자
Tag
AWS

S3 버킷 정책

IAM 정책(Policy)의 종류

  • Identity-based policies(자격 증명 기반 정책)
    • 자격증명(IAM 유저, 그룹, 역할)에 부여하는 정책
    • 해당 자격증명이 무엇을 할 수 있는 지 허용
    • ex) 내가 키를 갖고 문을 연다
  • Resource-based policies(리소스 기반 정책)
    • 리소스(예: S3, SQS, VPC Endpoint, KMS 등)에 부여하는 정책
    • 해당 리소스에 누가 무엇을 할 수 있는지 허용 가능
      • 예: SQS 대기열에 Lambda Service가 접근 가능
    • ex) 문이 나를 인식해서 문이 열린다
 
notion image
 
 

S3 버킷 정책

  • 버킷 단위로 부여되는 리소스 기반 정책
  • 해당 버킷 데이터에 “언제 어디서 누가 어떻게 무엇을” 할 수 있는지 정의 가능
    • 리소스의 계층 구조에 따라 권한 조절 가능
      • ex) resource: “arn:aws:s3:::my-bucket/images/*” → my-bucket의 images/로 시작하는 모든 객체에 대해서…
    • 다른 계정에 엔티티에 대해 권한 설정 가능
    • 익명 사용자(Anonymous)에 대해 권한 설정 가능
  • 기본적으로 모든 버킷은 Private ⇒ 접근 불가능
 

S3의 계층 구조

  • AWS 콘솔에서는 S3의 디렉토리(폴더)를 생성 가능하고 확인 가능
  • S3 내부적으로는 계층구조가 존재하지 않음
    • 키 이름에 포함된 “/”로 계층 구조를 표현
    • 예:
      • s3://mybucket/world/southkorea/seoul/guro/map.json
      • 버킷명: mybucket
      • 키: world/southkorea/seoul/guro/map.json (단일 스트링)
 

S3 버킷 관리 방법의 선택

  • Identity-based policies(자격 증명 기반 정책)
    • 같은 계정의 IAM 엔티티의 S3 권한 관리할 때
    • S3이외에 다른 AWS 서비스와 같이 권한 관리할 때
  • Resource-based policies(리소스 기반 정책)
    • 익명 사용자 혹은 다른 계정의 엔티티의 S3 이용 권한을 관리할 때
    • S3만의 권한을 관리할 때
 

S3 Access Control List(ACL)

  • 버킷 혹은 객체 단위로 읽기, 쓰기의 권한을 부여
  • S3에서 설정을 통해 ACL를 활성화 시킨 후에 적용 가능
  • 파일 업로드 시 설정 가능
  • 간단하고 단순한 권한 관리만 가능
  • 점점 사용하지 않는 추세
⇒ 웬만하면 쓸 필요가 없으니, 쓰지 말라고 AWS에서도 얘기하고 있음.